feat: enhance loading spinner with progress indication and add warnin… #127

Merged
admin-backup merged 6 commits from THoguet/issue16 into main 2025-11-18 00:45:05 +01:00
Showing only changes of commit 54c2160f0d - Show all commits
@@ -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);
})();
});
});
}