From 07f474b1b05a9da5fbdad1312938581b073685b9 Mon Sep 17 00:00:00 2001 From: Samuel Date: Sun, 26 Jan 2025 06:45:59 +0100 Subject: [PATCH] feat: implement fuzzy search and optimize sorting --- package.json | 1 + pnpm-lock.yaml | 10 ++++ src/routes/+page.svelte | 126 ++++++++++++++++++++++------------------ 3 files changed, 81 insertions(+), 56 deletions(-) diff --git a/package.json b/package.json index e1d3cab..8cead04 100644 --- a/package.json +++ b/package.json @@ -43,6 +43,7 @@ "@upstash/redis": "1.34.0", "clsx": "2.1.1", "downloadjs": "1.4.7", + "fuse.js": "^7.0.0", "jszip": "3.10.1", "lucide-svelte": "0.445.0", "mode-watcher": "0.4.1", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 05e3471..1553d73 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -32,6 +32,9 @@ importers: downloadjs: specifier: 1.4.7 version: 1.4.7 + fuse.js: + specifier: ^7.0.0 + version: 7.0.0 jszip: specifier: 3.10.1 version: 3.10.1 @@ -1459,6 +1462,10 @@ packages: function-bind@1.1.2: resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==} + fuse.js@7.0.0: + resolution: {integrity: sha512-14F4hBIxqKvD4Zz/XjDc3y94mNZN6pRv3U13Udo0lNLCWRBUsrMv2xwcF/y/Z5sV6+FQW+/ow68cHpm4sunt8Q==} + engines: {node: '>=10'} + gensync@1.0.0-beta.2: resolution: {integrity: sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==} engines: {node: '>=6.9.0'} @@ -2296,6 +2303,7 @@ packages: shikiji-core@0.10.2: resolution: {integrity: sha512-9Of8HMlF96usXJHmCL3Gd0Fcf0EcyJUF9m8EoAKKd98mHXi0La2AZl1h6PegSFGtiYcBDK/fLuKbDa1l16r1fA==} + deprecated: Shikiji is merged back to Shiki v1.0, please migrate over to get the latest updates shikiji@0.10.2: resolution: {integrity: sha512-wtZg3T0vtYV2PnqusWQs3mDaJBdCPWxFDrBM/SE5LfrX92gjUvfEMlc+vJnoKY6Z/S44OWaCRzNIsdBRWcTAiw==} @@ -3995,6 +4003,8 @@ snapshots: function-bind@1.1.2: {} + fuse.js@7.0.0: {} + gensync@1.0.0-beta.2: {} get-caller-file@2.0.5: {} diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte index a06b2cb..182fcb3 100644 --- a/src/routes/+page.svelte +++ b/src/routes/+page.svelte @@ -1,12 +1,27 @@ @@ -100,15 +108,15 @@ bind:searchTerm on:input={searchSvgs} clearSearch={() => clearSearch()} - placeholder={`Search ${filteredSvgs.length} logos...`} + placeholder={`Search ${allSvgs.length} logos...`} /> -
0 && 'justify-between')}> +
0 && 'justify-between')}> {#if searchTerm.length > 0}
- {#each filteredSvgs.slice(0, showAll ? undefined : 30) as svg} - + {#each displaySvgs as svg} + {/each} {#if filteredSvgs.length > 30 && !showAll} -
-