diff --git a/apps/web/src/lib/config/nav.ts b/apps/web/src/lib/config/nav.ts index 489181f..5a82e5d 100644 --- a/apps/web/src/lib/config/nav.ts +++ b/apps/web/src/lib/config/nav.ts @@ -16,8 +16,20 @@ export const navConfig: NavConfig = { href: '/login' }, { - title: 'Signup', - href: '/signup' + title: 'Register', + href: '/register' + }, + { + title: 'Dashboard', + href: '/dashboard' + }, + { + title: 'Settings', + href: '/settings' + }, + { + title: 'Logout', + href: '/logout' } ], sidebarNav: [] diff --git a/apps/web/src/routes/(auth)/login/+page.server.ts b/apps/web/src/routes/(auth)/login/+page.server.ts index 20fc83f..1646945 100644 --- a/apps/web/src/routes/(auth)/login/+page.server.ts +++ b/apps/web/src/routes/(auth)/login/+page.server.ts @@ -1,48 +1,24 @@ -import { redirect } from '@sveltejs/kit'; +import { error, redirect } from '@sveltejs/kit'; export const actions = { - default: async ({ request, locals }: { request: Request; locals: App.Locals }) => { - if (locals.pocketBase.authStore.isValid) { - return; - } - - const formData = await request.formData(); - - const email = formData.get('email'); - const password = formData.get('password'); + login: async ({ request, locals }: { request: Request; locals: App.Locals }) => { + const body = Object.fromEntries(await request.formData()); try { - if (typeof email !== 'string') { - throw new Error('Email must be a string'); - } - - if (email.length < 5) { - throw new Error('Please enter a valid e-mail address'); - } - - if (typeof password !== 'string') { - throw new Error('Password must be a string'); - } - - if (password.length < 8) { - throw new Error('Password must be at least 8 characters in length'); - } - + const email = body.email.toString(); + const password = body.password.toString(); await locals.pocketBase.collection('users').authWithPassword(email, password); - } catch (error) { - console.error(error); - - if (!(error instanceof Error)) { + if (!locals.pocketBase?.authStore?.model?.verified) { + locals.pocketBase.authStore.clear(); return { - email, - password, - error: 'Unknown error occured when signing up user' + notVerified: true }; } - - return { error: error.message, email, password }; + } catch (err) { + console.log('Error: ', err); + throw error(500, 'Something went wrong logging in'); } throw redirect(303, '/'); } -}; +}; \ No newline at end of file diff --git a/apps/web/src/routes/(auth)/login/+page.svelte b/apps/web/src/routes/(auth)/login/+page.svelte index 9bdf34d..b29edd2 100644 --- a/apps/web/src/routes/(auth)/login/+page.svelte +++ b/apps/web/src/routes/(auth)/login/+page.svelte @@ -1,25 +1,59 @@ - -
+ Or register if you don't already have an account. +
+ - -{#if form?.error} -{form.error}
-{/if} - -Don't have an account?
- -Sign up ++ Or sign in if you already have an account. +
+ +We'll send you an email with a link to reset your password.
+ +{form.error}
-{/if} - -Already have an account?
- -Log in diff --git a/apps/web/src/routes/(board)/+layout.server.ts b/apps/web/src/routes/(board)/+layout.server.ts deleted file mode 100644 index f144f49..0000000 --- a/apps/web/src/routes/(board)/+layout.server.ts +++ /dev/null @@ -1,10 +0,0 @@ -import { redirect } from '@sveltejs/kit'; -import type { LayoutServerLoad } from './$types'; - -export const load = (async ({ locals }) => { - if (!locals.pocketBase.authStore.isValid) { - throw redirect(303, '/signup'); - } - - return {}; -}) satisfies LayoutServerLoad; diff --git a/apps/web/src/routes/(dashboard)/+layout.server.ts b/apps/web/src/routes/(dashboard)/+layout.server.ts new file mode 100644 index 0000000..99b7112 --- /dev/null +++ b/apps/web/src/routes/(dashboard)/+layout.server.ts @@ -0,0 +1,9 @@ +import { redirect } from '@sveltejs/kit'; + +export const load = (async ({ locals }: { locals: App.Locals }) => { + if (!locals.pocketBase.authStore.isValid) { + throw redirect(303, '/register'); + } + + return {}; +}) \ No newline at end of file diff --git a/apps/web/src/routes/(board)/board/+page.svelte b/apps/web/src/routes/(dashboard)/dashboard/+page.svelte similarity index 100% rename from apps/web/src/routes/(board)/board/+page.svelte rename to apps/web/src/routes/(dashboard)/dashboard/+page.svelte diff --git a/apps/web/src/routes/+page.server.ts b/apps/web/src/routes/+page.server.ts index 96bcf6f..af787b2 100644 --- a/apps/web/src/routes/+page.server.ts +++ b/apps/web/src/routes/+page.server.ts @@ -4,4 +4,4 @@ export const load = (async ({ locals }) => { return { authenticated: locals.pocketBase.authStore.isValid }; -}) satisfies PageServerLoad; +}) satisfies PageServerLoad; \ No newline at end of file