import { useState, useRef, useEffect } from 'react' import './CreateNoteDialog.css' const NOTE_TYPES = [ 'Note', 'Project', 'Experiment', 'Responsibility', 'Procedure', 'Person', 'Event', 'Topic', ] as const export type NoteType = (typeof NOTE_TYPES)[number] interface CreateNoteDialogProps { open: boolean onClose: () => void onCreate: (title: string, type: NoteType) => void } export function CreateNoteDialog({ open, onClose, onCreate }: CreateNoteDialogProps) { const [title, setTitle] = useState('') const [type, setType] = useState('Note') const inputRef = useRef(null) useEffect(() => { if (open) { setTitle('') setType('Note') // Focus input after render setTimeout(() => inputRef.current?.focus(), 50) } }, [open]) // Close on Escape useEffect(() => { if (!open) return const handleKey = (e: KeyboardEvent) => { if (e.key === 'Escape') onClose() } window.addEventListener('keydown', handleKey) return () => window.removeEventListener('keydown', handleKey) }, [open, onClose]) if (!open) return null const handleSubmit = (e: React.FormEvent) => { e.preventDefault() const trimmed = title.trim() if (!trimmed) return onCreate(trimmed, type) onClose() } return (
e.stopPropagation()}>

Create New Note

setTitle(e.target.value)} />
{NOTE_TYPES.map((t) => ( ))}
) }