mirror of
https://github.com/bitwarden/browser
synced 2026-01-08 11:33:28 +00:00
42 lines
1.3 KiB
TypeScript
42 lines
1.3 KiB
TypeScript
import { Component, OnInit } from "@angular/core";
|
|
import { Router } from "@angular/router";
|
|
|
|
import { ApiService } from "@bitwarden/common/abstractions/api.service";
|
|
import { BillingHistoryResponse } from "@bitwarden/common/billing/models/response/billing-history.response";
|
|
import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service";
|
|
|
|
@Component({
|
|
templateUrl: "billing-history-view.component.html",
|
|
})
|
|
export class BillingHistoryViewComponent implements OnInit {
|
|
loading = false;
|
|
firstLoaded = false;
|
|
billing: BillingHistoryResponse;
|
|
|
|
constructor(
|
|
private apiService: ApiService,
|
|
private platformUtilsService: PlatformUtilsService,
|
|
private router: Router,
|
|
) {}
|
|
|
|
async ngOnInit() {
|
|
if (this.platformUtilsService.isSelfHost()) {
|
|
// FIXME: Verify that this floating promise is intentional. If it is, add an explanatory comment and ensure there is proper error handling.
|
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
this.router.navigate(["/settings/subscription"]);
|
|
return;
|
|
}
|
|
await this.load();
|
|
this.firstLoaded = true;
|
|
}
|
|
|
|
async load() {
|
|
if (this.loading) {
|
|
return;
|
|
}
|
|
this.loading = true;
|
|
this.billing = await this.apiService.getUserBillingHistory();
|
|
this.loading = false;
|
|
}
|
|
}
|