Skip to content

Commit 35359cb

Browse files
committed
more teaks
1 parent 5bb6f62 commit 35359cb

File tree

1 file changed

+46
-48
lines changed

1 file changed

+46
-48
lines changed

pcweb/components/docpage/navbar/typesense.py

Lines changed: 46 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -60,20 +60,22 @@ async def perform_search(self):
6060
return
6161

6262
try:
63-
async with self:
64-
self.is_fetching = False
65-
yield
63+
# async with self:
64+
# self.is_fetching = True
65+
# yield
6666

6767
client = typesense.Client(TYPESENSE_CONFIG)
6868

6969
# Build search parameters
7070
search_params = {
7171
"q": self.query,
7272
"query_by": "title,content,headings",
73-
"query_by_weights": "10,3,5",
73+
"query_by_weights": "10,2,5",
7474
"per_page": 15,
75-
"num_typos": 1,
75+
"num_typos": 2,
7676
"sort_by": "_text_match:desc",
77+
"prefix": "true",
78+
"sort_by": "_text_match:desc"
7779
}
7880

7981
# Apply filter
@@ -376,6 +378,7 @@ def search_input():
376378
),
377379
rx.el.input(
378380
on_change=[
381+
SimpleSearch.set_is_fetching(True),
379382
lambda value: SimpleSearch.set_query(value.replace("rx.", "")).debounce(500),
380383
SimpleSearch.perform_search(),
381384
],
@@ -474,6 +477,40 @@ def no_results_found():
474477
class_name="w-full flex items-center justify-center text-sm py-4",
475478
)
476479

480+
def searching_in_progress():
481+
return rx.box(
482+
rx.el.p(
483+
rx.fragment(
484+
"Searching for ",
485+
rx.el.strong(f"'{SimpleSearch.query}'"),
486+
"..."
487+
),
488+
),
489+
class_name="w-full flex items-center justify-center text-sm py-4",
490+
)
491+
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+
)
513+
477514
def search_content():
478515
return rx.scroll_area(
479516
rx.cond(
@@ -483,53 +520,14 @@ def search_content():
483520
rx.foreach(suggestion_items, lambda value: search_result_start(value)),
484521
class_name="flex flex-col gap-y-2",
485522
),
486-
# Query is 3+ characters
523+
# Query is 3+ characters - check if we're currently fetching
487524
rx.cond(
488525
SimpleSearch.is_fetching,
526+
searching_in_progress(),
527+
# Not fetching - show results or no results
489528
rx.cond(
490529
(SimpleSearch.idxed_docs_results.length() >= 1) | (SimpleSearch.idxed_blogs_results.length() >= 1),
491-
rx.box(
492-
# Docs results
493-
rx.box(
494-
rx.foreach(
495-
SimpleSearch.idxed_docs_results,
496-
lambda value: search_result(value["parts"].to(list), value)
497-
),
498-
class_name="flex flex-col gap-y-2",
499-
),
500-
# Blog results
501-
rx.box(
502-
rx.foreach(
503-
SimpleSearch.idxed_blogs_results,
504-
lambda value: search_result_blog(value)
505-
),
506-
class_name="flex flex-col gap-y-2",
507-
),
508-
class_name="flex flex-col",
509-
),
510-
rx.box()
511-
),
512-
rx.cond(
513-
(SimpleSearch.idxed_docs_results.length() >= 1) | (SimpleSearch.idxed_blogs_results.length() >= 1),
514-
rx.box(
515-
# Docs results
516-
rx.box(
517-
rx.foreach(
518-
SimpleSearch.idxed_docs_results,
519-
lambda value: search_result(value["parts"].to(list), value)
520-
),
521-
class_name="flex flex-col gap-y-2",
522-
),
523-
# Blog results
524-
rx.box(
525-
rx.foreach(
526-
SimpleSearch.idxed_blogs_results,
527-
lambda value: search_result_blog(value)
528-
),
529-
class_name="flex flex-col gap-y-2",
530-
),
531-
class_name="flex flex-col",
532-
),
530+
search_results_display(),
533531
no_results_found()
534532
)
535533
)

0 commit comments

Comments
 (0)