Simplify change-password page: remove duplicate header, use main layout navbar, align buttons right

This commit is contained in:
Christoph Haas 2026-03-23 22:29:18 +01:00
parent 629c66cc34
commit c459cc1efb

View file

@ -1,9 +1,4 @@
<script lang="ts"> <script lang="ts">
import { goto } from '$app/navigation';
import { onMount } from 'svelte';
import { decodeJWT } from '$lib/auth';
let user: { username?: string } | null = $state(null);
let oldPassword = $state(''); let oldPassword = $state('');
let newPassword = $state(''); let newPassword = $state('');
let confirmPassword = $state(''); let confirmPassword = $state('');
@ -11,19 +6,6 @@
let success = $state(false); let success = $state(false);
let loading = $state(false); let loading = $state(false);
onMount(async () => {
const token = localStorage.getItem('token');
if (!token) {
await goto('/auth/login');
return;
}
const payload = decodeJWT(token);
if (payload) {
user = { username: payload.username };
}
});
async function handleSubmit(e: Event) { async function handleSubmit(e: Event) {
e.preventDefault(); e.preventDefault();
error = ''; error = '';
@ -67,29 +49,13 @@
loading = false; loading = false;
} }
} }
function handleLogout() {
localStorage.removeItem('token');
goto('/auth/login');
}
</script> </script>
<div class="min-h-screen bg-base-200" data-theme="light"> <div class="max-w-md mx-auto p-6">
<header class="bg-base-100 shadow">
<div class="max-w-2xl mx-auto px-6 py-4 flex justify-between items-center">
<h1 class="text-xl font-bold">Change Password</h1>
<div class="flex items-center gap-4">
{#if user}
<span class="text-base-content/60">Logged in as <strong>{user.username}</strong></span>
{/if}
<button class="btn btn-error btn-sm" onclick={handleLogout}>Logout</button>
</div>
</div>
</header>
<main class="max-w-md mx-auto mt-8 p-6">
<div class="card bg-base-100 shadow"> <div class="card bg-base-100 shadow">
<div class="card-body"> <div class="card-body">
<h2 class="card-title mb-4">Change Password</h2>
{#if error} {#if error}
<div class="alert alert-error mb-4"> <div class="alert alert-error mb-4">
<span>{error}</span> <span>{error}</span>
@ -142,20 +108,17 @@
/> />
</fieldset> </fieldset>
<button type="submit" class="btn btn-primary w-full" disabled={loading}> <div class="flex gap-2 justify-end">
<a href="/" class="btn btn-ghost">Cancel</a>
<button type="submit" class="btn btn-primary" disabled={loading}>
{#if loading} {#if loading}
<span class="loading loading-spinner loading-sm"></span> <span class="loading loading-spinner loading-sm"></span>
Changing...
{:else} {:else}
Change Password Change
{/if} {/if}
</button> </button>
</div>
</form> </form>
<div class="text-center mt-4">
<a href="/" class="link link-primary">Back to Dashboard</a>
</div> </div>
</div> </div>
</div>
</main>
</div> </div>