import { createContext, useContext } from 'react'; import type { DropPosition } from './layout-utils'; type WorkspaceContextValue = { workspaceId: string | null; cwd: string; swapSourceId: string | null; setSwapSourceId: (id: string | null) => void; onSwap: (sourceId: string, targetId: string) => void; dragSourceId: string | null; setDragSourceId: (id: string | null) => void; onMove: (sourceId: string, targetId: string, position: DropPosition) => void; maximizedPanelId: string | null; setMaximizedPanelId: (id: string | null) => void; transitioningPanelId: string | null; }; const noop = () => {}; const WorkspaceContext = createContext({ workspaceId: null, cwd: '~', swapSourceId: null, setSwapSourceId: noop, onSwap: noop, dragSourceId: null, setDragSourceId: noop, onMove: noop, maximizedPanelId: null, setMaximizedPanelId: noop, transitioningPanelId: null, }); export const WorkspaceProvider = WorkspaceContext.Provider; export const useWorkspace = () => useContext(WorkspaceContext);