File tree Expand file tree Collapse file tree 1 file changed +23
-0
lines changed
Expand file tree Collapse file tree 1 file changed +23
-0
lines changed Original file line number Diff line number Diff line change @@ -49,6 +49,7 @@ export function SearchProvider({ children }: React.PropsWithChildren) {
4949 const router = useRouter ( ) ;
5050 const [ isOpen , setIsOpen ] = useState ( false ) ;
5151 const [ initialQuery , setInitialQuery ] = useState ( "" ) ;
52+ const searchTimer = useRef < ReturnType < typeof setTimeout > | null > ( null ) ;
5253
5354 const onOpen = useCallback ( ( ) => {
5455 setIsOpen ( true ) ;
@@ -154,6 +155,28 @@ export function SearchProvider({ children }: React.PropsWithChildren) {
154155 } ,
155156 } }
156157 hitComponent = { Hit }
158+ transformSearchClient = { ( originalClient ) => {
159+ return {
160+ ...originalClient ,
161+ search ( requests ) {
162+ if ( searchTimer . current ) {
163+ clearTimeout ( searchTimer . current ) ;
164+ }
165+ return new Promise ( ( resolve , reject ) => {
166+ searchTimer . current = setTimeout ( ( ) => {
167+ // try-catch if original search fails synchronously
168+ try {
169+ // resolve handle internal promise
170+ resolve ( originalClient . search ( requests ) )
171+ } catch ( e ) {
172+ reject ( e )
173+ }
174+ } , 300 ) ;
175+ } )
176+ }
177+ }
178+ }
179+ }
157180 transformItems = { ( items ) => {
158181 items = items . map ( ( item ) => {
159182 item . url = rewriteURL ( item . url ) ;
You can’t perform that action at this time.
0 commit comments