import Box from '@mui/material/Box' import SIDEAppBar from 'browser/components/AppBar' import SIDEDrawer from 'browser/components/Drawer' import Main from 'browser/components/Main' import { context } from 'browser/contexts/show-drawer' import { PROJECT_TAB, TAB } from 'browser/enums/tab' import { usePanelGroup } from 'browser/hooks/usePanelGroup' import React, { useContext } from 'react' import { DndProvider } from 'react-dnd' import { HTML5Backend } from 'react-dnd-html5-backend' import { Panel, PanelGroup } from 'react-resizable-panels' import ResizeHandle from '../ResizeHandle' export type PluginWindow = { name: string url: string } const ProjectEditor: React.FC = () => { const [tab, setTab] = React.useState(PROJECT_TAB) const showDrawer = useContext(context) const [pluginWindows, setPluginWindows] = React.useState([]) React.useEffect(() => { const handler = (name: string, url: string) => { setPluginWindows((prev) => prev.concat({ name, url })) } window.sideAPI.plugins.onRequestCustomEditorPanel.addListener(handler) return () => { window.sideAPI.plugins.onRequestCustomEditorPanel.removeListener(handler) } }, []) return (
{showDrawer && ( <> )}
{pluginWindows.map((pluginWindow, index) => (