diff --git a/frontend/src/App.tsx b/frontend/src/App.tsx index 47c55bf..732ccc1 100644 --- a/frontend/src/App.tsx +++ b/frontend/src/App.tsx @@ -36,13 +36,18 @@ import { Register } from './pages/Register'; import { Dashboard } from './pages/Dashboard'; // ─── Mock Data ────────────────────────────────────────────── -const initialLayers: CADLayer[] = [ - { id: 'layer-0', name: 'Wände', visible: true, locked: false, color: '#e74c3c', lineType: 'solid', transparency: 0, sortOrder: 0, parentId: null }, - { id: 'layer-1', name: 'Türen', visible: true, locked: false, color: '#3498db', lineType: 'solid', transparency: 0, sortOrder: 1, parentId: null }, - { id: 'layer-2', name: 'Bestuhlung', visible: true, locked: false, color: '#2ecc71', lineType: 'solid', transparency: 0, sortOrder: 2, parentId: null }, - { id: 'layer-3', name: 'Bühne', visible: true, locked: false, color: '#f39c12', lineType: 'solid', transparency: 0, sortOrder: 3, parentId: null }, - { id: 'layer-4', name: 'Hintergrund', visible: true, locked: true, color: '#95a5a6', lineType: 'dotted', transparency: 50, sortOrder: 4, parentId: null }, -]; +function makeInitialLayers(): CADLayer[] { + const ts = Date.now(); + return [ + { id: `layer-${ts}-0`, name: 'Wände', visible: true, locked: false, color: '#e74c3c', lineType: 'solid', transparency: 0, sortOrder: 0, parentId: null }, + { id: `layer-${ts}-1`, name: 'Türen', visible: true, locked: false, color: '#3498db', lineType: 'solid', transparency: 0, sortOrder: 1, parentId: null }, + { id: `layer-${ts}-2`, name: 'Bestuhlung', visible: true, locked: false, color: '#2ecc71', lineType: 'solid', transparency: 0, sortOrder: 2, parentId: null }, + { id: `layer-${ts}-3`, name: 'Bühne', visible: true, locked: false, color: '#f39c12', lineType: 'solid', transparency: 0, sortOrder: 3, parentId: null }, + { id: `layer-${ts}-4`, name: 'Hintergrund', visible: true, locked: true, color: '#95a5a6', lineType: 'dotted', transparency: 50, sortOrder: 4, parentId: null }, + ]; +} + +const initialLayers: CADLayer[] = makeInitialLayers(); const initialBlocks: BlockDefinition[] = createDefaultBlocks(); @@ -110,7 +115,7 @@ const CADEditor: React.FC = ({ projectId, token, onNavigateBack const [activeRightPanel, setActiveRightPanel] = useState('tool'); const [selectedElement, setSelectedElement] = useState(null); const [layers, setLayers] = useState(initialLayers); - const [activeLayerId, setActiveLayerId] = useState('layer-0'); + const [activeLayerId, setActiveLayerId] = useState(initialLayers[0].id); const [blocks, setBlocks] = useState(initialBlocks); const [blockCategory, setBlockCategory] = useState('Alle'); const [selectedTemplate, setSelectedTemplate] = useState(null); @@ -252,9 +257,14 @@ const CADEditor: React.FC = ({ projectId, token, onNavigateBack if (data.blocks.length > 0) setBlocks(data.blocks); // Save initial layers to backend if backend has none if (data.layers.length === 0 && data.drawing) { - for (const layer of initialLayers) { + const freshLayers = makeInitialLayers(); + setLayers(freshLayers); + setActiveLayerId(freshLayers[0].id); + for (const layer of freshLayers) { createLayerTyped(token, data.drawing.id, layer).catch(() => {}); } + } else { + setActiveLayerId(data.layers[0]?.id ?? initialLayers[0].id); } setSavedStatus('gespeichert'); setDataLoaded(true); @@ -911,7 +921,7 @@ const CADEditor: React.FC = ({ projectId, token, onNavigateBack handleKISend(suggestion.label); }, [handleKISend]); - const activeLayerName = layers.find((l) => l.id === 'layer-0')?.name ?? '—'; + const activeLayerName = layers.find((l) => l.id === activeLayerId)?.name ?? '—'; // ─── Render ───────────────────────────────────────────── return (