import { useState } from 'react'; import { Card, CardContent, CardDescription, CardHeader, CardTitle } from '@/components/ui/card'; import { Button } from '@/components/ui/button'; import { Save } from 'lucide-react'; import { DashboardNote } from './DashboardNote'; import { RoleDashboardSection } from './RoleDashboardSection'; import { toast } from 'sonner'; export type Role = 'Initiator' | 'Approver' | 'Spectator'; export type KPICard = | 'Total Requests' | 'Open Requests' | 'Approved Requests' | 'Rejected Requests' | 'My Pending Actions' | 'TAT Compliance' | 'Delayed Workflows' | 'Average Cycle Time'; interface DashboardConfigData { [key: string]: { [kpi: string]: boolean; }; } export function DashboardConfig() { const [config, setConfig] = useState({ Initiator: { 'Total Requests': true, 'Open Requests': true, 'Approved Requests': true, 'Rejected Requests': true, 'My Pending Actions': true, 'TAT Compliance': true, 'Delayed Workflows': true, 'Average Cycle Time': true }, Approver: { 'Total Requests': true, 'Open Requests': true, 'Approved Requests': true, 'Rejected Requests': true, 'My Pending Actions': true, 'TAT Compliance': true, 'Delayed Workflows': true, 'Average Cycle Time': true }, Spectator: { 'Total Requests': true, 'Open Requests': true, 'Approved Requests': true, 'Rejected Requests': true, 'My Pending Actions': true, 'TAT Compliance': true, 'Delayed Workflows': true, 'Average Cycle Time': true } }); const handleSave = () => { // TODO: Implement API call to save dashboard configuration toast.success('Dashboard layout saved successfully'); }; const handleKPIToggle = (role: Role, kpi: KPICard, checked: boolean) => { setConfig(prev => ({ ...prev, [role]: { ...prev[role], [kpi]: checked } })); }; const roles: Role[] = ['Initiator', 'Approver', 'Spectator']; return ( Dashboard Layout Configuration Control which KPI cards are visible for each user role
{roles.map((role) => ( handleKPIToggle(role, kpi, checked)} /> ))}
); }