From 7d020dee8c6006fe38d74d54766587f9249fddf7 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 27 Jan 2022 14:58:32 +0000 Subject: [PATCH] Tweak spotlight roving behaviour to reset when changing query --- src/components/views/dialogs/SpotlightDialog.tsx | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/components/views/dialogs/SpotlightDialog.tsx b/src/components/views/dialogs/SpotlightDialog.tsx index 81dae5ece8b..8faac394061 100644 --- a/src/components/views/dialogs/SpotlightDialog.tsx +++ b/src/components/views/dialogs/SpotlightDialog.tsx @@ -21,6 +21,7 @@ import React, { useCallback, useContext, useEffect, + useLayoutEffect, useMemo, useState, } from "react"; @@ -183,6 +184,16 @@ const SpotlightDialog: React.FC = ({ initialText = "", onFinished }) => }); }, [cli, query]); + // Reset the selection back to the first item whenever the query changes + useLayoutEffect(() => { + rovingContext.dispatch({ + type: Type.SetFocus, + payload: { + ref: rovingContext.state.refs[0], + }, + }); + }, [query]); // eslint-disable-line react-hooks/exhaustive-deps + const activeSpace = SpaceStore.instance.activeSpaceRoom; const [spaceResults, spaceResultsLoading] = useSpaceResults(activeSpace, query);