From 0cbb8f1116802b3df869967c57690bdebe50723b Mon Sep 17 00:00:00 2001 From: Kenrick Tandrian <60643640+KenTandrian@users.noreply.github.com> Date: Fri, 3 Jul 2026 01:24:48 +0700 Subject: [PATCH] Task/improve type safety in rule settings dialog component (#7185) * fix(client): resolve type errors * feat(client): enforce encapsulation * feat(client): enforce immutability * feat(client): replace constructor based DI with inject functions --- .../rule-settings-dialog.component.ts | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.component.ts b/apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.component.ts index 74cc80f26..4b2a9b0e6 100644 --- a/apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.component.ts +++ b/apps/client/src/app/components/rule/rule-settings-dialog/rule-settings-dialog.component.ts @@ -1,6 +1,6 @@ import { GfValueComponent } from '@ghostfolio/ui/value'; -import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'; +import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; import { FormBuilder, FormGroup, ReactiveFormsModule } from '@angular/forms'; import { MatButtonModule } from '@angular/material/button'; import { @@ -26,20 +26,21 @@ import { RuleSettingsDialogParams } from './interfaces/interfaces'; templateUrl: './rule-settings-dialog.html' }) export class GfRuleSettingsDialogComponent { - public settingsForm: FormGroup; + protected readonly settingsForm: FormGroup; - public constructor( - @Inject(MAT_DIALOG_DATA) public data: RuleSettingsDialogParams, - public dialogRef: MatDialogRef, - private formBuilder: FormBuilder - ) { + protected readonly data = inject(MAT_DIALOG_DATA); + protected readonly dialogRef = + inject>(MatDialogRef); + private readonly formBuilder = inject(FormBuilder); + + public constructor() { this.settingsForm = this.formBuilder.group({ - thresholdMax: [this.data.settings.thresholdMax], - thresholdMin: [this.data.settings.thresholdMin] + thresholdMax: [this.data.settings?.thresholdMax], + thresholdMin: [this.data.settings?.thresholdMin] }); } - public onSubmit() { + protected onSubmit() { this.dialogRef.close({ ...this.data.settings, thresholdMax: this.settingsForm.get('thresholdMax')?.value,