From d16be4e8377eb68b35428d13d09ba5fffc03154a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 12 Aug 2024 10:27:06 +0200 Subject: [PATCH] data path state in property context --- .../core/property/property/property.context.ts | 11 +++++++++++ .../core/property/property/property.element.ts | 12 ++++++------ 2 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts index 0c121c7299..c217bacb0f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/property/property/property.context.ts @@ -43,9 +43,13 @@ export class UmbPropertyContext extends UmbContextBase(undefined); public readonly validation = this.#validation.asObservable(); + public readonly validationMandatory = this.#validation.asObservablePart((x) => x?.mandatory); public readonly validationMandatoryMessage = this.#validation.asObservablePart((x) => x?.mandatoryMessage); + #dataPath = new UmbStringState(undefined); + public readonly dataPath = this.#dataPath.asObservable(); + #editor = new UmbBasicState(undefined); public readonly editor = this.#editor.asObservable(); @@ -206,6 +210,13 @@ export class UmbPropertyContext extends UmbContextBase { this._invalid = invalid; }); } public get dataPath(): string | undefined { - return this.#dataPath; + return this.#propertyContext.getDataPath(); } - #dataPath?: string; @state() private _variantDifference?: string; @@ -319,13 +318,14 @@ export class UmbPropertyElement extends UmbLitElement { ); if ('checkValidity' in this._element) { - this.#controlValidator = new UmbFormControlValidator(this, this._element as any, this.#dataPath); + const dataPath = this.dataPath; + this.#controlValidator = new UmbFormControlValidator(this, this._element as any, dataPath); // We trust blindly that the dataPath is available at this stage. [NL] - if (this.#dataPath) { + if (dataPath) { this.#validationMessageBinder = new UmbBindServerValidationToFormControl( this, this._element as any, - this.#dataPath, + dataPath, ); this.#validationMessageBinder.value = this.#propertyContext.getValue(); }