@@ -60,14 +60,22 @@ def _score_match(self, query_words: list[str], target_fields: list[str]) -> floa
6060 return total_score / len (query_words ) if query_words else 0.0
6161
6262 @rx .event
63- async def apply_filter_search (self ):
63+ async def apply_filter_search (self , selected_filter : str ):
6464 """Re-run the fuzzy search efficiently depending on selected filter."""
65+
66+ if self .selected_filter == selected_filter :
67+ return
68+
69+ self .selected_filter = selected_filter
70+
6571 if self .selected_filter == "All Content" :
6672 yield FuzzySearch .serve_fuzzy_query ()
6773 yield FuzzySearch .serve_fuzzy_blogs ()
74+
6875 elif self .selected_filter == "Blog Posts" :
6976 self .idxed_docs_results = []
7077 yield FuzzySearch .serve_fuzzy_blogs ()
78+
7179 else :
7280 self .idxed_blogs_results = []
7381 yield FuzzySearch .serve_fuzzy_query ()
@@ -233,7 +241,7 @@ def filter_items(filter_name: str):
233241 FuzzySearch .selected_filter == filter_name ,
234242 rx .icon (tag = "check" , size = 12 )
235243 ),
236- on_click = [ FuzzySearch .set_selected_filter (filter_name ), FuzzySearch . apply_filter_search ] ,
244+ on_click = FuzzySearch .apply_filter_search (filter_name ),
237245 class_name = "flex flex-row gap-x-2 items-center px-3 py-1 w-full justify-between cursor-pointer outline-none hover:bg-slate-3 focus:border-none" ,
238246 )
239247 )
0 commit comments