From f6a6eae4b2bc0c9ff810f7bd44fd18418868fb8e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Yusuf=20=C3=87=C4=B1rak?= Date: Thu, 21 Mar 2024 08:27:59 +0300 Subject: [PATCH] Refactor dependency injection in component constructors --- .../personal-settings.component.ts | 27 +++++++++---------- .../feature-management.component.ts | 14 +++++----- .../lib/components/roles/roles.component.ts | 16 +++++------ .../lib/components/users/users.component.ts | 17 ++++++------ .../permission-management.component.ts | 11 ++++---- .../components/tenants/tenants.component.ts | 18 ++++++------- .../create-error-component.service.ts | 2 +- 7 files changed, 48 insertions(+), 57 deletions(-) diff --git a/npm/ng-packs/packages/account/src/lib/components/personal-settings/personal-settings.component.ts b/npm/ng-packs/packages/account/src/lib/components/personal-settings/personal-settings.component.ts index 2742e81918..8a3a63d376 100644 --- a/npm/ng-packs/packages/account/src/lib/components/personal-settings/personal-settings.component.ts +++ b/npm/ng-packs/packages/account/src/lib/components/personal-settings/personal-settings.component.ts @@ -1,6 +1,6 @@ import { ProfileDto, ProfileService } from '@abp/ng.account.core/proxy'; import { Confirmation, ConfirmationService, ToasterService } from '@abp/ng.theme.shared'; -import { Component, Inject, Injector, OnInit } from '@angular/core'; +import { Component, inject, Injector, OnInit } from '@angular/core'; import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { finalize, filter } from 'rxjs/operators'; import { Account } from '../../models/account'; @@ -31,25 +31,24 @@ export class PersonalSettingsComponent Account.PersonalSettingsComponentInputs, Account.PersonalSettingsComponentOutputs { + private readonly fb = inject(UntypedFormBuilder); + protected readonly toasterService = inject(ToasterService); + protected readonly profileService = inject(ProfileService); + protected readonly manageProfileState = inject(ManageProfileStateService); + protected readonly authService = inject(AuthService); + protected readonly confirmationService = inject(ConfirmationService); + protected readonly configState = inject(ConfigStateService); + protected readonly isPersonalSettingsChangedConfirmationActive = inject( + RE_LOGIN_CONFIRMATION_TOKEN, + ); + private readonly injector = inject(Injector); + selected?: ProfileDto; form!: UntypedFormGroup; inProgress?: boolean; - constructor( - private fb: UntypedFormBuilder, - private toasterService: ToasterService, - private profileService: ProfileService, - private manageProfileState: ManageProfileStateService, - private readonly authService: AuthService, - private confirmationService: ConfirmationService, - private configState: ConfigStateService, - @Inject(RE_LOGIN_CONFIRMATION_TOKEN) - private isPersonalSettingsChangedConfirmationActive: boolean, - protected injector: Injector, - ) {} - buildForm() { this.selected = this.manageProfileState.getProfile(); if (!this.selected) { diff --git a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts index 07d01c0099..4869576ae3 100644 --- a/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts +++ b/npm/ng-packs/packages/feature-management/src/lib/components/feature-management/feature-management.component.ts @@ -31,6 +31,12 @@ export class FeatureManagementComponent FeatureManagement.FeatureManagementComponentInputs, FeatureManagement.FeatureManagementComponentOutputs { + protected readonly trackByService = inject(TrackByService); + protected readonly toasterService = inject(ToasterService); + protected readonly service = inject(FeaturesService); + protected readonly configState = inject(ConfigStateService); + protected readonly confirmationService = inject(ConfirmationService); + @Input() providerKey: string; @@ -72,14 +78,6 @@ export class FeatureManagementComponent modalBusy = false; - constructor( - public readonly track: TrackByService, - private toasterService: ToasterService, - protected service: FeaturesService, - protected configState: ConfigStateService, - protected confirmationService: ConfirmationService, - ) {} - openModal() { if (!this.providerName) { throw new Error('providerName is required.'); diff --git a/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts b/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts index 00e828a279..794b545fcd 100644 --- a/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts +++ b/npm/ng-packs/packages/identity/src/lib/components/roles/roles.component.ts @@ -7,7 +7,7 @@ import { FormPropData, generateFormFromProps, } from '@abp/ng.components/extensible'; -import { Component, Injector, OnInit } from '@angular/core'; +import { Component, inject, Injector, OnInit } from '@angular/core'; import { UntypedFormGroup } from '@angular/forms'; import { finalize } from 'rxjs/operators'; import { eIdentityComponents } from '../../enums/components'; @@ -24,6 +24,12 @@ import { eIdentityComponents } from '../../enums/components'; ], }) export class RolesComponent implements OnInit { + protected readonly list = inject(ListService); + protected readonly confirmationService = inject(ConfirmationService); + protected readonly toasterService = inject(ToasterService); + private readonly injector = inject(Injector); + protected readonly service = inject(IdentityRoleService); + data: PagedResultDto = { items: [], totalCount: 0 }; form!: UntypedFormGroup; @@ -44,14 +50,6 @@ export class RolesComponent implements OnInit { this.visiblePermissions = event; }; - constructor( - public readonly list: ListService, - protected confirmationService: ConfirmationService, - private toasterService: ToasterService, - protected injector: Injector, - protected service: IdentityRoleService, - ) {} - ngOnInit() { this.hookToQuery(); } diff --git a/npm/ng-packs/packages/identity/src/lib/components/users/users.component.ts b/npm/ng-packs/packages/identity/src/lib/components/users/users.component.ts index 95ef1f3417..a0f0e08e4b 100644 --- a/npm/ng-packs/packages/identity/src/lib/components/users/users.component.ts +++ b/npm/ng-packs/packages/identity/src/lib/components/users/users.component.ts @@ -19,6 +19,7 @@ import { } from '@abp/ng.components/extensible'; import { Component, + inject, Injector, OnInit, TemplateRef, @@ -46,6 +47,13 @@ import { eIdentityComponents } from '../../enums/components'; ], }) export class UsersComponent implements OnInit { + protected readonly list = inject(ListService); + protected readonly confirmationService = inject(ConfirmationService); + protected readonly service = inject(IdentityUserService); + protected readonly toasterService = inject(ToasterService); + private readonly fb = inject(UntypedFormBuilder); + private readonly injector = inject(Injector); + data: PagedResultDto = { items: [], totalCount: 0 }; @ViewChild('modalContent', { static: false }) @@ -83,15 +91,6 @@ export class UsersComponent implements OnInit { return ((this.form.get('roleNames') as UntypedFormArray)?.controls as UntypedFormGroup[]) || []; } - constructor( - public readonly list: ListService, - protected confirmationService: ConfirmationService, - protected service: IdentityUserService, - private toasterService: ToasterService, - protected fb: UntypedFormBuilder, - protected injector: Injector, - ) {} - ngOnInit() { this.hookToQuery(); } diff --git a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts index 6648519e38..8503a2bd81 100644 --- a/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts +++ b/npm/ng-packs/packages/permission-management/src/lib/components/permission-management.component.ts @@ -12,6 +12,7 @@ import { Component, ElementRef, EventEmitter, + inject, Input, Output, QueryList, @@ -52,6 +53,10 @@ export class PermissionManagementComponent PermissionManagement.PermissionManagementComponentInputs, PermissionManagement.PermissionManagementComponentOutputs { + protected readonly service = inject(PermissionsService); + protected readonly configState = inject(ConfigStateService); + protected readonly toasterService = inject(ToasterService); + @Input() readonly providerName!: string; @@ -118,12 +123,6 @@ export class PermissionManagementComponent trackByFn: TrackByFunction = (_, item) => item.name; - constructor( - protected service: PermissionsService, - protected configState: ConfigStateService, - private readonly toasterService: ToasterService, - ) {} - getChecked(name: string) { return (this.permissions.find(per => per.name === name) || { isGranted: false }).isGranted; } diff --git a/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts b/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts index 45381119ef..99169b1cbe 100644 --- a/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts +++ b/npm/ng-packs/packages/tenant-management/src/lib/components/tenants/tenants.component.ts @@ -7,7 +7,7 @@ import { FormPropData, generateFormFromProps, } from '@abp/ng.components/extensible'; -import { Component, Injector, OnInit } from '@angular/core'; +import { Component, inject, Injector, OnInit } from '@angular/core'; import { UntypedFormBuilder, UntypedFormGroup } from '@angular/forms'; import { finalize } from 'rxjs/operators'; import { eTenantManagementComponents } from '../../enums/components'; @@ -24,6 +24,13 @@ import { eTenantManagementComponents } from '../../enums/components'; ], }) export class TenantsComponent implements OnInit { + protected readonly list = inject(ListService); + protected readonly confirmationService = inject(ConfirmationService); + protected readonly service = inject(TenantService); + protected readonly toasterService = inject(ToasterService); + private readonly fb = inject(UntypedFormBuilder); + private readonly injector = inject(Injector); + data: PagedResultDto = { items: [], totalCount: 0 }; selected!: TenantDto; @@ -48,15 +55,6 @@ export class TenantsComponent implements OnInit { this.visibleFeatures = value; }; - constructor( - public readonly list: ListService, - private injector: Injector, - private confirmationService: ConfirmationService, - private service: TenantService, - private toasterService: ToasterService, - private fb: UntypedFormBuilder, - ) {} - ngOnInit() { this.hookToQuery(); } diff --git a/npm/ng-packs/packages/theme-shared/src/lib/services/create-error-component.service.ts b/npm/ng-packs/packages/theme-shared/src/lib/services/create-error-component.service.ts index 5a6f02aef9..da1ae0ddc0 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/services/create-error-component.service.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/services/create-error-component.service.ts @@ -23,7 +23,7 @@ export class CreateErrorComponentService { protected readonly rendererFactory = inject(RendererFactory2); protected readonly cfRes = inject(ComponentFactoryResolver); protected readonly routerEvents = inject(RouterEvents); - protected readonly injector = inject(Injector); + private readonly injector = inject(Injector); protected readonly httpErrorConfig = inject(HTTP_ERROR_CONFIG); componentRef: ComponentRef | null = null;