@@ -60,9 +60,9 @@ async def perform_search(self):
6060 return
6161
6262 try :
63- # async with self:
64- # self.is_fetching = True
65- # yield
63+ async with self :
64+ self .is_fetching = True
65+ yield
6666
6767 client = typesense .Client (TYPESENSE_CONFIG )
6868
@@ -378,7 +378,7 @@ def search_input():
378378 ),
379379 rx .el .input (
380380 on_change = [
381- SimpleSearch .set_is_fetching (True ),
381+ # SimpleSearch.set_is_fetching(True),
382382 lambda value : SimpleSearch .set_query (value .replace ("rx." , "" )).debounce (500 ),
383383 SimpleSearch .perform_search (),
384384 ],
@@ -483,33 +483,12 @@ def searching_in_progress():
483483 rx .fragment (
484484 "Searching for " ,
485485 rx .el .strong (f"'{ SimpleSearch .query } '" ),
486- "..."
486+ "..." ,
487487 ),
488488 ),
489489 class_name = "w-full flex items-center justify-center text-sm py-4" ,
490490 )
491491
492- def search_results_display ():
493- """Display the actual search results"""
494- return rx .box (
495- # Docs results
496- rx .box (
497- rx .foreach (
498- SimpleSearch .idxed_docs_results ,
499- lambda value : search_result (value ["parts" ].to (list ), value )
500- ),
501- class_name = "flex flex-col gap-y-2" ,
502- ),
503- # Blog results
504- rx .box (
505- rx .foreach (
506- SimpleSearch .idxed_blogs_results ,
507- lambda value : search_result_blog (value )
508- ),
509- class_name = "flex flex-col gap-y-2" ,
510- ),
511- class_name = "flex flex-col" ,
512- )
513492
514493def search_content ():
515494 return rx .scroll_area (
@@ -520,14 +499,53 @@ def search_content():
520499 rx .foreach (suggestion_items , lambda value : search_result_start (value )),
521500 class_name = "flex flex-col gap-y-2" ,
522501 ),
523- # Query is 3+ characters - check if we're currently fetching
502+ # Query is 3+ characters
524503 rx .cond (
525504 SimpleSearch .is_fetching ,
526- searching_in_progress (),
527- # Not fetching - show results or no results
528505 rx .cond (
529506 (SimpleSearch .idxed_docs_results .length () >= 1 ) | (SimpleSearch .idxed_blogs_results .length () >= 1 ),
530- search_results_display (),
507+ rx .box (
508+ # Docs results
509+ rx .box (
510+ rx .foreach (
511+ SimpleSearch .idxed_docs_results ,
512+ lambda value : search_result (value ["parts" ].to (list ), value )
513+ ),
514+ class_name = "flex flex-col gap-y-2" ,
515+ ),
516+ # Blog results
517+ rx .box (
518+ rx .foreach (
519+ SimpleSearch .idxed_blogs_results ,
520+ lambda value : search_result_blog (value )
521+ ),
522+ class_name = "flex flex-col gap-y-2" ,
523+ ),
524+ class_name = "flex flex-col" ,
525+ ),
526+ searching_in_progress (),
527+ ),
528+ rx .cond (
529+ (SimpleSearch .idxed_docs_results .length () >= 1 ) | (SimpleSearch .idxed_blogs_results .length () >= 1 ),
530+ rx .box (
531+ # Docs results
532+ rx .box (
533+ rx .foreach (
534+ SimpleSearch .idxed_docs_results ,
535+ lambda value : search_result (value ["parts" ].to (list ), value )
536+ ),
537+ class_name = "flex flex-col gap-y-2" ,
538+ ),
539+ # Blog results
540+ rx .box (
541+ rx .foreach (
542+ SimpleSearch .idxed_blogs_results ,
543+ lambda value : search_result_blog (value )
544+ ),
545+ class_name = "flex flex-col gap-y-2" ,
546+ ),
547+ class_name = "flex flex-col" ,
548+ ),
531549 no_results_found ()
532550 )
533551 )
0 commit comments