feat: platform admin frontend — pages, composables, navigation, impersonation

Build the frontend for platform admin in apps/app/:
- TypeScript types (admin.ts) and API composable (useAdmin.ts) with
  TanStack Query for all admin endpoints
- ImpersonationStore (Pinia) + ImpersonationBanner component integrated
  in the main layout, with token-based session management
- Platform navigation section (conditionally shown for super_admin users)
- Route guard blocking /platform/* for non-super_admin users
- 6 pages: dashboard with stats cards, organisations list/detail,
  users list/detail with impersonation, activity log with expandable rows
- All pages implement loading/error/empty states per conventions
- Vite build passes cleanly

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-04-14 23:49:36 +02:00
parent 07ba791405
commit 9e7f28420c
15 changed files with 2262 additions and 2 deletions

View File

@@ -1,4 +1,4 @@
export default [
export const orgNavItems = [
{
title: 'Dashboard',
to: { name: 'dashboard' },
@@ -35,3 +35,31 @@ export default [
icon: { icon: 'tabler-settings' },
},
]
export const platformNavItems = [
{
heading: 'Platform',
},
{
title: 'Platform Dashboard',
to: { name: 'platform' },
icon: { icon: 'tabler-chart-dots-3' },
},
{
title: 'Organisaties',
to: { name: 'platform-organisations' },
icon: { icon: 'tabler-buildings' },
},
{
title: 'Gebruikers',
to: { name: 'platform-users' },
icon: { icon: 'tabler-users-group' },
},
{
title: 'Activity Log',
to: { name: 'platform-activity-log' },
icon: { icon: 'tabler-list-details' },
},
]
export default orgNavItems