diff --git a/clients/tui/src/components/PromptsTab.tsx b/clients/tui/src/components/PromptsTab.tsx index eb2162b91..71252eb37 100644 --- a/clients/tui/src/components/PromptsTab.tsx +++ b/clients/tui/src/components/PromptsTab.tsx @@ -35,7 +35,7 @@ export function PromptsTab({ const { selectedIndex, firstVisible, setSelection } = useSelectableList( prompts.length, visibleCount, - { resetWhen: [prompts] }, + { resetWhen: prompts }, ); const [error, setError] = useState(null); const scrollViewRef = useRef(null); diff --git a/clients/tui/src/components/ResourcesTab.tsx b/clients/tui/src/components/ResourcesTab.tsx index eb7bd1690..4af76fab4 100644 --- a/clients/tui/src/components/ResourcesTab.tsx +++ b/clients/tui/src/components/ResourcesTab.tsx @@ -69,7 +69,7 @@ export function ResourcesTab({ const { selectedIndex, firstVisible, setSelection } = useSelectableList( totalCount, visibleCount, - { resetWhen: [resources] }, + { resetWhen: resources }, ); const selectedItem = useMemo( () => allItems[selectedIndex] || null, diff --git a/clients/tui/src/components/ToolsTab.tsx b/clients/tui/src/components/ToolsTab.tsx index 0d15b21b2..81dd15589 100644 --- a/clients/tui/src/components/ToolsTab.tsx +++ b/clients/tui/src/components/ToolsTab.tsx @@ -30,7 +30,7 @@ export function ToolsTab({ const { selectedIndex, firstVisible, setSelection } = useSelectableList( tools.length, visibleCount, - { resetWhen: [tools] }, + { resetWhen: tools }, ); const [error] = useState(null); const scrollViewRef = useRef(null); diff --git a/clients/tui/src/hooks/useSelectableList.ts b/clients/tui/src/hooks/useSelectableList.ts index cef926c10..054624e9b 100644 --- a/clients/tui/src/hooks/useSelectableList.ts +++ b/clients/tui/src/hooks/useSelectableList.ts @@ -11,8 +11,8 @@ function clampFirstVisible( } export interface UseSelectableListOptions { - /** When these change, reset selection to 0 (e.g. [tools] when switching servers) */ - resetWhen?: unknown[]; + /** When this reference changes, reset selection to 0 (e.g. tools list when switching servers) */ + resetWhen?: unknown; } /** @@ -38,9 +38,9 @@ export function useSelectableList( [visibleCount], ); - // Reset when deps change (e.g. different server) + // Reset when the list reference changes (e.g. different server). useEffect(() => { - if (options?.resetWhen) { + if (options?.resetWhen !== undefined) { setSelectedIndex(0); setFirstVisible(0); }