From 4cfecd9384980c68e7232dd9c2c32689a902e007 Mon Sep 17 00:00:00 2001 From: EthanHealy01 Date: Wed, 8 Oct 2025 16:38:46 +0100 Subject: [PATCH] fix config setting and change wording --- .../src/components/tools/ToolPanelModePrompt.tsx | 2 +- frontend/src/contexts/ToolWorkflowContext.tsx | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/frontend/src/components/tools/ToolPanelModePrompt.tsx b/frontend/src/components/tools/ToolPanelModePrompt.tsx index d0c26936e..68d7aa7e8 100644 --- a/frontend/src/components/tools/ToolPanelModePrompt.tsx +++ b/frontend/src/components/tools/ToolPanelModePrompt.tsx @@ -109,7 +109,7 @@ const ToolPanelModePrompt = () => { - {t('toolPanel.modePrompt.fullscreenTitle', 'Fullscreen mode - (legacy)')} + {t('toolPanel.modePrompt.fullscreenTitle', 'Fullscreen mode')} {t('toolPanel.modePrompt.fullscreenDescription', 'Browse every tool in a catalogue that covers the workspace until you pick one.')} diff --git a/frontend/src/contexts/ToolWorkflowContext.tsx b/frontend/src/contexts/ToolWorkflowContext.tsx index 8dc488bc3..f9ffe2cea 100644 --- a/frontend/src/contexts/ToolWorkflowContext.tsx +++ b/frontend/src/contexts/ToolWorkflowContext.tsx @@ -19,6 +19,7 @@ import { toolWorkflowReducer, ToolPanelMode, } from './toolWorkflow/state'; +import { usePreferences } from './PreferencesContext'; // State interface // Types and reducer/state moved to './toolWorkflow/state' @@ -75,6 +76,7 @@ interface ToolWorkflowProviderProps { export function ToolWorkflowProvider({ children }: ToolWorkflowProviderProps) { const [state, dispatch] = useReducer(toolWorkflowReducer, undefined, createInitialState); + const { preferences } = usePreferences(); // Store reset functions for tools const [toolResetFunctions, setToolResetFunctions] = React.useState void>>({}); @@ -146,6 +148,20 @@ export function ToolWorkflowProvider({ children }: ToolWorkflowProviderProps) { window.localStorage.setItem(TOOL_PANEL_MODE_STORAGE_KEY, state.toolPanelMode); }, [state.toolPanelMode]); + // Keep tool panel mode in sync with user preference. This ensures the + // Config setting (Default tool picker mode) immediately affects the app + // and persists across reloads. + useEffect(() => { + if (!preferences) return; + const preferredMode = preferences.defaultToolPanelMode; + if (preferredMode && preferredMode !== state.toolPanelMode) { + dispatch({ type: 'SET_TOOL_PANEL_MODE', payload: preferredMode }); + if (typeof window !== 'undefined') { + window.localStorage.setItem(TOOL_PANEL_MODE_STORAGE_KEY, preferredMode); + } + } + }, [preferences.defaultToolPanelMode]); + // Tool reset methods const registerToolReset = useCallback((toolId: string, resetFunction: () => void) => { setToolResetFunctions(prev => ({ ...prev, [toolId]: resetFunction }));