From 5769d2e6533bce1782e4b1b440f29d864a6185e6 Mon Sep 17 00:00:00 2001
From: TO
Date: Sat, 6 Dec 2025 22:52:20 +0100
Subject: [PATCH] remove loading for each change in "form"
---
src/app/components/calendar-year/calendar-year.ts | 8 +++++---
src/app/components/user-input/user-input.ts | 3 +--
src/app/services/user-input-service.ts | 5 +++++
3 files changed, 11 insertions(+), 5 deletions(-)
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);
+ }
}