diff --git a/src/components/extension.svelte b/src/components/extension.svelte new file mode 100644 index 0000000..ec329fb --- /dev/null +++ b/src/components/extension.svelte @@ -0,0 +1,67 @@ + + +
+
+ +

{data.name}

+

+ {data.description} +

+
+
+ Created by + + {data.created_by.name} + +
+
diff --git a/src/routes/extensions/+page.svelte b/src/routes/extensions/+page.svelte new file mode 100644 index 0000000..7d84dc8 --- /dev/null +++ b/src/routes/extensions/+page.svelte @@ -0,0 +1,127 @@ + + + + Extensions - Svgl + + + + + +
+ +

Extensions

+
+
+
+

+ Extensions +

+
+

+ Integrate SVGL with your favorite tools and apps to streamline your + workflow. Created by the community. +

+ +
+
+ +
+ +
+ + {#each filteredExtensions as extension (extension.id)} + + {/each} + +
+
diff --git a/src/routes/extensions/+page.ts b/src/routes/extensions/+page.ts new file mode 100644 index 0000000..a78a65d --- /dev/null +++ b/src/routes/extensions/+page.ts @@ -0,0 +1,22 @@ +import type { Load } from "@sveltejs/kit"; + +import { extensionsData } from "@/data"; +import { searchExtensionsWithFuse } from "@/utils/searchWithFuse"; + +export const load: Load = ({ url }) => { + const searchParam = url.searchParams.get("search") || ""; + let filteredExtensions = [...extensionsData]; + + if (searchParam) { + const fuseSearch = searchExtensionsWithFuse(extensionsData); + filteredExtensions = fuseSearch + .search(searchParam) + .map((result) => result.item); + } + + return { + searchTerm: searchParam, + initialExtensions: filteredExtensions, + allExtensions: extensionsData, + }; +};