From 9244d767abdd85026ff214f2561c2ca545cd50fd Mon Sep 17 00:00:00 2001 From: Neil <4138956+nwparker@users.noreply.github.com> Date: Sat, 30 May 2026 06:34:10 -0700 Subject: [PATCH] perf: clean settings search reset from effect --- .../src/components/settings/Settings.tsx | 35 ++++++++++++------- 1 file changed, 23 insertions(+), 12 deletions(-) diff --git a/src/renderer/src/components/settings/Settings.tsx b/src/renderer/src/components/settings/Settings.tsx index eeffdeedea7..9678967f2c6 100644 --- a/src/renderer/src/components/settings/Settings.tsx +++ b/src/renderer/src/components/settings/Settings.tsx @@ -213,6 +213,18 @@ function Settings(): React.JSX.Element { const repoHooksRuntimeIdentityRef = useRef('local') const shortcutsEscapeConfirmUntilRef = useRef(0) + const setSettingsRootNode = useCallback( + (node: HTMLDivElement | null): void => { + if (node) { + return + } + // Why: the settings search is a transient in-page filter. Leaving it behind makes the next + // visit look partially broken because whole sections stay hidden before the user types again. + setSettingsSearchQuery('') + }, + [setSettingsSearchQuery] + ) + const confirmDiscardCommitPromptChanges = useCallback(async (): Promise => { if (!hasUnsavedCommitPromptChanges) { return true @@ -339,15 +351,6 @@ function Settings(): React.JSX.Element { return () => document.removeEventListener('keydown', handleFindShortcut) }, [keybindings]) - useEffect( - () => () => { - // Why: the settings search is a transient in-page filter. Leaving it behind makes the next - // visit look partially broken because whole sections stay hidden before the user types again. - setSettingsSearchQuery('') - }, - [setSettingsSearchQuery] - ) - useEffect(() => { if (!settings || !settingsNavigationTarget) { return @@ -694,8 +697,13 @@ function Settings(): React.JSX.Element { if (!settings) { return ( -
- Loading settings... +
+
+ Loading settings... +
) } @@ -721,7 +729,10 @@ function Settings(): React.JSX.Element { activeSectionId === 'shortcuts' && settingsSearchQuery.trim() === '' return ( -
+