From 24e55c2ed3abc92c7d1676e8ecae7437e1fc3276 Mon Sep 17 00:00:00 2001 From: Mawoka Date: Fri, 27 Jan 2023 23:12:42 +0100 Subject: [PATCH] :goal_net: Added error-catching to user-view --- .../src/routes/user/[user_id]/+page.svelte | 222 +++++++++--------- frontend/src/routes/user/[user_id]/+page.ts | 7 +- 2 files changed, 122 insertions(+), 107 deletions(-) diff --git a/frontend/src/routes/user/[user_id]/+page.svelte b/frontend/src/routes/user/[user_id]/+page.svelte index 07dcd2c..ad049e2 100644 --- a/frontend/src/routes/user/[user_id]/+page.svelte +++ b/frontend/src/routes/user/[user_id]/+page.svelte @@ -34,125 +34,92 @@ - ClassQuiz - @{data.user.username} + ClassQuiz - {data.user.username ? `@${data.user.username}` : 'User not found'}
-
- profile -
-

- @{data.user.username} -

-

- Joined on {new Date(data.user.created_at).toLocaleDateString()} -

+ {#if data.user.username === undefined} +

User not found

+ {:else} +
+ profile +
+

+ @{data.user.username} +

+

+ Joined on {new Date(data.user.created_at).toLocaleDateString()} +

+ {/if}
- {#each data.quizzes as quiz} -
-
- -
-

{@html quiz.title}

-

- {@html quiz.description} -

- {#if quiz.cover_image} -
-
- Not provided -
-
- {/if} -
- - -
- -
-
- {#if $signedIn} - - - - - - - {:else} -
+

--> +
+

{@html quiz.title}

+

+ {@html quiz.description} +

+ {#if quiz.cover_image} +
+
+ Not provided +
+
+ {/if} +
+ + +
+ +
+
+ {#if $signedIn} -
- - {/if} + + {:else} +
+ +
+
+ +
+ {/if} +
-
- {/each} + {/each} + {/if}
diff --git a/frontend/src/routes/user/[user_id]/+page.ts b/frontend/src/routes/user/[user_id]/+page.ts index 7aadc47..3c8e1a9 100644 --- a/frontend/src/routes/user/[user_id]/+page.ts +++ b/frontend/src/routes/user/[user_id]/+page.ts @@ -16,7 +16,12 @@ export const load = async ({ params, fetch }) => { }; } const quiz_req = await fetch(`/api/v1/community/quizzes/${params.user_id}?imported=false`); - const quizzes = await quiz_req.json(); + let quizzes; + if (quiz_req.status === 404) { + quizzes = []; + } else { + quizzes = await quiz_req.json(); + } return { user, quizzes