component.tsx 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. import { defineComponent } from "vue";
  2. import { string } from "vue-types";
  3. import { useCompData } from ".";
  4. import { useEditor } from "../../../..";
  5. import { DesignComp } from "../../../../objects/DesignTemp/DesignComp";
  6. import { View } from "../View";
  7. import { CompUI } from "../..";
  8. export const Component = defineComponent({
  9. props: {
  10. compId: string().isRequired,
  11. },
  12. setup(props) {
  13. const { helper, controls } = useEditor();
  14. const { children } = useCompData(props.compId);
  15. return () => (
  16. <View compId={props.compId}>
  17. <div>
  18. {children.default?.map((compId) => {
  19. const compItem = helper.findComp(compId);
  20. const Comp =
  21. controls.compUICtrl.state.components.get(compItem.compKey)
  22. ?.Component || CompUI.StreamCard.Component;
  23. return (
  24. <div class="flex flex-col">
  25. <Comp key={compItem.id} compId={compItem.id} />
  26. </div>
  27. );
  28. })}
  29. </div>
  30. </View>
  31. );
  32. },
  33. });