feat: auto-calculate deadlines on proceeding type selection (no click needed)

This commit is contained in:
m
2026-03-30 19:41:02 +02:00
parent 501b573967
commit 260f65ea02

View File

@@ -51,13 +51,28 @@ export function DeadlineCalculator() {
}) => api.post<CalculateResponse>("/deadlines/calculate", params), }) => api.post<CalculateResponse>("/deadlines/calculate", params),
}); });
// Auto-calculate when proceeding type changes (using current trigger date)
function doCalculate(type: string, date: string) {
if (!type || !date) return;
calculateMutation.mutate({
proceeding_type: type,
trigger_event_date: date,
});
}
function handleProceedingChange(newType: string) {
setProceedingType(newType);
doCalculate(newType, triggerDate);
}
function handleDateChange(newDate: string) {
setTriggerDate(newDate);
if (proceedingType) doCalculate(proceedingType, newDate);
}
function handleCalculate(e: React.FormEvent) { function handleCalculate(e: React.FormEvent) {
e.preventDefault(); e.preventDefault();
if (!proceedingType || !triggerDate) return; doCalculate(proceedingType, triggerDate);
calculateMutation.mutate({
proceeding_type: proceedingType,
trigger_event_date: triggerDate,
});
} }
const results = calculateMutation.data; const results = calculateMutation.data;
@@ -80,7 +95,7 @@ export function DeadlineCalculator() {
</label> </label>
<select <select
value={proceedingType} value={proceedingType}
onChange={(e) => setProceedingType(e.target.value)} onChange={(e) => handleProceedingChange(e.target.value)}
disabled={typesLoading} disabled={typesLoading}
className={inputClass} className={inputClass}
> >
@@ -131,7 +146,7 @@ export function DeadlineCalculator() {
<input <input
type="date" type="date"
value={triggerDate} value={triggerDate}
onChange={(e) => setTriggerDate(e.target.value)} onChange={(e) => handleDateChange(e.target.value)}
className={inputClass} className={inputClass}
/> />
</div> </div>