'use client' import React, { useState } from 'react' import { AssignmentOverview, ASSIGNMENT_STATUS_LABELS, apiFetch } from './types' import { FormLabel, FormInput, FormTextarea, PrimaryButton } from './ui-primitives' export function EinstellungenTab({ assignment, onUpdate, addToast, }: { assignment: AssignmentOverview onUpdate: () => void addToast: (msg: string, type?: 'success' | 'error') => void }) { const [status, setStatus] = useState(assignment.status) const [budget, setBudget] = useState(String(assignment.monthly_hours_budget)) const [notes, setNotes] = useState(assignment.notes || '') const [contractStart, setContractStart] = useState(assignment.contract_start?.slice(0, 10) || '') const [contractEnd, setContractEnd] = useState(assignment.contract_end?.slice(0, 10) || '') const [saving, setSaving] = useState(false) const handleSave = async () => { setSaving(true) try { await apiFetch(`/api/sdk/v1/dsb/assignments/${assignment.id}`, { method: 'PUT', body: JSON.stringify({ status, monthly_hours_budget: parseFloat(budget) || 0, notes, contract_start: contractStart || null, contract_end: contractEnd || null, }), }) addToast('Einstellungen gespeichert') onUpdate() } catch (e: unknown) { addToast(e instanceof Error ? e.message : 'Fehler beim Speichern', 'error') } finally { setSaving(false) } } return (
{/* Status */}

Status

{(['active', 'paused', 'terminated'] as const).map((s) => ( ))}
{/* Contract period */}

Vertragszeitraum

Vertragsbeginn
Vertragsende
{/* Budget */}

Monatliches Stundenbudget

Stunden pro Monat

{/* Notes */}

Anmerkungen

{/* Save */}
{saving ? 'Speichere...' : 'Einstellungen speichern'}
) }