From 3e515d4b415f023ad9a44cbabb159bb02221631d Mon Sep 17 00:00:00 2001 From: Fahri Gedik <53567152+fahrigedik@users.noreply.github.com> Date: Tue, 20 Jan 2026 13:52:14 +0300 Subject: [PATCH] Replace NgbNav with @angular/aria tabs in users component Migrates the users component from ng-bootstrap's NgbNav to @angular/aria tab components for tab navigation. Updates the HTML structure and imports, adds a selectedTab property for tab state, and ensures the tab resets when opening the modal. Also updates peerDependencies for @angular/aria in package.json files. --- .../packages/feature-management/package.json | 2 +- npm/ng-packs/packages/identity/package.json | 3 + .../lib/components/users/users.component.html | 72 ++++++++++--------- .../lib/components/users/users.component.ts | 12 +++- 4 files changed, 54 insertions(+), 35 deletions(-) diff --git a/npm/ng-packs/packages/feature-management/package.json b/npm/ng-packs/packages/feature-management/package.json index 8769dd4a40..caa0eafdb7 100644 --- a/npm/ng-packs/packages/feature-management/package.json +++ b/npm/ng-packs/packages/feature-management/package.json @@ -11,7 +11,7 @@ "tslib": "^2.0.0" }, "peerDependencies": { - "@angular/aria": ">=21.0.0" + "@angular/aria": "21.0.0" }, "publishConfig": { "access": "public" diff --git a/npm/ng-packs/packages/identity/package.json b/npm/ng-packs/packages/identity/package.json index e0de606028..fe8dae03f1 100644 --- a/npm/ng-packs/packages/identity/package.json +++ b/npm/ng-packs/packages/identity/package.json @@ -12,6 +12,9 @@ "@abp/ng.theme.shared": "~10.1.0-rc.1", "tslib": "^2.0.0" }, + "peerDependencies": { + "@angular/aria": "21.0.0" + }, "publishConfig": { "access": "public" } diff --git a/npm/ng-packs/packages/identity/src/lib/components/users/users.component.html b/npm/ng-packs/packages/identity/src/lib/components/users/users.component.html index 5085f1d120..054b64991d 100644 --- a/npm/ng-packs/packages/identity/src/lib/components/users/users.component.html +++ b/npm/ng-packs/packages/identity/src/lib/components/users/users.component.html @@ -28,39 +28,47 @@ @if (form) {
- -
+
+
+ + + +
+ +
+ + @for (roleGroup of roleGroups; track $index; let i = $index) { +
+ + +
+ } +
+
+
+
} @else {
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 ba7c5b451b..df1409854b 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 @@ -52,7 +52,8 @@ import { import { finalize, switchMap, tap } from 'rxjs/operators'; import { eIdentityComponents } from '../../enums/components'; import { PageComponent } from '@abp/ng.components/page'; -import { NgbDropdownModule, NgbNavModule } from '@ng-bootstrap/ng-bootstrap'; +import { NgbDropdownModule } from '@ng-bootstrap/ng-bootstrap'; +import { Tabs, TabList, Tab, TabPanel, TabContent } from '@angular/aria/tabs'; import { NgxValidateCoreModule } from '@ngx-validate/core'; @Component({ @@ -70,7 +71,11 @@ import { NgxValidateCoreModule } from '@ngx-validate/core'; FormsModule, PermissionManagementComponent, PageComponent, - NgbNavModule, + Tabs, + TabList, + Tab, + TabPanel, + TabContent, NgbDropdownModule, NgxValidateCoreModule, LocalizationPipe, @@ -101,6 +106,8 @@ export class UsersComponent implements OnInit { selected?: IdentityUserDto; + selectedTab = '0'; + selectedUserRoles?: IdentityRoleDto[]; roles?: IdentityRoleDto[]; @@ -159,6 +166,7 @@ export class UsersComponent implements OnInit { } openModal() { + this.selectedTab = '0'; this.buildForm(); this.isModalVisible = true; }