Fix setTimeout async anti-pattern in calendar-year component #128

Merged
admin-backup merged 2 commits from copilot/sub-pr-49 into THoguet/issue16 2025-11-18 00:26:19 +01:00
@@ -41,8 +41,9 @@ export class CalendarYear {
console.log('Optimizing vacations with data:', vacationData); console.log('Optimizing vacations with data:', vacationData);
this.isLoading.set(true); this.isLoading.set(true);
this.loadingProgress.set(0); this.loadingProgress.set(0);
// Simulate server-side calculation with a small delay // Defer execution to allow UI to update
setTimeout(async () => { queueMicrotask(() => {
void (async () => {
if (this.selectedDates) { if (this.selectedDates) {
// Create a copy to avoid mutating the original signal data // Create a copy to avoid mutating the original signal data
const remainingDays = await this.selectedDates.optimizeVacations( const remainingDays = await this.selectedDates.optimizeVacations(
@@ -57,7 +58,8 @@ export class CalendarYear {
this.userInput.remainingVacationDaysSignal.set(remainingDays); this.userInput.remainingVacationDaysSignal.set(remainingDays);
} }
this.isLoading.set(false); this.isLoading.set(false);
}, 1); })();
});
}); });
} }