import React from 'react'; import useLayoutStore from '@/store/use-layout-store'; import { ITrackItem, useEditorState } from '@designcombo/core'; import { useEffect, useState } from 'react'; import { Button } from '@/components/ui/button'; import { X } from 'lucide-react'; import Presets from './presets'; import Animations from './animations'; import Smart from './smart'; import BasicText from './basic-text'; import BasicImage from './basic-image'; import BasicVideo from './basic-video'; import BasicAudio from './basic-audio'; const Container = ({ children }: { children: React.ReactNode }) => { const { activeToolboxItem } = useLayoutStore(); const { activeIds, trackItemsMap } = useEditorState(); const [trackItem, setTrackItem] = useState(null); const [displayToolbox, setDisplayToolbox] = useState(false); useEffect(() => { if (activeIds.length === 1) { const [id] = activeIds; const trackItem = trackItemsMap[id]; setTrackItem(trackItem); } else { setTrackItem(null); setDisplayToolbox(false); } }, [activeIds]); useEffect(() => { if (activeToolboxItem) { setDisplayToolbox(true); } else { setDisplayToolbox(false); } }, [activeToolboxItem]); if (!trackItem) { return null; } return (
{React.cloneElement(children as React.ReactElement, { trackItem, activeToolboxItem, })}
); }; const ActiveControlItem = ({ trackItem, activeToolboxItem, }: { trackItem?: ITrackItem; activeToolboxItem?: string; }) => { if (!trackItem || !activeToolboxItem) { return null; } return ( <> { { 'basic-text': , 'basic-image': , 'basic-video': , 'basic-audio': , 'preset-text': , animation: , smart: , }[activeToolboxItem] } ); }; export const ControlItem = () => { return ( ); };