diff --git a/apps/web/src/app/admin-console/organizations/members/components/member-dialog/member-dialog.component.ts b/apps/web/src/app/admin-console/organizations/members/components/member-dialog/member-dialog.component.ts index 5262b3f64a..5461aecfcc 100644 --- a/apps/web/src/app/admin-console/organizations/members/components/member-dialog/member-dialog.component.ts +++ b/apps/web/src/app/admin-console/organizations/members/components/member-dialog/member-dialog.component.ts @@ -37,7 +37,7 @@ import { } from "../../../shared/components/access-selector"; import { commaSeparatedEmails } from "./validators/comma-separated-emails.validator"; -import { orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator } from "./validators/org-without-additional-seat-limit-reached-with-upgrade-path.validator"; +import { orgSeatLimitReachedValidator } from "./validators/org-seat-limit-reached.validator"; export enum MemberDialogTab { Role = 0, @@ -84,7 +84,7 @@ export class MemberDialogComponent implements OnInit, OnDestroy { protected groupAccessItems: AccessItemView[] = []; protected tabIndex: MemberDialogTab; protected formGroup = this.formBuilder.group({ - emails: ["", { updateOn: "blur" }], + emails: [""], type: OrganizationUserType.User, externalId: this.formBuilder.control({ value: "", disabled: true }), accessAllCollections: false, @@ -176,7 +176,7 @@ export class MemberDialogComponent implements OnInit, OnDestroy { const emailsControlValidators = [ Validators.required, commaSeparatedEmails, - orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator( + orgSeatLimitReachedValidator( this.organization, this.params.allOrganizationUserEmails, this.i18nService.t("subscriptionUpgrade", organization.seats), diff --git a/apps/web/src/app/admin-console/organizations/members/components/member-dialog/validators/org-without-additional-seat-limit-reached-with-upgrade-path.validator.spec.ts b/apps/web/src/app/admin-console/organizations/members/components/member-dialog/validators/org-seat-limit-reached.validator.spec.ts similarity index 83% rename from apps/web/src/app/admin-console/organizations/members/components/member-dialog/validators/org-without-additional-seat-limit-reached-with-upgrade-path.validator.spec.ts rename to apps/web/src/app/admin-console/organizations/members/components/member-dialog/validators/org-seat-limit-reached.validator.spec.ts index b0acfb4dce..c26b51e249 100644 --- a/apps/web/src/app/admin-console/organizations/members/components/member-dialog/validators/org-without-additional-seat-limit-reached-with-upgrade-path.validator.spec.ts +++ b/apps/web/src/app/admin-console/organizations/members/components/member-dialog/validators/org-seat-limit-reached.validator.spec.ts @@ -4,7 +4,7 @@ import { OrganizationUserType } from "@bitwarden/common/admin-console/enums"; import { Organization } from "@bitwarden/common/admin-console/models/domain/organization"; import { ProductType } from "@bitwarden/common/enums"; -import { orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator } from "./org-without-additional-seat-limit-reached-with-upgrade-path.validator"; +import { orgSeatLimitReachedValidator } from "./org-seat-limit-reached.validator"; const orgFactory = (props: Partial = {}) => Object.assign( @@ -17,7 +17,7 @@ const orgFactory = (props: Partial = {}) => props, ); -describe("orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator", () => { +describe("orgSeatLimitReachedValidator", () => { let organization: Organization; let allOrganizationUserEmails: string[]; let validatorFn: (control: AbstractControl) => ValidationErrors | null; @@ -27,7 +27,7 @@ describe("orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator", () => { }); it("should return null when control value is empty", () => { - validatorFn = orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator( + validatorFn = orgSeatLimitReachedValidator( organization, allOrganizationUserEmails, "You cannot invite more than 2 members without upgrading your plan.", @@ -40,7 +40,7 @@ describe("orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator", () => { }); it("should return null when control value is null", () => { - validatorFn = orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator( + validatorFn = orgSeatLimitReachedValidator( organization, allOrganizationUserEmails, "You cannot invite more than 2 members without upgrading your plan.", @@ -57,7 +57,7 @@ describe("orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator", () => { planProductType: ProductType.Free, seats: 2, }); - validatorFn = orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator( + validatorFn = orgSeatLimitReachedValidator( organization, allOrganizationUserEmails, "You cannot invite more than 2 members without upgrading your plan.", @@ -74,7 +74,7 @@ describe("orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator", () => { planProductType: ProductType.TeamsStarter, seats: 10, }); - validatorFn = orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator( + validatorFn = orgSeatLimitReachedValidator( organization, allOrganizationUserEmails, "You cannot invite more than 10 members without upgrading your plan.", @@ -102,7 +102,7 @@ describe("orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator", () => { seats: 2, }); const errorMessage = "You cannot invite more than 2 members without upgrading your plan."; - validatorFn = orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator( + validatorFn = orgSeatLimitReachedValidator( organization, allOrganizationUserEmails, "You cannot invite more than 2 members without upgrading your plan.", @@ -120,7 +120,7 @@ describe("orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator", () => { planProductType: ProductType.Enterprise, seats: 100, }); - validatorFn = orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator( + validatorFn = orgSeatLimitReachedValidator( organization, allOrganizationUserEmails, "You cannot invite more than 2 members without upgrading your plan.", diff --git a/apps/web/src/app/admin-console/organizations/members/components/member-dialog/validators/org-without-additional-seat-limit-reached-with-upgrade-path.validator.ts b/apps/web/src/app/admin-console/organizations/members/components/member-dialog/validators/org-seat-limit-reached.validator.ts similarity index 95% rename from apps/web/src/app/admin-console/organizations/members/components/member-dialog/validators/org-without-additional-seat-limit-reached-with-upgrade-path.validator.ts rename to apps/web/src/app/admin-console/organizations/members/components/member-dialog/validators/org-seat-limit-reached.validator.ts index 3eef9d4944..8b521e2c17 100644 --- a/apps/web/src/app/admin-console/organizations/members/components/member-dialog/validators/org-without-additional-seat-limit-reached-with-upgrade-path.validator.ts +++ b/apps/web/src/app/admin-console/organizations/members/components/member-dialog/validators/org-seat-limit-reached.validator.ts @@ -11,7 +11,7 @@ import { ProductType } from "@bitwarden/common/enums"; * @param errorMessage A localized string to display if validation fails * @returns A function that validates an `AbstractControl` and returns `ValidationErrors` or `null` */ -export function orgWithoutAdditionalSeatLimitReachedWithUpgradePathValidator( +export function orgSeatLimitReachedValidator( organization: Organization, allOrganizationUserEmails: string[], errorMessage: string,