feat: auto-calculate deadlines on proceeding type selection (no click needed)
This commit is contained in:
@@ -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>
|
||||||
|
|||||||
Reference in New Issue
Block a user