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 @@