diff --git a/src/components/ThemeSwitcher.tsx b/src/components/ThemeSwitcher.tsx index 0f59d1c..afb2ba5 100644 --- a/src/components/ThemeSwitcher.tsx +++ b/src/components/ThemeSwitcher.tsx @@ -29,12 +29,16 @@ export function ThemeSwitcher() { const ref = useRef(null); useEffect(() => { + if (!open) return; const handler = (e: MouseEvent) => { - if (ref.current && !ref.current.contains(e.target as Node)) setOpen(false); + if (ref.current && !ref.current.contains(e.target as Node)) { + setOpen(false); + } }; - document.addEventListener('mousedown', handler); - return () => document.removeEventListener('mousedown', handler); - }, []); + // Use click (not mousedown) so button onClick fires first + document.addEventListener('click', handler, true); + return () => document.removeEventListener('click', handler, true); + }, [open]); return (
@@ -57,7 +61,8 @@ export function ThemeSwitcher() { return (