import { IconPlay2 } from "@/assets/icons"; import { useEditor } from "@/modules/editor"; import { css } from "@linaria/core"; import { IconClose } from "@queenjs/icons"; import { Image } from "@queenjs/ui"; import { queenApi, useModal } from "queenjs"; import { defineComponent, reactive, watch } from "vue"; import { string } from "vue-types"; import { useCompData } from "."; import { View } from "../View"; export const Component = defineComponent({ props: { compId: string().isRequired, }, setup(props) { const { store, actions } = useEditor(); const comp = useCompData(props.compId); const { value } = comp; async function pickPack() { // await controls.pickCtrl.onPickPack(); // value.url = // "https://www.sku3d.com/share.html?id=6478676ca494a3ea15a6fa82"; } function showWeb3D() { if (value.inline) { state.show3d = true; } else { queenApi.dialog(, { fullscreen: true, closable: false, }); } } const state = reactive({ show3d: false, }); watch( () => [value.ratio], () => { comp.setH(comp.getW() / value.ratio); actions.onCompLayoutUpdated(comp); } ); return () => { return ( {state.show3d ? (