import React, { useState, useEffect } from 'react'; import { createNote } from '../api'; import type { Context } from '../types'; type Props = { onClose: () => void; onCreate: () => void; context?: Context; }; export function CreateNoteModal({ onClose, onCreate, context }: Props) { const [text, setText] = useState(''); const [creating, setCreating] = useState(false); const [error, setError] = useState(null); async function onSubmit(e: React.FormEvent) { e.preventDefault(); const trimmedText = text.trim(); if (!trimmedText) { setError('Please enter some text for your note'); return; } try { setCreating(true); await createNote({ text: trimmedText, context }); setText(''); onCreate(); onClose(); } catch (err) { console.error(err); const msg = err instanceof Error ? err.message : 'Failed to create note'; setError(msg); } finally { setCreating(false); } } // Keyboard shortcut handler useEffect(() => { const handleKeyDown = (e: KeyboardEvent) => { // Ctrl+Enter or Cmd+Enter to submit if ((e.ctrlKey || e.metaKey) && e.key === 'Enter') { e.preventDefault(); const form = document.getElementById('form-create-note') as HTMLFormElement; if (form) { form.requestSubmit(); } } }; window.addEventListener('keydown', handleKeyDown); return () => window.removeEventListener('keydown', handleKeyDown); }, []); return (
{ if (e.target === e.currentTarget) onClose(); }} >
{/* Modal Header */}

Add Note

{/* Modal Body */}