- 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
38 lines
992 B
JavaScript
38 lines
992 B
JavaScript
import { i as derived, w as writable } from "./exports.js";
|
|
function createUserStore() {
|
|
const { subscribe, set, update } = writable(null);
|
|
return {
|
|
subscribe,
|
|
set,
|
|
update,
|
|
clear: () => set(null)
|
|
};
|
|
}
|
|
const user = createUserStore();
|
|
function createAuthStore() {
|
|
const { subscribe, set, update } = writable({
|
|
isAuthenticated: false,
|
|
isLoading: false,
|
|
error: null
|
|
});
|
|
return {
|
|
subscribe,
|
|
set,
|
|
update,
|
|
setLoading: (loading) => update((state) => ({ ...state, isLoading: loading })),
|
|
setError: (error) => update((state) => ({ ...state, error })),
|
|
clearError: () => update((state) => ({ ...state, error: null })),
|
|
setAuthenticated: (authenticated) => update((state) => ({ ...state, isAuthenticated: authenticated }))
|
|
};
|
|
}
|
|
const auth = createAuthStore();
|
|
derived(
|
|
[user, auth],
|
|
([$user, $auth]) => $user !== null && $auth.isAuthenticated
|
|
);
|
|
derived(user, ($user) => $user?.role || null);
|
|
export {
|
|
auth as a,
|
|
user as u
|
|
};
|