import { EmptyState } from './ui' import { needsTimeEntry, isGitWorksheet } from '../lib/ticketForm' import { parseSupporters } from '../lib/support' import { showAboToggle, statusAfterLabel, supportLines, timeLabel, worksheetBadge, worksheetKindLabel, worksheetWhen, } from '../lib/worksheetView' // Arbeitsblaetter, neueste zuerst wie geliefert: links Datum und Beginn, in der Mitte Person, Art, Text und Aktionen, rechts die Zeit export default function WorksheetList({ worksheets, loading, onTogglePlan, aboHoursAllowed = true, canEditTimes, onEditTimes, canAddSupport, onOwnSupport, currentUserId, }) { if (loading) return
Wird geladen …
if (!worksheets || worksheets.length === 0) { return } return (
{worksheets.map((ws) => { const when = worksheetWhen(ws) const kind = worksheetKindLabel(ws) const badge = worksheetBadge(ws) const lines = supportLines(ws) const status = statusAfterLabel(ws) const time = timeLabel(ws) const canEdit = Boolean(onEditTimes && canEditTimes?.(ws)) const canSupport = Boolean(onOwnSupport && canAddSupport?.(ws)) const ownSupport = parseSupporters(ws.supporters).some((s) => s.employeeId === currentUserId) const showAbo = Boolean(onTogglePlan && showAboToggle(ws, aboHoursAllowed)) const isNote = ws.isComment && !isGitWorksheet(ws) return (
{when.date || '–'}
{when.time &&
{when.time}
}
{ws.employeeName} {ws.employeeShort && {ws.employeeShort}} {kind && {kind}} WSID {ws.wsid} {badge && {badge.text}} {showAbo ? ( ) : ( ws.countsToPlan && !ws.isComment && Abo )}
{ws.details &&
{ws.details}
} {lines.map((line, i) => (
{line}
))} {status &&
{status}
} {(canEdit || canSupport) && (
{canEdit && ( )} {canSupport && ( )}
)}
{time &&
{time}
}
) })}
) }