import { css } from "@linaria/core";
import { isPc } from "@queenjs/utils";
import { onMounted, ref } from "vue";
import { string } from "vue-types";
import { useCompData } from ".";
import { Text } from "../../..";
import { createUIComp } from "../../../defines/createUIComp";

export const Component = createUIComp({
  props: {
    compId: string().isRequired,
  },
  setup(props) {
    const { children } = useCompData(props.compId);

    const elRef = ref();
    onMounted(() => {
      elRef.value.style.height = isPc()
        ? "12.8rem"
        : document.documentElement.clientHeight + "px";
    });

    return () => {
      return (
        <div class={compStyle} ref={elRef}>
          <Text.Component compId={children.title.id} />
          <div class="arrow">↓</div>
        </div>
      );
    };
  },
});

const compStyle = css`
  .arrow {
    position: absolute;
    left: 50%;
    bottom: 0.42rem;
    width: 0.7rem;
    height: 0.7rem;
    line-height: 0.7rem;
    font-size: 0.36rem;
    text-align: center;
    color: #fff;
    border: 2px solid #fff;
    border-radius: 50%;
    transform: translateX(-50%);
  }
`;