From 5ded908c99563177cf9de4302bf3d0b5c4088634 Mon Sep 17 00:00:00 2001 From: Stan Runge Date: Sat, 25 Jan 2025 19:53:15 +0100 Subject: [PATCH] feat: topic page --- .../web/src/routes/progress/[id]/+page.svelte | 42 +++++++++++-------- .../progress/topics/[id]/+page.server.ts | 18 ++++++++ .../routes/progress/topics/[id]/+page.svelte | 14 +++++++ 3 files changed, 56 insertions(+), 18 deletions(-) create mode 100644 packages/web/src/routes/progress/topics/[id]/+page.server.ts create mode 100644 packages/web/src/routes/progress/topics/[id]/+page.svelte diff --git a/packages/web/src/routes/progress/[id]/+page.svelte b/packages/web/src/routes/progress/[id]/+page.svelte index 75596f1..b97b730 100755 --- a/packages/web/src/routes/progress/[id]/+page.svelte +++ b/packages/web/src/routes/progress/[id]/+page.svelte @@ -80,26 +80,32 @@
{#if data.task?.tasksToTopics} {#each data.task?.tasksToTopics as topic} -
- {topic.topic.name} -
+
- - - -
+ + + +
+ {/each} {/if}
diff --git a/packages/web/src/routes/progress/topics/[id]/+page.server.ts b/packages/web/src/routes/progress/topics/[id]/+page.server.ts new file mode 100644 index 0000000..cca7413 --- /dev/null +++ b/packages/web/src/routes/progress/topics/[id]/+page.server.ts @@ -0,0 +1,18 @@ +import { db } from '$lib/db'; +import { topics } from '$lib/db/schema'; +import { eq } from 'drizzle-orm'; + +export const load = async ({ params }) => { + return { + topic: await db.query.topics.findFirst({ + with: { + topicsToTasks: { + with: { + task: true + } + } + }, + where: eq(topics.id, params.id) + }) + }; +}; diff --git a/packages/web/src/routes/progress/topics/[id]/+page.svelte b/packages/web/src/routes/progress/topics/[id]/+page.svelte new file mode 100644 index 0000000..e168d9e --- /dev/null +++ b/packages/web/src/routes/progress/topics/[id]/+page.svelte @@ -0,0 +1,14 @@ + + +

{data.topic.name}

+ +

Tasks ({data.topic?.topicsToTasks.length})

+{#each data.topic?.topicsToTasks as task} +
+ {task.task.name} +
+{/each}