|
19 | 19 |
|
20 | 20 | type ViewMode = 'search' | 'cards'; |
21 | 21 |
|
| 22 | + const LOW_SCORE_THRESHOLD = 0.5; |
| 23 | +
|
22 | 24 | let query = $state(page.url.searchParams.get('q') ?? ''); |
23 | 25 | let results = $state<SearchResult[]>([]); |
| 26 | + let showLowScore = $state(false); |
| 27 | + let validResults = $derived(showLowScore ? results : results.filter((r) => r.score !== null && r.score >= LOW_SCORE_THRESHOLD)); |
24 | 28 | let loading = $state(false); |
25 | 29 | let searched = $state(false); |
26 | 30 | let viewMode = $state<ViewMode>('search'); |
|
221 | 225 | {#if !loading && results.length === 0} |
222 | 226 | <p class="py-12 text-center text-muted-foreground">No results found for "{query}"</p> |
223 | 227 | {:else if !loading && results.length > 0} |
| 228 | + {@const displayResults = validResults.length > 0 ? validResults : results} |
224 | 229 | {#if viewMode === 'search'} |
225 | | - <SearchView {results} /> |
| 230 | + <SearchView results={displayResults} /> |
226 | 231 | {:else} |
227 | | - <CardsView {results} /> |
| 232 | + <CardsView results={displayResults} /> |
228 | 233 | {/if} |
229 | 234 | {/if} |
230 | 235 |
|
| 236 | + {#if validResults.length !== results.length && validResults.length > 0} |
| 237 | + <p class="mt-4 text-center text-sm text-muted-foreground"> |
| 238 | + {results.length - validResults.length} result{results.length - validResults.length !== 1 ? 's' : ''} hidden... |
| 239 | + <button |
| 240 | + class="underline hover:text-foreground cursor-pointer" |
| 241 | + onclick={() => (showLowScore = !showLowScore)} |
| 242 | + > |
| 243 | + {showLowScore ? 'Hide' : 'Show'} them? |
| 244 | + </button> |
| 245 | + </p> |
| 246 | + {/if} |
| 247 | + |
| 248 | + {#if loading && results.length > 0} |
| 249 | + <p class="py-12 text-center text-muted-foreground">Loading more results…</p> |
| 250 | + {/if} |
| 251 | + |
| 252 | + |
231 | 253 | {#if !loading && totalPages > 1} |
232 | 254 | <div class="mt-6 flex items-center justify-center gap-2"> |
233 | 255 | <Button |
|
0 commit comments