import { useResource } from "@/modules/resource";
import { Image, List } from "@queenjs/ui";
import { Button } from "ant-design-vue";
import { defineComponent } from "vue";
import { any } from "vue-types";

export default defineComponent({
  setup() {
    const resource = useResource();

    return () => {
      const list = resource.store.sourceDetail.webEditor?.matSlots || [];
      return (
        <div class="w-300px flex flex-col">
          <div class="p-15px text-16px text-white border-dark-800 border-0 border-b-1 border-solid">
            组件列表
          </div>
          <List data={list} gap="10px" class="scrollbar flex-1 py-15px px-15px">
            {{
              item: (record: any) => <CompItem record={record} />,
              loadmore: () => (
                <div class="text-center py-20px text-12px opacity-80">
                  没有更多了
                </div>
              ),
            }}
          </List>
        </div>
      );
    };
  },
});

const CompItem = defineComponent({
  props: {
    record: any().isRequired,
  },
  setup(props) {
    return () => {
      const { record } = props;
      return (
        <div
          class="flex items-center py-6px px-12px rounded-4px"
          style={{ backgroundColor: "#303030" }}
        >
          <Image src={record.thumbnail} class="w-48px rounded-4px" />
          <div class="ml-10px flex-1 mr-5px w-0">{record.name || "未命名"}</div>
          <Button type="primary" ghost size="small">
            替换
          </Button>
        </div>
      );
    };
  },
});