mirror of
https://github.com/bitwarden/browser
synced 2025-12-06 00:13:28 +00:00
* Updated billing state provider to not rely on ActiveUserStateProvider * Updated usages * Resolved browser build * Resolved web build * Resolved CLI build * resolved desktop build * Update apps/cli/src/tools/send/commands/create.command.ts Co-authored-by: ✨ Audrey ✨ <ajensen@bitwarden.com> * Move subscription visibility logic from component to service * Resolved unit test failures. Using existing userIds where present * Simplified activeUserId access * Resolved typescript strict errors * Resolved broken unit test * Resolved ts strict error --------- Co-authored-by: ✨ Audrey ✨ <ajensen@bitwarden.com>
56 lines
2.0 KiB
TypeScript
56 lines
2.0 KiB
TypeScript
// FIXME: Update this file to be type safe and remove this and next line
|
|
// @ts-strict-ignore
|
|
import { CommonModule } from "@angular/common";
|
|
import { Component, OnInit } from "@angular/core";
|
|
import { RouterModule } from "@angular/router";
|
|
import { Observable, switchMap } from "rxjs";
|
|
|
|
import { JslibModule } from "@bitwarden/angular/jslib.module";
|
|
import { AccountService } from "@bitwarden/common/auth/abstractions/account.service";
|
|
import { BillingAccountProfileStateService } from "@bitwarden/common/billing/abstractions/account/billing-account-profile-state.service";
|
|
import { SyncService } from "@bitwarden/common/platform/sync";
|
|
import { IconModule } from "@bitwarden/components";
|
|
|
|
import { BillingFreeFamiliesNavItemComponent } from "../billing/shared/billing-free-families-nav-item.component";
|
|
|
|
import { PasswordManagerLogo } from "./password-manager-logo";
|
|
import { WebLayoutModule } from "./web-layout.module";
|
|
|
|
@Component({
|
|
selector: "app-user-layout",
|
|
templateUrl: "user-layout.component.html",
|
|
standalone: true,
|
|
imports: [
|
|
CommonModule,
|
|
RouterModule,
|
|
JslibModule,
|
|
WebLayoutModule,
|
|
IconModule,
|
|
BillingFreeFamiliesNavItemComponent,
|
|
],
|
|
})
|
|
export class UserLayoutComponent implements OnInit {
|
|
protected readonly logo = PasswordManagerLogo;
|
|
isFreeFamilyFlagEnabled: boolean;
|
|
protected hasFamilySponsorshipAvailable$: Observable<boolean>;
|
|
protected showSponsoredFamilies$: Observable<boolean>;
|
|
protected showSubscription$: Observable<boolean>;
|
|
|
|
constructor(
|
|
private syncService: SyncService,
|
|
private billingAccountProfileStateService: BillingAccountProfileStateService,
|
|
private accountService: AccountService,
|
|
) {
|
|
this.showSubscription$ = this.accountService.activeAccount$.pipe(
|
|
switchMap((account) =>
|
|
this.billingAccountProfileStateService.canViewSubscription$(account.id),
|
|
),
|
|
);
|
|
}
|
|
|
|
async ngOnInit() {
|
|
document.body.classList.remove("layout_frontend");
|
|
await this.syncService.fullSync(false);
|
|
}
|
|
}
|