From b424b490be15ea965e200be9a9963d9aae452305 Mon Sep 17 00:00:00 2001 From: saravanakumardb1 Date: Mon, 6 Apr 2026 10:46:03 -0700 Subject: [PATCH] fix(web): close tone dropdown on outside click Add useRef + useEffect mousedown listener to dismiss the Change Tone dropdown when clicking outside. Prevents stale dropdown from lingering. --- web/src/components/NoteEditor.tsx | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) 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 && (