'use client'; import { useEffect } from 'react'; import Link from 'next/link'; import { UserButton } from '@clerk/nextjs'; import { Toolbar } from './Toolbar'; import { ArtboardNavigator } from '../navigator/ArtboardNavigator'; import { Canvas } from '../canvas/Canvas'; import { Inspector } from '../inspector/Inspector'; import { useHistory } from '@/store/history'; import { useCanvas } from '@/store/canvas'; interface AppChromeProps { workspaceId?: string; projectId?: string; workspaceName?: string; projectName?: string; } export function AppChrome({ workspaceId, projectId, workspaceName, projectName }: AppChromeProps) { const selectedArtboardId = useCanvas((s) => s.selectedArtboardId); useEffect(() => { function onKeyDown(e: KeyboardEvent) { if (!(e.metaKey || e.ctrlKey)) return; if (!selectedArtboardId) return; if (e.key === 'z' && !e.shiftKey) { e.preventDefault(); useHistory.getState().undo(selectedArtboardId); } else if ((e.key === 'z' && e.shiftKey) || e.key === 'y') { e.preventDefault(); useHistory.getState().redo(selectedArtboardId); } } window.addEventListener('keydown', onKeyDown); return () => window.removeEventListener('keydown', onKeyDown); }, [selectedArtboardId]); const showBreadcrumb = workspaceId && projectId; return (