Files
platform/src/workspaces/components/Workspace/WorkspaceContext.ts
T
2026-02-20 18:25:33 +00:00

38 lines
1.0 KiB
TypeScript

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<WorkspaceContextValue>({
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);