@@ -11,7 +11,7 @@ import { useCardAnalytics } from '../hooks/useCardAnalytics';
1111import { DefaultRawDataType } from '../models/index' ;
1212import { executeGenerativeDirectAnswer } from '../utils/search-operations' ;
1313import { Markdown , MarkdownCssClasses } from './Markdown' ;
14- import React , { useMemo , useState } from 'react' ;
14+ import React , { useMemo , useRef } from 'react' ;
1515
1616/**
1717 * The CSS class interface used for {@link GenerativeDirectAnswer}.
@@ -92,19 +92,18 @@ export function GenerativeDirectAnswer({
9292 }
9393 } , [ isUniversal , universalResults , verticalResults ] ) ;
9494
95- const [ lastExecutedSearchResults , setLastExecutedSearchResults ] =
96- useState ( undefined as Result [ ] | undefined ) ;
95+ const lastExecutedSearchResults = useRef ( undefined as Result [ ] | undefined ) ;
9796 const searchActions = useSearchActions ( ) ;
9897 const gdaResponse = useSearchState ( state => state . generativeDirectAnswer ?. response ) ;
9998 const isLoading = useSearchState ( state => state . generativeDirectAnswer ?. isLoading ) ;
10099 const handleClickEvent = useReportClickEvent ( ) ;
101100
102101 React . useEffect ( ( ) => {
103- if ( ! searchResults ?. length || ! searchId || searchResults === lastExecutedSearchResults ) {
102+ if ( ! searchResults ?. length || ! searchId || searchResults === lastExecutedSearchResults . current ) {
104103 return ;
105104 }
106105 executeGenerativeDirectAnswer ( searchActions ) ;
107- setLastExecutedSearchResults ( searchResults ) ;
106+ lastExecutedSearchResults . current = searchResults ;
108107 } , [ searchResults , searchId ] ) ;
109108
110109 if ( ! searchResults ?. length || isLoading || ! gdaResponse || gdaResponse . resultStatus !== 'SUCCESS' ) {
0 commit comments