'use client' import { useState, useTransition } from 'react' import { assignmentText } from '@/lib/i18n/people' import { participantText } from '@/lib/i18n/cases' import { ASSIGNMENT_ROLES } from '@/lib/personnel/terms' import { AddPanel, PanelSelect } from '@/components/AddPanel' import { addAssignmentAction, removeAssignmentAction } from '../actions' type Zuordnung = { id: string role: string user: { id: string; displayName: string } } /** * Mitglieder der Abteilung, die an dieser Personalakte hängen. * * Wie die Beteiligten einer Fallakte ist das zugleich der Weg zum * ausnahmsweisen Zugang — der Hinweis steht deshalb direkt am Formular. */ export function Assignments({ personnelFileId, assignments, members, canEdit, }: { personnelFileId: string assignments: Zuordnung[] members: { id: string; displayName: string }[] canEdit: boolean }) { const [role, setRole] = useState('HANDLER') const [userId, setUserId] = useState('') const [fehler, setFehler] = useState(null) const [pending, startTransition] = useTransition() return (
{assignments.length === 0 ? (

{assignmentText.empty}

) : (
    {assignments.map((zuordnung) => (
  • {assignmentText.roles[zuordnung.role] ?? zuordnung.role} {zuordnung.user.displayName} {canEdit ? ( ) : null}
  • ))}
)} {fehler ?

{fehler}

: null} {canEdit ? ( { const ergebnis = await addAssignmentAction({ personnelFileId, userId, role }) if (ergebnis.ok) setUserId('') return ergebnis }} > {ASSIGNMENT_ROLES.map((value) => ( ))} {members.map((member) => ( ))} ) : null}
) }