From 6822a87b84f3c7ca569956f29c0f6940cf8c3711 Mon Sep 17 00:00:00 2001 From: Idan Atias Date: Sun, 30 Nov 2025 22:48:32 +0200 Subject: [PATCH] feat: answer:39 injection token --- apps/angular/39-injection-token/src/app/data.ts | 4 +++- apps/angular/39-injection-token/src/app/phone.component.ts | 2 ++ .../39-injection-token/src/app/timer-container.component.ts | 4 ++-- apps/angular/39-injection-token/src/app/timer.component.ts | 5 +++-- apps/angular/39-injection-token/src/app/video.component.ts | 2 ++ 5 files changed, 12 insertions(+), 5 deletions(-) diff --git a/apps/angular/39-injection-token/src/app/data.ts b/apps/angular/39-injection-token/src/app/data.ts index 393edd0fa..6dd5015f4 100644 --- a/apps/angular/39-injection-token/src/app/data.ts +++ b/apps/angular/39-injection-token/src/app/data.ts @@ -1 +1,3 @@ -export const DEFAULT_TIMER = 1000; +import { InjectionToken } from '@angular/core'; + +export const DEFAULT_TIMER = new InjectionToken('timer'); diff --git a/apps/angular/39-injection-token/src/app/phone.component.ts b/apps/angular/39-injection-token/src/app/phone.component.ts index 41ee3cfc0..cb03f2dd8 100644 --- a/apps/angular/39-injection-token/src/app/phone.component.ts +++ b/apps/angular/39-injection-token/src/app/phone.component.ts @@ -1,9 +1,11 @@ import { Component } from '@angular/core'; +import { DEFAULT_TIMER } from './data'; import { TimerContainerComponent } from './timer-container.component'; @Component({ selector: 'app-phone', imports: [TimerContainerComponent], + providers: [{ provide: DEFAULT_TIMER, useValue: 2000 }], template: `
Phone Call Timer: diff --git a/apps/angular/39-injection-token/src/app/timer-container.component.ts b/apps/angular/39-injection-token/src/app/timer-container.component.ts index 67db6059a..e812f0b08 100644 --- a/apps/angular/39-injection-token/src/app/timer-container.component.ts +++ b/apps/angular/39-injection-token/src/app/timer-container.component.ts @@ -1,4 +1,4 @@ -import { Component } from '@angular/core'; +import { Component, inject } from '@angular/core'; import { DEFAULT_TIMER } from './data'; import { TimerComponent } from './timer.component'; @Component({ @@ -16,5 +16,5 @@ import { TimerComponent } from './timer.component'; }, }) export class TimerContainerComponent { - timer = DEFAULT_TIMER; + timer = inject(DEFAULT_TIMER); } diff --git a/apps/angular/39-injection-token/src/app/timer.component.ts b/apps/angular/39-injection-token/src/app/timer.component.ts index 335a077bf..91a514b75 100644 --- a/apps/angular/39-injection-token/src/app/timer.component.ts +++ b/apps/angular/39-injection-token/src/app/timer.component.ts @@ -1,4 +1,4 @@ -import { Component } from '@angular/core'; +import { Component, inject } from '@angular/core'; import { toSignal } from '@angular/core/rxjs-interop'; import { interval } from 'rxjs'; import { DEFAULT_TIMER } from './data'; @@ -10,5 +10,6 @@ import { DEFAULT_TIMER } from './data'; `, }) export class TimerComponent { - timer = toSignal(interval(DEFAULT_TIMER)); + defaultTimer = inject(DEFAULT_TIMER); + timer = toSignal(interval(this.defaultTimer)); } diff --git a/apps/angular/39-injection-token/src/app/video.component.ts b/apps/angular/39-injection-token/src/app/video.component.ts index ba0a218b4..f72521609 100644 --- a/apps/angular/39-injection-token/src/app/video.component.ts +++ b/apps/angular/39-injection-token/src/app/video.component.ts @@ -1,9 +1,11 @@ import { Component } from '@angular/core'; +import { DEFAULT_TIMER } from './data'; import { TimerContainerComponent } from './timer-container.component'; @Component({ selector: 'app-video', imports: [TimerContainerComponent], + providers: [{ provide: DEFAULT_TIMER, useValue: 1000 }], template: `
Video Call Timer: