diff --git a/materialious/src/lib/Api/index.ts b/materialious/src/lib/Api/index.ts index b498fb3c..748d037f 100644 --- a/materialious/src/lib/Api/index.ts +++ b/materialious/src/lib/Api/index.ts @@ -26,7 +26,7 @@ export async function getDislikes(videoId: string): Promise { return await resp.json(); } -export async function getComments(videoId: string, parameters: { sortBy: "top" | "new", source: "youtube" | "reddit", continuation?: string; }): Promise { +export async function getComments(videoId: string, parameters: { sort_by: "top" | "new", source: "youtube" | "reddit", continuation?: string; }): Promise { const path = new URL(buildPath(`comments/${videoId}`)); path.search = new URLSearchParams(parameters).toString(); const resp = await fetch(path); @@ -43,4 +43,13 @@ export async function getSearchSuggestions(search: string): Promise { + const path = new URL(buildPath("search")); + path.search = new URLSearchParams({ ...options, q: search }).toString(); + const resp = await fetch(path); + return await resp.json(); } \ No newline at end of file diff --git a/materialious/src/routes/+layout.svelte b/materialious/src/routes/+layout.svelte index 25f4040c..3f34a050 100644 --- a/materialious/src/routes/+layout.svelte +++ b/materialious/src/routes/+layout.svelte @@ -1,4 +1,5 @@ + +{#if data} +
+
+
+ {#each data.search as video} +
+ +
+ {/each} +
+
+{:else} + +{/if} diff --git a/materialious/src/routes/search/[slug]/+page.ts b/materialious/src/routes/search/[slug]/+page.ts new file mode 100644 index 00000000..3f9ed812 --- /dev/null +++ b/materialious/src/routes/search/[slug]/+page.ts @@ -0,0 +1,7 @@ +import { getSearch } from '$lib/Api/index.js'; + +export async function load({ params }) { + return { + search: await getSearch(params.slug, { sort_by: "relevance", type: "video" }) + }; +} \ No newline at end of file