feat: implement permissions and actions management
CI / Lint, typecheck, test, build (push) Canceled after 0s
CI / End-to-end tests (push) Canceled after 0s

- Add permissions logic for status options in corrective actions.
- Create tests for permissions functionality.
- Implement queries for user authentication and actions management.
- Develop Actions page to display and manage corrective actions.
- Create authentication pages for login, setup, and password reset.
- Add IncidentDetail page to view incident details and associated actions.
- Implement Settings page for user management and password changes.
This commit is contained in:
jayjennings committed 2026-10-06 11:20:44 -07:00
1 parent 708da6b9f7
commit 3f6dff5f24
94 files changed
+7213 -643

No files matched your search

+16 -8
View File
@@ -1,4 +1,4 @@
import { BarChart3, ClipboardList, LayoutDashboard, MapPin, type LucideIcon } from 'lucide-react'
import { BarChart3, ClipboardCheck, ClipboardList, LayoutDashboard, MapPin, type LucideIcon } from 'lucide-react'
export interface NavItem {
label: string
@@ -9,15 +9,23 @@ export interface NavItem {
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 },
]
export const pageTitles: Record<string, string> = {
'/': 'Overview',
'/incidents': 'Incidents',
'/locations': 'Locations',
'/analytics': 'Analytics',
'/report': 'Report an incident',
'/about': 'About',
export function pageTitle(pathname: string): string {
const incident = /^\/incidents\/(\d+)/.exec(pathname)
if (incident) return `INC-${incident[1].padStart(4, '0')}`
const titles: Record<string, string> = {
'/': 'Overview',
'/incidents': 'Incidents',
'/actions': 'My actions',
'/locations': 'Locations',
'/analytics': 'Analytics',
'/report': 'Report an incident',
'/settings': 'Settings',
'/about': 'About',
}
return titles[pathname] ?? 'Not found'
}