diff --git a/web/src/components/NoteEditor.tsx b/web/src/components/NoteEditor.tsx index 554f597..6b284ff 100644 --- a/web/src/components/NoteEditor.tsx +++ b/web/src/components/NoteEditor.tsx @@ -55,9 +55,21 @@ export function NoteEditor({ const [copilotBusy, setCopilotBusy] = useState(false); const [toneMenuOpen, setToneMenuOpen] = useState(false); const [explainResult, setExplainResult] = useState(null); + const toneMenuRef = useRef(null); const onSaveRef = useRef(onSave); onSaveRef.current = onSave; + useEffect(() => { + if (!toneMenuOpen) return; + const handler = (e: MouseEvent) => { + if (toneMenuRef.current && !toneMenuRef.current.contains(e.target as Node)) { + setToneMenuOpen(false); + } + }; + document.addEventListener("mousedown", handler); + return () => document.removeEventListener("mousedown", handler); + }, [toneMenuOpen]); + const editor = useEditor({ extensions: [ StarterKit.configure({ @@ -214,7 +226,7 @@ export function NoteEditor({ AI -
+
{toneMenuOpen && (