Bugfix: Picker inputs - moved addValidator calls to ctor

When added inside the `connectedCallback()`, this could
potentially be called multiple times, causing unwanted issues.
This commit is contained in:
leekelleher
2024-05-23 10:51:03 +01:00
parent 07c2ec7f22
commit 7a4632c2bd
4 changed files with 9 additions and 27 deletions

View File

@@ -94,12 +94,6 @@ export class UmbInputEntityElement extends UUIFormControlMixin(UmbLitElement, ''
constructor() {
super();
}
connectedCallback() {
super.connectedCallback();
if (!this.#pickerContext) return;
this.addValidator(
'rangeUnderflow',

View File

@@ -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() {

View File

@@ -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() {

View File

@@ -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() {