@@ -266,12 +266,12 @@ export function SearchOverlay({
266266
267267 // Fetch initial search results on open
268268 useEffect ( ( ) => {
269- if ( searchOverlayOpen && ( ! isAskAIState || aiSearchError || aiCouldNotAnswer ) ) {
269+ if ( searchOverlayOpen ) {
270270 if ( ! searchEventGroupId . current ) {
271271 searchEventGroupId . current = uuidv4 ( )
272272 }
273273 updateAutocompleteResults ( urlSearchInputQuery )
274- } else if ( isAskAIState || aiSearchError || aiCouldNotAnswer ) {
274+ } else {
275275 // When opening the overlay via query params, we don't need to fetch autocomplete results
276276 // However, on initial open, we need to clear the loading state
277277 setSearchLoading ( false )
@@ -628,7 +628,10 @@ export function SearchOverlay({
628628 />
629629 </ Box >
630630 </ li >
631- < ActionList . Divider key = "error-bottom-divider" />
631+ { /* If there are general results, show bottom divider */ }
632+ { generalOptionsWithViewStatus . length > 0 && (
633+ < ActionList . Divider key = "error-middle-divider" />
634+ ) }
632635 </ >
633636 ) }
634637 { renderSearchGroups (
@@ -885,36 +888,8 @@ function renderSearchGroups(
885888 const groups = [ ]
886889
887890 let isInAskAIState = askAIState ?. isAskAIState && ! askAIState . aiSearchError
888- if ( isInAskAIState ) {
889- groups . push (
890- < ActionList . Group key = "ai" data-testid = "ask-ai" >
891- < li tabIndex = { - 1 } >
892- < AskAIResults
893- query = { askAIState . aiQuery }
894- debug = { askAIState . debug }
895- version = { askAIState . currentVersion }
896- setAISearchError = { askAIState . setAISearchError }
897- references = { askAIState . references }
898- setReferences = { askAIState . setReferences }
899- referencesIndexOffset = { askAIState . referencesIndexOffset }
900- referenceOnSelect = { askAIState . referenceOnSelect }
901- selectedIndex = { selectedIndex }
902- askAIEventGroupId = { askAIState . askAIEventGroupId }
903- aiCouldNotAnswer = { askAIState . aiCouldNotAnswer }
904- setAICouldNotAnswer = { askAIState . setAICouldNotAnswer }
905- listElementsRef = { listElementsRef }
906- />
907- </ li >
908- </ ActionList . Group > ,
909- )
910- }
911-
912891 let isInAskAIStateButNoAnswer = isInAskAIState && askAIState . aiCouldNotAnswer
913892
914- if ( isInAskAIStateButNoAnswer ) {
915- groups . push ( < ActionList . Divider key = "no-answer-divider" /> )
916- }
917-
918893 // already showing spinner when streaming AI response, so don't want to show 2 here
919894 if ( showSpinner && ! isInAskAIState ) {
920895 groups . push (
@@ -932,8 +907,8 @@ function renderSearchGroups(
932907 return groups
933908 }
934909
935- // We want to show general search suggestions underneath the AI Response section if the AI Could no answer
936- if ( ( generalSearchOptions . length && ! isInAskAIState ) || isInAskAIStateButNoAnswer ) {
910+ // We want to show general search suggestions above the AI Response section if the AI could not answer
911+ if ( generalSearchOptions . length || isInAskAIStateButNoAnswer ) {
937912 const items = [ ]
938913 for ( let index = 0 ; index < generalSearchOptions . length ; index ++ ) {
939914 const option = generalSearchOptions [ index ]
@@ -1034,17 +1009,43 @@ function renderSearchGroups(
10341009 </ ActionList . Group > ,
10351010 )
10361011
1012+ if ( isInAskAIState || isInAskAIStateButNoAnswer ) {
1013+ groups . push ( < ActionList . Divider key = "no-answer-divider" /> )
1014+ }
1015+
1016+ if ( isInAskAIState ) {
1017+ groups . push (
1018+ < ActionList . Group key = "ai" data-testid = "ask-ai" >
1019+ < li tabIndex = { - 1 } >
1020+ < AskAIResults
1021+ query = { askAIState . aiQuery }
1022+ debug = { askAIState . debug }
1023+ version = { askAIState . currentVersion }
1024+ setAISearchError = { askAIState . setAISearchError }
1025+ references = { askAIState . references }
1026+ setReferences = { askAIState . setReferences }
1027+ referencesIndexOffset = { askAIState . referencesIndexOffset }
1028+ referenceOnSelect = { askAIState . referenceOnSelect }
1029+ selectedIndex = { selectedIndex }
1030+ askAIEventGroupId = { askAIState . askAIEventGroupId }
1031+ aiCouldNotAnswer = { askAIState . aiCouldNotAnswer }
1032+ setAICouldNotAnswer = { askAIState . setAICouldNotAnswer }
1033+ listElementsRef = { listElementsRef }
1034+ />
1035+ </ li >
1036+ </ ActionList . Group > ,
1037+ )
1038+ }
1039+
10371040 // Don't show the bottom divider if:
10381041 // 1. We are in the AI could not answer state
10391042 // 2. We are in the AI Search error state
10401043 // 3. There are no AI suggestions to show in suggestions state
10411044 if (
1042- ! askAIState . aiCouldNotAnswer &&
1045+ ! isInAskAIState &&
10431046 ! askAIState . aiSearchError &&
1044- ( ! askAIState . isAskAIState ||
1045- generalSearchOptions . filter (
1046- ( option ) => ! option . isViewAllResults && ! option . isNoResultsFound ,
1047- ) . length ) &&
1047+ generalSearchOptions . filter ( ( option ) => ! option . isViewAllResults && ! option . isNoResultsFound )
1048+ . length &&
10481049 aiOptionsWithUserInput . length
10491050 ) {
10501051 groups . push ( < ActionList . Divider key = "bottom-divider" /> )
0 commit comments