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:
@@ -15,3 +15,5 @@
|
||||
</bit-tab-nav-bar>
|
||||
}
|
||||
</app-header>
|
||||
|
||||
<router-outlet></router-outlet>
|
||||
|
||||
@@ -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 },
|
||||
|
||||
@@ -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 {}
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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),
|
||||
|
||||
Reference in New Issue
Block a user