From 7a4632c2bdfa7a13b35fbeeb16c0f90f59eb76aa Mon Sep 17 00:00:00 2001 From: leekelleher Date: Thu, 23 May 2024 10:51:03 +0100 Subject: [PATCH] Bugfix: Picker inputs - moved `addValidator` calls to `ctor` When added inside the `connectedCallback()`, this could potentially be called multiple times, causing unwanted issues. --- .../components/input-entity/input-entity.element.ts | 6 ------ .../input-document/input-document.element.ts | 10 +++------- .../input-member-group/input-member-group.element.ts | 10 +++------- .../components/input-member/input-member.element.ts | 10 +++------- 4 files changed, 9 insertions(+), 27 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-entity/input-entity.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-entity/input-entity.element.ts index eb1725152f..4fc06d512a 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/components/input-entity/input-entity.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/components/input-entity/input-entity.element.ts @@ -94,12 +94,6 @@ export class UmbInputEntityElement extends UUIFormControlMixin(UmbLitElement, '' constructor() { super(); - } - - connectedCallback() { - super.connectedCallback(); - - if (!this.#pickerContext) return; this.addValidator( 'rangeUnderflow', diff --git a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts index 242cf881eb..0238aca4b1 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/documents/documents/components/input-document/input-document.element.ts @@ -118,13 +118,6 @@ export class UmbInputDocumentElement extends UUIFormControlMixin(UmbLitElement, this._editDocumentPath = routeBuilder({}); }); - this.observe(this.#pickerContext.selection, (selection) => (this.value = selection.join(',')), '_observeSelection'); - this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems), '_observerItems'); - } - - connectedCallback(): void { - super.connectedCallback(); - this.addValidator( 'rangeUnderflow', () => this.minMessage, @@ -136,6 +129,9 @@ export class UmbInputDocumentElement extends UUIFormControlMixin(UmbLitElement, () => this.maxMessage, () => !!this.max && this.#pickerContext.getSelection().length > this.max, ); + + this.observe(this.#pickerContext.selection, (selection) => (this.value = selection.join(',')), '_observeSelection'); + this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems), '_observerItems'); } protected getFormElement() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/components/input-member-group/input-member-group.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/components/input-member-group/input-member-group.element.ts index 121447158b..cd22798867 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member-group/components/input-member-group/input-member-group.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member-group/components/input-member-group/input-member-group.element.ts @@ -117,13 +117,6 @@ export class UmbInputMemberGroupElement extends UUIFormControlMixin(UmbLitElemen this._editMemberGroupPath = routeBuilder({}); }); - this.observe(this.#pickerContext.selection, (selection) => (this.value = selection.join(',')), '_observeSelection'); - this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems), '_observeItems'); - } - - connectedCallback(): void { - super.connectedCallback(); - this.addValidator( 'rangeUnderflow', () => this.minMessage, @@ -135,6 +128,9 @@ export class UmbInputMemberGroupElement extends UUIFormControlMixin(UmbLitElemen () => this.maxMessage, () => !!this.max && this.#pickerContext.getSelection().length > this.max, ); + + this.observe(this.#pickerContext.selection, (selection) => (this.value = selection.join(',')), '_observeSelection'); + this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems), '_observeItems'); } protected getFormElement() { diff --git a/src/Umbraco.Web.UI.Client/src/packages/members/member/components/input-member/input-member.element.ts b/src/Umbraco.Web.UI.Client/src/packages/members/member/components/input-member/input-member.element.ts index b7bf29e7e5..3d7dc70ef8 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/members/member/components/input-member/input-member.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/members/member/components/input-member/input-member.element.ts @@ -117,13 +117,6 @@ export class UmbInputMemberElement extends UUIFormControlMixin(UmbLitElement, '' this._editMemberPath = routeBuilder({}); }); - this.observe(this.#pickerContext.selection, (selection) => (this.value = selection.join(',')), '_observeSelection'); - this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems), '_observeItems'); - } - - connectedCallback(): void { - super.connectedCallback(); - this.addValidator( 'rangeUnderflow', () => this.minMessage, @@ -135,6 +128,9 @@ export class UmbInputMemberElement extends UUIFormControlMixin(UmbLitElement, '' () => this.maxMessage, () => !!this.max && this.#pickerContext.getSelection().length > this.max, ); + + this.observe(this.#pickerContext.selection, (selection) => (this.value = selection.join(',')), '_observeSelection'); + this.observe(this.#pickerContext.selectedItems, (selectedItems) => (this._items = selectedItems), '_observeItems'); } protected getFormElement() {