'use client'; import { useState } from 'react'; type ForwardFormat = 'THREADED' | 'DIGEST' | 'SUMMARY'; type ForwardFrequency = 'INSTANT' | 'FIVE_MIN' | 'FIFTEEN_MIN' | 'ONE_HOUR' | 'ONE_DAY' | 'SEVEN_DAYS'; type ApprovalMode = 'MANUAL' | 'AUTO'; interface Route { id: string; forwardFormat: ForwardFormat; withAttachment: boolean; frequency: ForwardFrequency; approvalMode: ApprovalMode; isActive: boolean; } const FORMAT_OPTIONS: { value: ForwardFormat; label: string }[] = [ { value: 'THREADED', label: 'Threaded' }, { value: 'DIGEST', label: 'Digest' }, { value: 'SUMMARY', label: 'Summary' }, ]; const FREQ_OPTIONS: { value: ForwardFrequency; label: string }[] = [ { value: 'INSTANT', label: 'Instant' }, { value: 'FIVE_MIN', label: '5 min' }, { value: 'FIFTEEN_MIN', label: '15 min' }, { value: 'ONE_HOUR', label: '1 hour' }, { value: 'ONE_DAY', label: '1 day' }, { value: 'SEVEN_DAYS', label: '7 days' }, ]; export function RouteSettingsDialog({ route, onSaved, onClose, }: { route: Route; onSaved: (updated: Partial) => void; onClose: () => void; }) { const [forwardFormat, setForwardFormat] = useState(route.forwardFormat); const [withAttachment, setWithAttachment] = useState(route.withAttachment); const [frequency, setFrequency] = useState(route.frequency); const [approvalMode, setApprovalMode] = useState(route.approvalMode); const [busy, setBusy] = useState(false); const [error, setError] = useState(''); async function save() { setBusy(true); setError(''); try { const res = await fetch(`/api/routes/${route.id}`, { method: 'PATCH', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ forwardFormat, withAttachment, frequency, approvalMode }), }); if (!res.ok) { const err = await res.json().catch(() => ({})); setError(err.message ?? 'Failed to save'); return; } onSaved({ forwardFormat, withAttachment, frequency, approvalMode }); onClose(); } finally { setBusy(false); } } return (

Route settings

{(['MANUAL', 'AUTO'] as ApprovalMode[]).map((m) => ( ))}
{error &&

{error}

}
); }