'use client'; import { useEffect } from 'react'; import { useCanvasStore, useLayerStore } from '@/store'; import { useHistoryStore } from '@/store/history-store'; import { CanvasWithTools } from '@/components/canvas/canvas-with-tools'; import { LayersPanel } from '@/components/layers/layers-panel'; import { HistoryPanel } from './history-panel'; import { ToolPalette, ToolSettings } from '@/components/tools'; import { ColorPanel } from '@/components/colors'; import { useKeyboardShortcuts } from '@/hooks/use-keyboard-shortcuts'; import { createLayerWithHistory } from '@/lib/layer-operations'; import { Plus, ZoomIn, ZoomOut, Maximize, Undo, Redo } from 'lucide-react'; import { cn } from '@/lib/utils'; export function EditorLayout() { const { zoom, zoomIn, zoomOut, zoomToFit } = useCanvasStore(); const { layers } = useLayerStore(); const { undo, redo, canUndo, canRedo } = useHistoryStore(); // Enable keyboard shortcuts useKeyboardShortcuts(); // Initialize with a default layer (without history) useEffect(() => { if (layers.length === 0) { const { createLayer } = useLayerStore.getState(); createLayer({ name: 'Background', width: 800, height: 600, fillColor: '#ffffff', }); } }, []); const handleNewLayer = () => { createLayerWithHistory({ name: `Layer ${layers.length + 1}`, width: 800, height: 600, }); }; const handleZoomToFit = () => { // Approximate viewport size (accounting for panels) const viewportWidth = window.innerWidth - 320; // Subtract sidebar width const viewportHeight = window.innerHeight - 60; // Subtract toolbar height zoomToFit(viewportWidth, viewportHeight); }; return (