Sfoglia il codice sorgente

When logged in, login redirects to user page

Lee Morgan 4 giorni fa
parent
commit
49bc3b64a9

+ 1 - 0
src/routes/+page.svelte

@@ -42,6 +42,7 @@
 		<nav class="nav" aria-label="Primary">
 			<a class="nav-link" href="#features">Features</a>
 			<a class="nav-link" href="#preview">Preview</a>
+			<a class="btn btn-ghost nav-cta" href="/login">Log in</a>
 			<a class="btn btn-primary nav-cta" href="/register">Create account</a>
 		</nav>
 	</header>

+ 6 - 0
src/routes/login/+page.svelte

@@ -1,6 +1,7 @@
 <script>
 	import { onMount } from 'svelte';
 	import { applyAction, enhance } from '$app/forms';
+	import { goto } from '$app/navigation';
 	import logoMark from '$lib/images/logo_white.svg';
 	import { notifier } from '$lib/notifier.svelte.js';
 
@@ -13,6 +14,10 @@
 	let emailInput = $state();
 
 	onMount(() => {
+		if (localStorage.getItem('loggedIn') === 'true') {
+			goto('/workouts');
+			return;
+		}
 		emailInput?.focus();
 	});
 </script>
@@ -54,6 +59,7 @@
 							notifier.fail(message);
 							await update({ reset: false });
 						} else if (result.type === 'redirect') {
+							localStorage.setItem('loggedIn', 'true');
 							await applyAction(result);
 						} else if (result.type === 'error') {
 							notifier.fail(result.error?.message ?? 'Login failed');

+ 1 - 2
src/routes/logout/+page.server.js

@@ -1,8 +1,7 @@
-import { redirect } from '@sveltejs/kit';
 import { clearSessionCookie } from '$lib/server/auth.js';
 
 /** @type {import('./$types').PageServerLoad} */
 export function load({ cookies }) {
 	clearSessionCookie(cookies);
-	redirect(303, '/');
+	return {};
 }

+ 19 - 0
src/routes/logout/+page.svelte

@@ -0,0 +1,19 @@
+<script>
+	import { onMount } from 'svelte';
+	import { goto } from '$app/navigation';
+
+	onMount(() => {
+		localStorage.setItem('loggedIn', 'false');
+		goto('/');
+	});
+</script>
+
+<p class="status">Logging out…</p>
+
+<style>
+	.status {
+		margin: 48px 20px;
+		color: var(--text-muted);
+		text-align: center;
+	}
+</style>