Files
crewli/apps/app/env.d.ts
bert.hausmans 31f5a7c4f0 fix(types): register OrganizerLayoutV2/PortalLayoutV2 in route-meta layout union
The vite-plugin-vue-meta-layouts layout name is a hand-maintained union
in env.d.ts (not auto-generated). Task 8 created OrganizerLayoutV2 and
Task 3's boot-proof page sets meta.layout: 'OrganizerLayoutV2', but the
union lacked the v2 entries so a typed definePage failed vue-tsc.
Registers both v2 layouts (PortalLayoutV2 added now to pre-empt the same
gap when portal v2 lands). Completes Task 8 (RFC-WS-GUI-REDESIGN AD-G2).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-16 11:47:47 +02:00

37 lines
1.1 KiB
TypeScript

import 'vue-router'
interface ImportMetaEnv {
readonly VITE_API_URL: string
readonly VITE_APP_NAME: string
readonly VITE_PORTAL_URL: string
// RFC-WS-7 §3.3 — empty DSN = SDK no-op. Production gets the crewli-app
// DSN from 1Password vault.
readonly VITE_SENTRY_DSN_FRONTEND?: string
// RFC-WS-7 §3.4 — `crewli-app@<short-sha>`, injected at build-time by
// deploy.sh. Optional during local dev.
readonly VITE_SENTRY_RELEASE?: string
}
interface ImportMeta {
readonly env: ImportMetaEnv
}
declare module 'vue-router' {
interface RouteMeta {
action?: string
subject?: string
layoutWrapperClasses?: string
navActiveLink?: RouteLocationRaw
layout?: 'blank' | 'default' | 'OrganizerLayout' | 'PortalLayout' | 'PublicLayout' | 'OrganizerLayoutV2' | 'PortalLayoutV2'
unauthenticatedOnly?: boolean
public?: boolean
// WS-3 PR-B1 — added for the consolidated SPA. PR-B2 evolves these.
requiresAuth?: boolean
context?: 'organizer' | 'portal'
requiresToken?: boolean
navMode?: 'event' | 'platform'
navTitle?: string
}
}