corrected folder upload and virtualization

This commit is contained in:
2026-02-18 12:39:46 +00:00
parent 5e2b2fad81
commit 89f23f9426
12 changed files with 146 additions and 57 deletions
@@ -1,6 +1,6 @@
import { useState, useCallback } from 'react';
import type { LayoutNode, WorkspaceDefinition, WidgetRegistry } from './types';
import { splitPanel, removePanel, setWidget, updateSizes, countPanels } from './layout-utils';
import { splitPanel, removePanel, setWidget, updateSizes, countPanels, hasAnyWidget } from './layout-utils';
import { WorkspaceProvider } from './WorkspaceContext';
import { WorkspaceHeader } from './WorkspaceHeader';
import { WorkspaceRenderer } from './WorkspaceRenderer';
@@ -14,7 +14,7 @@ type WorkspaceViewProps = {
};
export const WorkspaceView = ({ workspace, name, layout, onLayoutChange, registry }: WorkspaceViewProps) => {
const [editing, setEditing] = useState(false);
const [editing, setEditing] = useState(() => !hasAnyWidget(layout));
const handleSetWidget = useCallback(
(panelId: string, widgetType: string | null) => {
+1 -1
View File
@@ -1,4 +1,4 @@
export type { LayoutNode, LayoutGroup, LayoutPanel, WorkspaceDefinition, WidgetRegistry, WidgetRegistryEntry } from './types';
export { createDefaultLayout, splitPanel, removePanel, setWidget, updateSizes, pruneEmptyPanels, countPanels } from './layout-utils';
export { createDefaultLayout, splitPanel, removePanel, setWidget, updateSizes, pruneEmptyPanels, countPanels, hasAnyWidget } from './layout-utils';
export { WorkspaceProvider, useWorkspace } from './WorkspaceContext';
export { WorkspaceView } from './WorkspaceView';
@@ -156,3 +156,8 @@ export function countPanels(node: LayoutNode): number {
if (node.type === 'panel') return 1;
return node.children.reduce((sum, child) => sum + countPanels(child.node), 0);
}
export function hasAnyWidget(node: LayoutNode): boolean {
if (node.type === 'panel') return node.widgetType !== null;
return node.children.some((child) => hasAnyWidget(child.node));
}