Updated today at 08:58

Commit: 91a309f Show on GitHub

  • Author: Alex Louwe
  • Date: 2/16/2026, 10:12:13 AM
  • Message: feat: implements Directus authentication. implements admin layout. Add server-side authentication system using Directus auth API with httpOnly cookie-based sessions. Implement complete admin portal with login/logout flows and redesigned UI matching brand guidelines. Authentication Infrastructure: - Add hooks.server.js for token validation and automatic refresh - Implement Directus auth integration (login, refresh, logout endpoints) - Use httpOnly cookies for secure token storage (access + refresh tokens) - Add route guards to protect admin routes Admin Portal: - Create /admin layout with custom sidebar design (AdConnect logo, nav, blobs) - Implement login page with form, icons, and bird mascot illustration - Add logout functionality with full page reload for state reset - Conditional sidebar: "Welkom Terug!" on login, nav links when authenticated - Responsive design with wider sidebar on login screen Route Restructuring: - Move all public routes to (public) route group for layout isolation - Strip root layout to minimal (favicon + stylesheet only) - Move header/footer to (public)/+layout.svelte - Admin routes isolated from public layout
  • Stats: 1728 total changes (+1252 / -476)

Changed Files

  • src/hooks.server.js — +43 / -0 (43 changes)
  • src/lib/server/directus.js — +1 / -0 (1 changes)
  • src/routes/(public)/+error.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/+layout.svelte — +350 / -0 (350 changes)
  • src/routes/(public)/+page.server.js — +0 / -0 (0 changes)
  • src/routes/(public)/+page.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/ad-dag/+page.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/contact/+page.server.js — +0 / -0 (0 changes)
  • src/routes/(public)/contact/+page.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/dev/hero/+page.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/nieuws/+page.server.js — +5 / -6 (11 changes)
  • src/routes/(public)/nieuws/+page.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/nieuws/[uuid]/+page.server.js — +0 / -0 (0 changes)
  • src/routes/(public)/nieuws/[uuid]/+page.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/over-ad/+page.server.js — +0 / -0 (0 changes)
  • src/routes/(public)/over-ad/+page.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/over-ad/[slug]/+page.server.js — +0 / -0 (0 changes)
  • src/routes/(public)/over-ad/[slug]/+page.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/over-ons/+page.server.js — +0 / -0 (0 changes)
  • src/routes/(public)/over-ons/+page.svelte — +157 / -0 (157 changes)
  • src/routes/(public)/publicaties/+page.server.js — +1 / -1 (2 changes)
  • src/routes/(public)/publicaties/+page.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/publicaties/[slug]/+page.server.js — +0 / -0 (0 changes)
  • src/routes/(public)/publicaties/[slug]/+page.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/studenten/+layout.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/studenten/+page.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/talent-award/+page.server.js — +0 / -0 (0 changes)
  • src/routes/(public)/talent-award/+page.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/talent-award/nominaties/+page.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/talent-award/nominaties/[id]/+page.server.js — +0 / -0 (0 changes)
  • src/routes/(public)/talent-award/nominaties/[id]/+page.svelte — +0 / -0 (0 changes)
  • src/routes/(public)/werkgevers/+page.svelte — +0 / -0 (0 changes)
  • src/routes/+layout.svelte — +1 / -325 (326 changes)
  • src/routes/admin/+layout.server.js — +8 / -0 (8 changes)
  • src/routes/admin/+layout.svelte — +267 / -0 (267 changes)
  • src/routes/admin/+page.svelte — +29 / -0 (29 changes)
  • src/routes/admin/login/+page.server.js — +32 / -0 (32 changes)
  • src/routes/admin/login/+page.svelte — +336 / -0 (336 changes)
  • src/routes/admin/logout/+page.server.js — +22 / -0 (22 changes)
  • src/routes/over-ons/+page.svelte — +0 / -144 (144 changes)