'use client'; import { useState } from 'react'; interface Props { pause: number; onPauseChange: (pause: number) => void; } export default function Einstellungen({ pause, onPauseChange }: Props) { const [raw, setRaw] = useState(String(pause).replace('.', ',')); const [saving, setSaving] = useState(false); const [status, setStatus] = useState<'idle' | 'ok' | 'error'>('idle'); async function handleSave(e: React.FormEvent) { e.preventDefault(); setSaving(true); setStatus('idle'); const value = parseFloat(raw.replace(',', '.')); try { const res = await fetch('/api/settings', { method: 'PUT', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ pause: value }), }); if (!res.ok) throw new Error(); const data = await res.json(); onPauseChange(data.pause); setRaw(String(data.pause).replace('.', ',')); setStatus('ok'); setTimeout(() => setStatus('idle'), 3000); } catch { setStatus('error'); } finally { setSaving(false); } } return (
setRaw(e.target.value)} className="w-32 px-3 py-2 border-2 border-gray-400 rounded-lg bg-white text-gray-900 text-sm focus:border-green-600 focus:outline-none" />

Wird in der Mehrarbeit-Berechnung abgezogen: Mehrarbeit = Arbeitszeit − 8 h − Pause.

{status === 'ok' && Gespeichert.} {status === 'error' && Fehler beim Speichern.}
); }