diff --git a/.changeset/embed-search-suggestions.md b/.changeset/embed-search-suggestions.md new file mode 100644 index 000000000..ce5213e6b --- /dev/null +++ b/.changeset/embed-search-suggestions.md @@ -0,0 +1,5 @@ +--- +"gitbook": patch +--- + +Fix suggested question clicks in the embed search not opening the assistant. diff --git a/packages/gitbook/src/components/Search/useSearch.tsx b/packages/gitbook/src/components/Search/useSearch.tsx index 85b27dcad..b83603db7 100644 --- a/packages/gitbook/src/components/Search/useSearch.tsx +++ b/packages/gitbook/src/components/Search/useSearch.tsx @@ -163,16 +163,16 @@ export function useSearchLink(): ( return { href: `?${searchParams.toString()}`, prefetch: false, - onClick: (event) => { + onClick: async (event) => { event.preventDefault(); - callback?.(); - setSearchState((prev) => ({ + await setSearchState((prev) => ({ ...prev, query: params.query !== undefined ? params.query : null, ask: params.ask !== undefined ? params.ask : null, scope: params.scope !== undefined ? params.scope : 'default', open: params.open !== undefined ? params.open : false, })); + callback?.(); }, }; }, diff --git a/packages/gitbook/src/components/Search/useSearchController.tsx b/packages/gitbook/src/components/Search/useSearchController.tsx index 0631959d1..c2dd2ad6f 100644 --- a/packages/gitbook/src/components/Search/useSearchController.tsx +++ b/packages/gitbook/src/components/Search/useSearchController.tsx @@ -271,7 +271,7 @@ export function useSearchController( }, [abort, siteSpace.id]); const askInAssistant = React.useCallback( - (assistantIndex = 0) => { + async (assistantIndex = 0) => { const assistant = assistants[assistantIndex]; if (!assistant || !normalizedQuery) { return; @@ -282,13 +282,13 @@ export function useSearchController( } abort(); - assistant.open(normalizedQuery); - setSearchState({ + await setSearchState({ ask: normalizedQuery, query: null, scope: state?.scope ?? 'default', open: assistant.mode === 'search', }); + assistant.open(normalizedQuery); }, [abort, assistants, normalizedQuery, setSearchState, siteSpace.id, state?.scope] );