1
0
mirror of https://github.com/bitwarden/browser synced 2026-02-11 14:04:03 +00:00

Enhance organization integrations module with routing updates and state management improvements

- Added OrganizationIntegrationsState for better state management.
- Updated routing to redirect to single sign-on by default.
- Integrated OrganizationIntegrationsResolver for preloading data.
- Refactored components to utilize new state management and improved async handling.
This commit is contained in:
JaredScar
2026-01-22 16:01:11 -05:00
parent 6f49dfffe4
commit 897d172a56
5 changed files with 9 additions and 5 deletions

View File

@@ -15,3 +15,5 @@
</bit-tab-nav-bar>
}
</app-header>
<router-outlet></router-outlet>

View File

@@ -7,6 +7,7 @@ import { DeviceManagementComponent } from "./device-management/device-management
import { EventManagementComponent } from "./event-management/event-management.component";
import { AdminConsoleIntegrationsComponent } from "./integrations.component";
import { OrganizationIntegrationsResolver } from "./organization-integrations.resolver";
import { OrganizationIntegrationsState } from "./organization-integrations.state";
import { SingleSignOnComponent } from "./single-sign-on/single-sign-on.component";
import { UserProvisioningComponent } from "./user-provisioning/user-provisioning.component";
@@ -18,9 +19,10 @@ const routes: Routes = [
titleId: "integrations",
},
component: AdminConsoleIntegrationsComponent,
providers: [OrganizationIntegrationsState, OrganizationIntegrationsResolver],
resolve: { integrations: OrganizationIntegrationsResolver },
children: [
{ path: "", component: AdminConsoleIntegrationsComponent },
{ path: "", redirectTo: "single-sign-on", pathMatch: "full" },
{ path: "single-sign-on", component: SingleSignOnComponent },
{ path: "user-provisioning", component: UserProvisioningComponent },
{ path: "event-management", component: EventManagementComponent },

View File

@@ -24,6 +24,7 @@ import { UserProvisioningComponent } from "./user-provisioning/user-provisioning
EventManagementComponent,
],
providers: [
OrganizationIntegrationsResolver,
safeProvider({
provide: OrganizationIntegrationService,
useClass: OrganizationIntegrationService,
@@ -39,7 +40,6 @@ import { UserProvisioningComponent } from "./user-provisioning/user-provisioning
useClass: OrganizationIntegrationConfigurationApiService,
deps: [ApiService],
}),
OrganizationIntegrationsResolver,
],
})
export class OrganizationIntegrationsModule {}

View File

@@ -4,7 +4,7 @@ import { toObservable } from "@angular/core/rxjs-interop";
import { Integration } from "@bitwarden/bit-common/dirt/organization-integrations/models/integration";
import { Organization } from "@bitwarden/common/admin-console/models/domain/organization";
@Injectable({ providedIn: "root" })
@Injectable()
export class OrganizationIntegrationsState {
private readonly _integrations = signal<Integration[]>([]);
private readonly _organization = signal<Organization | null>(null);

View File

@@ -3,11 +3,11 @@ import { Component, OnInit } from "@angular/core";
import { IntegrationType } from "@bitwarden/common/enums/integration-type.enum";
import { SharedModule } from "@bitwarden/web-vault/app/shared";
import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
import { IntegrationGridComponent } from "../integration-grid/integration-grid.component";
import { FilterIntegrationsPipe } from "../integrations.pipe";
import { OrganizationIntegrationsState } from "../organization-integrations.state";
import { tap } from "rxjs/operators";
import { takeUntilDestroyed } from "@angular/core/rxjs-interop";
// FIXME(https://bitwarden.atlassian.net/browse/CL-764): Migrate to OnPush
// eslint-disable-next-line @angular-eslint/prefer-on-push-component-change-detection
@@ -24,7 +24,7 @@ export class SingleSignOnComponent implements OnInit {
ngOnInit() {
// eslint-disable-next-line no-console
this.state.integrations$
this.integrationsList$
.pipe(
tap((integrations) =>
console.log("[DEBUG] integrations in single-sign-on.component.ts =>", integrations),