From 20c6de3834acf974a68e04ef70564f61b6b73360 Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Fri, 19 Sep 2025 23:07:24 -0700 Subject: [PATCH] docs: add search example component demonstrating adapter usage - Create comprehensive example showing search functionality - Demonstrate filtering, debouncing, and error handling - Show proper integration with Svelte 5 reactive patterns --- .../components/examples/SearchExample.svelte | 430 ++++++++++++++++++ 1 file changed, 430 insertions(+) create mode 100644 src/lib/components/examples/SearchExample.svelte diff --git a/src/lib/components/examples/SearchExample.svelte b/src/lib/components/examples/SearchExample.svelte new file mode 100644 index 00000000..c825b971 --- /dev/null +++ b/src/lib/components/examples/SearchExample.svelte @@ -0,0 +1,430 @@ + + + + +
+

Search Example with Adapters

+ +
+
+ + + +
+ +
+
+ +
+ {#each elements as element} + + {/each} +
+
+ +
+ +
+ {#each rarities as rarity} + + {/each} +
+
+
+ +
+ + +
+
+ +
+ {#if currentSearch.loading} +
+

Searching...

+
+ {:else if currentSearch.error} +
+

❌ Error: {currentSearch.error.message}

+

Code: {currentSearch.error.code}

+
+ {:else if currentSearch.data} + {#if currentSearch.data.results.length === 0} +
+

No results found

+
+ {:else} +
+

Found {currentSearch.data.total || currentSearch.data.results.length} results

+ {#if currentSearch.data.totalPages && currentSearch.data.totalPages > 1} +

+ Page {currentSearch.data.page || 1} of {currentSearch.data.totalPages} +

+ {/if} +
+ +
+ {#each currentSearch.data.results as result} +
+
+ {getResultIcon(result)} + {getElementIcon(result.element)} +
+

{result.name.en || result.name.ja || 'Unknown'}

+
+ {result.searchableType} + {#if result.rarity} + + {result.rarity === 3 ? 'SSR' : result.rarity === 2 ? 'SR' : 'R'} + + {/if} +
+ {#if result.imageUrl} + {result.name.en} + {/if} +
+ {/each} +
+ {/if} + {:else} +
+

Enter a search term to begin

+
+ {/if} +
+
+ + \ No newline at end of file