From 28474c47cbea8db2fcd62a651996eb875bde710c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=82=96?= <168966994+luoxiao6645@users.noreply.github.com> Date: Sun, 5 Apr 2026 16:35:33 +0800 Subject: [PATCH] fix: avoid command palette hydration mismatch on macOS (#1563) # Conflicts: # frontend/src/components/workspace/command-palette.tsx Co-authored-by: luoxiao6645 Co-authored-by: Willem Jiang --- .../src/components/workspace/command-palette.tsx | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/frontend/src/components/workspace/command-palette.tsx b/frontend/src/components/workspace/command-palette.tsx index 915410b37..1d754f61d 100644 --- a/frontend/src/components/workspace/command-palette.tsx +++ b/frontend/src/components/workspace/command-palette.tsx @@ -32,14 +32,10 @@ import { SettingsDialog } from "./settings"; export function CommandPalette() { const { t } = useI18n(); const router = useRouter(); - const [mounted, setMounted] = useState(false); const [open, setOpen] = useState(false); const [shortcutsOpen, setShortcutsOpen] = useState(false); const [settingsOpen, setSettingsOpen] = useState(false); - - useEffect(() => { - setMounted(true); - }, []); + const [isMac, setIsMac] = useState(false); const handleNewChat = useCallback(() => { router.push("/workspace/chats/new"); @@ -68,14 +64,12 @@ export function CommandPalette() { useGlobalShortcuts(shortcuts); - const isMac = mounted && navigator.userAgent.includes("Mac"); + useEffect(() => { + setIsMac(navigator.userAgent.includes("Mac")); + }, []); const metaKey = isMac ? "⌘" : "Ctrl+"; const shiftKey = isMac ? "⇧" : "Shift+"; - if (!mounted) { - return null; - } - return ( <>