diff --git a/frontend/src/components/tree-editor/MetadataSidePanel.tsx b/frontend/src/components/tree-editor/MetadataSidePanel.tsx new file mode 100644 index 00000000..25ebafb3 --- /dev/null +++ b/frontend/src/components/tree-editor/MetadataSidePanel.tsx @@ -0,0 +1,66 @@ +import { useEffect } from 'react' +import { X } from 'lucide-react' +import { TreeMetadataForm } from './TreeMetadataForm' + +interface MetadataSidePanelProps { + isOpen: boolean + onClose: () => void +} + +export function MetadataSidePanel({ isOpen, onClose }: MetadataSidePanelProps) { + // Close on Escape key + useEffect(() => { + if (!isOpen) return + + const handleKeyDown = (e: KeyboardEvent) => { + if (e.key === 'Escape') { + onClose() + } + } + + document.addEventListener('keydown', handleKeyDown) + return () => document.removeEventListener('keydown', handleKeyDown) + }, [isOpen, onClose]) + + if (!isOpen) return null + + return ( + <> + {/* Backdrop — click to close */} +