'use client' import { useState, useTransition } from 'react' import { toast } from 'sonner' import { Button } from '@/components/ui/button' import { DemoTooltip } from '@/components/shared/demo-tooltip' import { updateRolesAction } from '@/actions/settings' import { debugProps } from '@/lib/debug' const ALL_ROLES = [ { value: 'PRODUCT_OWNER', label: 'Product Owner' }, { value: 'SCRUM_MASTER', label: 'Scrum Master' }, { value: 'DEVELOPER', label: 'Developer' }, ] interface RoleManagerProps { currentRoles: string[] isDemo: boolean } export function RoleManager({ currentRoles, isDemo }: RoleManagerProps) { const [selected, setSelected] = useState>(new Set(currentRoles)) const [error, setError] = useState(null) const [saved, setSaved] = useState(false) const [, startTransition] = useTransition() function toggle(role: string) { setSelected(prev => { const next = new Set(prev) if (next.has(role)) { next.delete(role) } else { next.add(role) } return next }) setSaved(false) setError(null) } function handleSave() { if (selected.size === 0) { setError('Minimaal één rol is verplicht') return } startTransition(async () => { const result = await updateRolesAction([...selected]) if (result.success) { setSaved(true); toast.success('Rollen opgeslagen') } else { setError(result.error ?? 'Opslaan mislukt'); toast.error(result.error ?? 'Opslaan mislukt') } }) } return (

Mijn rollen

{ALL_ROLES.map(role => ( ))}
{error &&

{error}

} {saved &&

Rollen opgeslagen.

}
) }