diff --git a/src/app/components/calendar-year/calendar-year.ts b/src/app/components/calendar-year/calendar-year.ts index 06a5b72..16506ef 100644 --- a/src/app/components/calendar-year/calendar-year.ts +++ b/src/app/components/calendar-year/calendar-year.ts @@ -1,4 +1,4 @@ -import { Component, effect, signal, inject } from '@angular/core'; +import { Component, effect, signal, inject, untracked } from '@angular/core'; import { UserInputService } from '../../services/user-input-service'; import { MatCard, MatCardContent } from '@angular/material/card'; import { CalendarMonth } from '../calendar-month/calendar-month'; @@ -34,9 +34,11 @@ export class CalendarYear { constructor() { effect(() => { + this.userInput.computeTriggerSignal(); + this.selectedDates = this.calendarService.getSelectedDatesForYear(); - const vacationData = this.userInput.vacationNumberSignal(); - const c = this.calendarSettingsService.get('samediMalin')(); + const vacationData = untracked(() => this.userInput.vacationNumberSignal()); + const c = untracked(() => this.calendarSettingsService.get('samediMalin')()); console.log('Samedi Malin setting:', c); console.log('Optimizing vacations with data:', vacationData); this.isLoading.set(true); diff --git a/src/app/components/user-input/user-input.ts b/src/app/components/user-input/user-input.ts index c3c72fc..6ac8f31 100644 --- a/src/app/components/user-input/user-input.ts +++ b/src/app/components/user-input/user-input.ts @@ -72,7 +72,6 @@ export class UserInput { } public triggerComputation() { - // Trigger signal update by setting a new array reference - this.userInputService.vacationNumberSignal.update((days) => [...days]); + this.userInputService.requestComputation(); } } diff --git a/src/app/services/user-input-service.ts b/src/app/services/user-input-service.ts index be0a240..225c0c4 100644 --- a/src/app/services/user-input-service.ts +++ b/src/app/services/user-input-service.ts @@ -44,4 +44,9 @@ export class UserInputService { readonly vacationNumberSignal = signal(this.getInitialValues()); readonly remainingVacationDaysSignal = signal([]); + readonly computeTriggerSignal = signal(0); + + public requestComputation(): void { + this.computeTriggerSignal.update((count) => count + 1); + } }