From 9002f6598a7285de44de6a027bd1430171edc951 Mon Sep 17 00:00:00 2001 From: Peter White <1788320+peterwhite@users.noreply.github.com> Date: Tue, 18 Aug 2026 17:19:25 +0200 Subject: [PATCH] Fix embed search suggested questions not opening the assistant (#4514) --- .changeset/embed-search-suggestions.md | 5 +++++ packages/gitbook/src/components/Search/useSearch.tsx | 6 +++--- .../gitbook/src/components/Search/useSearchController.tsx | 6 +++--- 3 files changed, 11 insertions(+), 6 deletions(-) create mode 100644 .changeset/embed-search-suggestions.md 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] );