feat(i18n): add internationalization support with English and Spanish translations
CI / Lint, typecheck, test, build (push) Canceled after 0s
CI / End-to-end tests (push) Canceled after 0s

feat(kiosk): implement kiosk report submission functionality with offline support

test(outbox): add tests for outbox functionality including report submission and error handling

feat(outbox): create outbox management for queued reports with IndexedDB persistence

feat(uuid): add UUID generation utility for client IDs

feat(qr): implement QR code generation for reporting links by site and area

feat(kiosk): create Kiosk page for reporting incidents without an account
This commit is contained in:
jayjennings committed 2026-10-06 11:38:40 -07:00
1 parent 3f6dff5f24
commit 3e964d1176
64 files changed
+10056 -267

No files matched your search

+9 -6
View File
@@ -1,17 +1,19 @@
import { BarChart3, ClipboardCheck, ClipboardList, LayoutDashboard, MapPin, type LucideIcon } from 'lucide-react'
import type { Messages } from '../i18n/en'
export interface NavItem {
label: string
label: keyof Messages['nav']
to: string
icon: LucideIcon
}
export const primaryNav: NavItem[] = [
{ label: 'Overview', to: '/', icon: LayoutDashboard },
{ label: 'Incidents', to: '/incidents', icon: ClipboardList },
{ label: 'My actions', to: '/actions', icon: ClipboardCheck },
{ label: 'Locations', to: '/locations', icon: MapPin },
{ label: 'Analytics', to: '/analytics', icon: BarChart3 },
{ label: 'overview', to: '/', icon: LayoutDashboard },
{ label: 'incidents', to: '/incidents', icon: ClipboardList },
{ label: 'myActions', to: '/actions', icon: ClipboardCheck },
{ label: 'locations', to: '/locations', icon: MapPin },
{ label: 'analytics', to: '/analytics', icon: BarChart3 },
]
export function pageTitle(pathname: string): string {
@@ -24,6 +26,7 @@ export function pageTitle(pathname: string): string {
'/locations': 'Locations',
'/analytics': 'Analytics',
'/report': 'Report an incident',
'/locations/qr': 'QR codes',
'/settings': 'Settings',
'/about': 'About',
}