1
0
mirror of https://github.com/bitwarden/browser synced 2025-12-16 08:13:42 +00:00

[PM-21821] Provider portal takeover states (#15725)

* Updates:

- Update simple dialog to disallow user to close the dialog on acceptance
- Split payment components to provide a "require" component that cannot be closed out of
- Add provider warning service to manage the various provider warnings

* Fix test

* Will's feedback and sync on payment method success
This commit is contained in:
Alex Morask
2025-07-28 09:26:19 -05:00
committed by GitHub
parent 38d5edc2c5
commit f4254ba920
10 changed files with 518 additions and 64 deletions

View File

@@ -17,10 +17,13 @@ import { BusinessUnitPortalLogo } from "@bitwarden/web-vault/app/admin-console/i
import { ProviderPortalLogo } from "@bitwarden/web-vault/app/admin-console/icons/provider-portal-logo";
import { WebLayoutModule } from "@bitwarden/web-vault/app/layouts/web-layout.module";
import { ProviderWarningsService } from "../../billing/providers/services/provider-warnings.service";
@Component({
selector: "providers-layout",
templateUrl: "providers-layout.component.html",
imports: [CommonModule, RouterModule, JslibModule, WebLayoutModule, IconModule],
providers: [ProviderWarningsService],
})
export class ProvidersLayoutComponent implements OnInit, OnDestroy {
protected readonly logo = ProviderPortalLogo;
@@ -40,13 +43,18 @@ export class ProvidersLayoutComponent implements OnInit, OnDestroy {
private route: ActivatedRoute,
private providerService: ProviderService,
private configService: ConfigService,
private providerWarningsService: ProviderWarningsService,
) {}
ngOnInit() {
document.body.classList.remove("layout_frontend");
this.provider$ = this.route.params.pipe(
switchMap((params) => this.providerService.get$(params.providerId)),
const providerId$: Observable<string> = this.route.params.pipe(
map((params) => params.providerId),
);
this.provider$ = providerId$.pipe(
switchMap((providerId) => this.providerService.get$(providerId)),
takeUntil(this.destroy$),
);
@@ -77,6 +85,15 @@ export class ProvidersLayoutComponent implements OnInit, OnDestroy {
this.managePaymentDetailsOutsideCheckout$ = this.configService.getFeatureFlag$(
FeatureFlag.PM21881_ManagePaymentDetailsOutsideCheckout,
);
providerId$
.pipe(
switchMap((providerId) =>
this.providerWarningsService.showProviderSuspendedDialog$(providerId),
),
takeUntil(this.destroy$),
)
.subscribe();
}
ngOnDestroy() {