diff --git a/src/app/components/calendar-year/calendar-year.ts b/src/app/components/calendar-year/calendar-year.ts index 2923d38..4f7829c 100644 --- a/src/app/components/calendar-year/calendar-year.ts +++ b/src/app/components/calendar-year/calendar-year.ts @@ -41,23 +41,25 @@ export class CalendarYear { console.log('Optimizing vacations with data:', vacationData); this.isLoading.set(true); this.loadingProgress.set(0); - // Simulate server-side calculation with a small delay - setTimeout(async () => { - if (this.selectedDates) { - // Create a copy to avoid mutating the original signal data - const remainingDays = await this.selectedDates.optimizeVacations( - { ...vacationData }, - this.calendarSettingsService, - this.calendarService, - (progress: number) => { - this.loadingProgress.set(progress); - }, - ); - // Update the remaining vacation days signal - this.userInput.remainingVacationDaysSignal.set(remainingDays); - } - this.isLoading.set(false); - }, 1); + // Defer execution to allow UI to update + queueMicrotask(() => { + void (async () => { + if (this.selectedDates) { + // Create a copy to avoid mutating the original signal data + const remainingDays = await this.selectedDates.optimizeVacations( + { ...vacationData }, + this.calendarSettingsService, + this.calendarService, + (progress: number) => { + this.loadingProgress.set(progress); + }, + ); + // Update the remaining vacation days signal + this.userInput.remainingVacationDaysSignal.set(remainingDays); + } + this.isLoading.set(false); + })(); + }); }); }