diff --git a/apps/web/src/app/billing/organizations/adjust-subscription.component.html b/apps/web/src/app/billing/organizations/adjust-subscription.component.html index 61197e86d2..60d57a3b19 100644 --- a/apps/web/src/app/billing/organizations/adjust-subscription.component.html +++ b/apps/web/src/app/billing/organizations/adjust-subscription.component.html @@ -56,4 +56,3 @@ {{ "save" | i18n }} - diff --git a/apps/web/src/app/billing/organizations/adjust-subscription.component.ts b/apps/web/src/app/billing/organizations/adjust-subscription.component.ts index 226c92b45e..436372c049 100644 --- a/apps/web/src/app/billing/organizations/adjust-subscription.component.ts +++ b/apps/web/src/app/billing/organizations/adjust-subscription.component.ts @@ -1,43 +1,36 @@ -import { Component, EventEmitter, Input, OnDestroy, OnInit, Output } from "@angular/core"; +import { Component, EventEmitter, Input, Output } from "@angular/core"; +import { takeUntilDestroyed } from "@angular/core/rxjs-interop"; import { FormBuilder, Validators } from "@angular/forms"; -import { Subject, takeUntil } from "rxjs"; import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction"; import { OrganizationSubscriptionUpdateRequest } from "@bitwarden/common/billing/models/request/organization-subscription-update.request"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; -import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; import { ToastService } from "@bitwarden/components"; @Component({ selector: "app-adjust-subscription", templateUrl: "adjust-subscription.component.html", }) -export class AdjustSubscription implements OnInit, OnDestroy { +export class AdjustSubscription { @Input() organizationId: string; @Input() maxAutoscaleSeats: number; @Input() currentSeatCount: number; @Input() seatPrice = 0; @Input() interval = "year"; @Output() onAdjusted = new EventEmitter(); - private destroy$ = new Subject(); adjustSubscriptionForm = this.formBuilder.group({ newSeatCount: [0, [Validators.min(0)]], limitSubscription: [false], newMaxSeats: [0, [Validators.min(0)]], }); - get limitSubscription(): boolean { - return this.adjustSubscriptionForm.value.limitSubscription; - } + constructor( private i18nService: I18nService, - private platformUtilsService: PlatformUtilsService, private organizationApiService: OrganizationApiServiceAbstraction, private formBuilder: FormBuilder, private toastService: ToastService, - ) {} - - ngOnInit() { + ) { this.adjustSubscriptionForm.patchValue({ newSeatCount: this.currentSeatCount, limitSubscription: this.maxAutoscaleSeats != null, @@ -45,7 +38,7 @@ export class AdjustSubscription implements OnInit, OnDestroy { }); this.adjustSubscriptionForm .get("limitSubscription") - .valueChanges.pipe(takeUntil(this.destroy$)) + .valueChanges.pipe(takeUntilDestroyed()) .subscribe((value: boolean) => { if (value) { this.adjustSubscriptionForm @@ -63,10 +56,6 @@ export class AdjustSubscription implements OnInit, OnDestroy { }); } - ngOnDestroy() { - this.destroy$.next(); - this.destroy$.complete(); - } submit = async () => { this.adjustSubscriptionForm.markAllAsTouched(); if (this.adjustSubscriptionForm.invalid) { @@ -99,18 +88,15 @@ export class AdjustSubscription implements OnInit, OnDestroy { : 0; } - get additionalMaxSeatCount(): number { - return this.adjustSubscriptionForm.value.newMaxSeats - ? this.adjustSubscriptionForm.value.newMaxSeats - this.currentSeatCount - : 0; - } - get maxSeatTotal(): number { return Math.abs((this.adjustSubscriptionForm.value.newMaxSeats ?? 0) * this.seatPrice); } get seatTotalCost(): number { - const totalSeat = Math.abs(this.adjustSubscriptionForm.value.newSeatCount * this.seatPrice); - return totalSeat; + return Math.abs(this.adjustSubscriptionForm.value.newSeatCount * this.seatPrice); + } + + get limitSubscription(): boolean { + return this.adjustSubscriptionForm.value.limitSubscription; } }