Files
headroom/frontend/src/routes/dashboard/+layout.ts
Santhosh Janardhanan f935754df4 feat: Reinitialize frontend with SvelteKit and TypeScript
- Delete old Vite+Svelte frontend
- Initialize new SvelteKit project with TypeScript
- Configure Tailwind CSS v4 + DaisyUI
- Implement JWT authentication with auto-refresh
- Create login page with form validation (Zod)
- Add protected route guards
- Update Docker configuration for single-stage build
- Add E2E tests with Playwright (6/11 passing)
- Fix Svelte 5 reactivity with $state() runes

Known issues:
- 5 E2E tests failing (timing/async issues)
- Token refresh implementation needs debugging
- Validation error display timing
2026-02-17 16:19:59 -05:00

19 lines
490 B
TypeScript

import { browser } from '$app/environment';
import { goto } from '$app/navigation';
import { getAccessToken } from '$lib/services/api';
import type { LayoutLoad } from './$types';
export const load: LayoutLoad = async () => {
// Check authentication on client side using localStorage (source of truth)
if (browser) {
const token = getAccessToken();
if (!token) {
goto('/login');
return { authenticated: false };
}
}
return { authenticated: true };
};