From f1889e0eabdf5baaf57ab0387eef10a337a24ed3 Mon Sep 17 00:00:00 2001
From: glazk0 <43091603+glazk0@users.noreply.github.com>
Date: Mon, 19 Feb 2024 22:06:12 +0100
Subject: [PATCH] fix: utils & register / confirmation issue
---
src/app.css | 6 ++-
src/app.d.ts | 4 +-
src/app.html | 24 +--------
src/hooks.server.ts | 37 +++++++-------
src/lib/components/Badge.svelte | 2 +-
src/lib/components/Chapter.svelte | 8 +--
src/lib/components/Icons/AlignLeft.svelte | 2 +-
src/lib/components/Icons/Badge.svelte | 2 +-
src/lib/components/Icons/ChevronRight.svelte | 2 +-
src/lib/components/Icons/Code.svelte | 2 +-
src/lib/components/Icons/Dashboard.svelte | 2 +-
src/lib/components/Icons/Discord.svelte | 4 +-
src/lib/components/Icons/Git.svelte | 2 +-
src/lib/components/Icons/Help.svelte | 2 +-
src/lib/components/Icons/Leaderboard.svelte | 2 +-
src/lib/components/Icons/Mail.svelte | 2 +-
src/lib/components/Icons/Settings.svelte | 2 +-
src/lib/components/Icons/X.svelte | 2 +-
src/lib/components/Metadata.svelte | 49 +++++++++++++++++++
src/lib/components/Puzzle.svelte | 2 +-
src/lib/components/Sidenav.svelte | 2 +-
src/lib/components/ui/Button.svelte | 4 +-
src/lib/components/ui/Input.svelte | 2 +-
src/lib/config/site.ts | 16 ++++++
src/lib/index.ts | 1 -
src/lib/types/index.ts | 2 +-
src/lib/{Utils.ts => utils.ts} | 2 +-
src/routes/+layout.svelte | 37 ++------------
src/routes/+page.server.ts | 4 +-
src/routes/+page.svelte | 2 -
src/routes/dashboard/+layout.server.ts | 2 +-
.../chapters/[chapterId]/+page.server.ts | 4 +-
.../[chapterId]/puzzle/+page.server.ts | 2 +-
.../puzzle/[puzzleId]/+page.server.ts | 14 +++---
src/routes/dashboard/leaderboard/+page.svelte | 2 +-
.../leaderboard/[chapterId]/+page.server.ts | 6 +--
.../leaderboard/[chapterId]/+page.svelte | 2 +-
src/routes/dashboard/settings/+page.svelte | 2 +-
src/routes/forgot-password/+page.server.ts | 17 +++----
src/routes/forgot-password/+page.svelte | 29 ++++++++---
src/routes/logout/+page.server.ts | 2 +-
src/routes/sign-in/+page.server.ts | 25 ++++++----
src/routes/sign-up/+page.server.ts | 9 ++--
src/routes/sign-up/+page.svelte | 10 +++-
svelte.config.js | 5 +-
vite.config.ts | 3 ++
46 files changed, 206 insertions(+), 158 deletions(-)
create mode 100644 src/lib/components/Metadata.svelte
create mode 100644 src/lib/config/site.ts
delete mode 100644 src/lib/index.ts
rename src/lib/{Utils.ts => utils.ts} (71%)
delete mode 100644 src/routes/+page.svelte
diff --git a/src/app.css b/src/app.css
index ab934ea..3d9f6c8 100644
--- a/src/app.css
+++ b/src/app.css
@@ -80,10 +80,13 @@
@layer base {
* {
+ box-sizing: border-box;
+ scroll-behavior: smooth;
@apply border-border text-white;
}
+
body {
- @apply text-foreground;
+ @apply text-foreground bg-gradient-to-b from-primary-800 to-primary-900;
}
}
@@ -91,6 +94,7 @@
.console {
@apply relative top-0.5 inline-block;
}
+
input:-webkit-autofill,
input:-webkit-autofill:hover,
input:-webkit-autofill:focus,
diff --git a/src/app.d.ts b/src/app.d.ts
index 9054ea1..276009c 100644
--- a/src/app.d.ts
+++ b/src/app.d.ts
@@ -7,10 +7,10 @@ declare global {
namespace App {
// interface Error {}
interface Locals {
- user?: User;
+ user: User | null;
}
interface PageData {
- user?: User;
+ user: User | null;
}
// interface Platform {}
}
diff --git a/src/app.html b/src/app.html
index 8cc09b8..27cc215 100644
--- a/src/app.html
+++ b/src/app.html
@@ -1,28 +1,6 @@
-
+
-
-
-
-
-
-
-
-
%sveltekit.head%
diff --git a/src/hooks.server.ts b/src/hooks.server.ts
index b63d4bf..7699c9d 100644
--- a/src/hooks.server.ts
+++ b/src/hooks.server.ts
@@ -4,24 +4,27 @@ import { API_URL } from '$env/static/private';
import type { User } from '$lib/types';
-export const handle = (async ({ event, resolve }) => {
+export const handle: Handle = async ({ event, resolve }) => {
const session = event.cookies.get('session');
- if (session) {
- const res = await fetch(`${API_URL}/player/`, {
- headers: {
- Authorization: `Bearer ${session}`
- }
- });
-
- if (res.ok) {
- const user = (await res.json()) as User;
- event.locals.user = user;
- } else {
- event.locals.user = undefined;
- event.cookies.delete('session');
- }
+ if (!session) {
+ event.locals.user = null;
+ return resolve(event);
}
- return await resolve(event);
-}) satisfies Handle;
+ const res = await fetch(`${API_URL}/player/`, {
+ headers: {
+ Authorization: `Bearer ${session}`
+ }
+ });
+
+ if (res.ok) {
+ const user = (await res.json()) as User;
+ event.locals.user = user;
+ } else {
+ event.locals.user = null;
+ event.cookies.delete('session', { path: '/' });
+ }
+
+ return resolve(event);
+};
diff --git a/src/lib/components/Badge.svelte b/src/lib/components/Badge.svelte
index f340765..155f0a2 100644
--- a/src/lib/components/Badge.svelte
+++ b/src/lib/components/Badge.svelte
@@ -1,5 +1,5 @@
diff --git a/src/lib/components/Icons/AlignLeft.svelte b/src/lib/components/Icons/AlignLeft.svelte
index 5fe357f..6aa7a7e 100644
--- a/src/lib/components/Icons/AlignLeft.svelte
+++ b/src/lib/components/Icons/AlignLeft.svelte
@@ -1,5 +1,5 @@
+
+
+ {#key $page.url.pathname}
+ {siteConfig.title}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {/key}
+
diff --git a/src/lib/components/Puzzle.svelte b/src/lib/components/Puzzle.svelte
index ef90fa0..cb79749 100644
--- a/src/lib/components/Puzzle.svelte
+++ b/src/lib/components/Puzzle.svelte
@@ -1,6 +1,6 @@
+
+
- Peer-at Code
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
diff --git a/src/routes/+page.server.ts b/src/routes/+page.server.ts
index 013aba5..fc37237 100644
--- a/src/routes/+page.server.ts
+++ b/src/routes/+page.server.ts
@@ -2,6 +2,6 @@ import { redirect } from '@sveltejs/kit';
import type { PageServerLoad } from './$types';
export const load = (async ({ locals: { user } }) => {
- if (user) throw redirect(303, '/dashboard');
- throw redirect(303, '/sign-in');
+ if (user) redirect(303, '/dashboard');
+ redirect(303, '/sign-in');
}) satisfies PageServerLoad;
diff --git a/src/routes/+page.svelte b/src/routes/+page.svelte
deleted file mode 100644
index 4d28455..0000000
--- a/src/routes/+page.svelte
+++ /dev/null
@@ -1,2 +0,0 @@
-
\ No newline at end of file
diff --git a/src/routes/dashboard/+layout.server.ts b/src/routes/dashboard/+layout.server.ts
index 339d025..e7fdd77 100644
--- a/src/routes/dashboard/+layout.server.ts
+++ b/src/routes/dashboard/+layout.server.ts
@@ -2,5 +2,5 @@ import { redirect, type ServerLoad } from '@sveltejs/kit';
export const load: ServerLoad = async ({ locals: { user }, parent }) => {
await parent();
- if (!user) throw redirect(303, '/sign-in');
+ if (!user) redirect(303, '/sign-in');
};
diff --git a/src/routes/dashboard/chapters/[chapterId]/+page.server.ts b/src/routes/dashboard/chapters/[chapterId]/+page.server.ts
index 759c346..0085c00 100644
--- a/src/routes/dashboard/chapters/[chapterId]/+page.server.ts
+++ b/src/routes/dashboard/chapters/[chapterId]/+page.server.ts
@@ -17,13 +17,13 @@ export const load = (async ({ parent, fetch, cookies, params: { chapterId } }) =
});
if (!res.ok) {
- throw redirect(302, '/dashboard/chapters');
+ redirect(302, '/dashboard/chapters');
}
const chapter = (await res.json()) as Chapter;
if (!chapter || !chapter.show) {
- throw redirect(302, '/dashboard/chapters');
+ redirect(302, '/dashboard/chapters');
}
return {
diff --git a/src/routes/dashboard/chapters/[chapterId]/puzzle/+page.server.ts b/src/routes/dashboard/chapters/[chapterId]/puzzle/+page.server.ts
index 680126f..e3e7627 100644
--- a/src/routes/dashboard/chapters/[chapterId]/puzzle/+page.server.ts
+++ b/src/routes/dashboard/chapters/[chapterId]/puzzle/+page.server.ts
@@ -4,5 +4,5 @@ import type { PageServerLoad } from './$types';
export const load = (async ({ parent, params: { chapterId } }) => {
await parent();
- throw redirect(303, chapterId ? `/dashboard/chapters/${chapterId}` : `/dashboard/chapters`);
+ redirect(303, chapterId ? `/dashboard/chapters/${chapterId}` : `/dashboard/chapters`);
}) satisfies PageServerLoad;
diff --git a/src/routes/dashboard/chapters/[chapterId]/puzzle/[puzzleId]/+page.server.ts b/src/routes/dashboard/chapters/[chapterId]/puzzle/[puzzleId]/+page.server.ts
index d4531b6..cf2ccb4 100644
--- a/src/routes/dashboard/chapters/[chapterId]/puzzle/[puzzleId]/+page.server.ts
+++ b/src/routes/dashboard/chapters/[chapterId]/puzzle/[puzzleId]/+page.server.ts
@@ -11,7 +11,7 @@ export const load = (async ({ parent, fetch, cookies, params: { chapterId, puzzl
const session = cookies.get('session');
if (isNaN(parseInt(puzzleId))) {
- throw redirect(303, `/dashboard/chapters/${chapterId}`);
+ redirect(303, `/dashboard/chapters/${chapterId}`);
}
let res = await fetch(`${API_URL}/chapter/${chapterId}`, {
@@ -21,20 +21,20 @@ export const load = (async ({ parent, fetch, cookies, params: { chapterId, puzzl
});
if (!res.ok) {
- throw redirect(303, `/dashboard/chapters`);
+ redirect(303, `/dashboard/chapters`);
}
const chapter = (await res.json()) as Chapter;
if (!chapter || !chapter.show) {
- throw redirect(303, `/dashboard/chapters`);
+ redirect(303, `/dashboard/chapters`);
}
if (
!chapter.puzzles.some((puzzle) => puzzle.id === parseInt(puzzleId)) ||
!chapter.puzzles.find((puzzle) => puzzle.id === parseInt(puzzleId))?.show
) {
- throw redirect(303, `/dashboard/chapters/${chapterId}`);
+ redirect(303, `/dashboard/chapters/${chapterId}`);
}
res = await fetch(`${API_URL}/puzzle/${puzzleId}`, {
@@ -44,13 +44,13 @@ export const load = (async ({ parent, fetch, cookies, params: { chapterId, puzzl
});
if (!res.ok) {
- throw error(404, 'Puzzle not found');
+ error(404, 'Puzzle not found');
}
const puzzle = await res.json();
if (!puzzle) {
- throw error(404, 'Puzzle not found');
+ error(404, 'Puzzle not found');
}
return {
@@ -62,6 +62,6 @@ export const load = (async ({ parent, fetch, cookies, params: { chapterId, puzzl
export const actions = {
default: async ({ params }) => {
- throw redirect(303, `/dashboard/chapters/${params.chapterId}/puzzle/${params.puzzleId}`);
+ redirect(303, `/dashboard/chapters/${params.chapterId}/puzzle/${params.puzzleId}`);
}
} satisfies Actions;
diff --git a/src/routes/dashboard/leaderboard/+page.svelte b/src/routes/dashboard/leaderboard/+page.svelte
index 94d164f..0ddf0b8 100644
--- a/src/routes/dashboard/leaderboard/+page.svelte
+++ b/src/routes/dashboard/leaderboard/+page.svelte
@@ -1,5 +1,5 @@