From 21f82ab507926f0ee8c10b98813c8ff1fdfae487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Niels=20Lyngs=C3=B8?= Date: Mon, 11 Nov 2024 14:53:25 +0100 Subject: [PATCH] observe expose with blocks variant id (#17482) --- .../block/block/context/block-entry.context.ts | 2 +- .../block/block/context/block-manager.context.ts | 3 +-- .../block/block/workspace/block-workspace.context.ts | 10 +++++----- 3 files changed, 7 insertions(+), 8 deletions(-) diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts index 442bb5b2c3..edfcdc4d85 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts @@ -577,7 +577,7 @@ export abstract class UmbBlockEntryContext< if (!variantId || !this.#contentKey) return; // TODO: Handle variantId changes this.observe( - this._manager?.hasExposeOf(this.#contentKey), + this._manager?.hasExposeOf(this.#contentKey, variantId), (hasExpose) => { this.#hasExpose.setValue(hasExpose); }, diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-manager.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-manager.context.ts index fcfbf774ab..3e5937996f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-manager.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-manager.context.ts @@ -189,8 +189,7 @@ export abstract class UmbBlockManagerContext< ); } - hasExposeOf(contentKey: string) { - const variantId = this.#variantId.getValue(); + hasExposeOf(contentKey: string, variantId: UmbVariantId) { if (!variantId) return; return this.#exposes.asObservablePart((source) => source.some((x) => x.contentKey === contentKey && variantId.compare(x)), diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts index b0383f3f97..0c1fd64aaf 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts @@ -118,19 +118,19 @@ export class UmbBlockWorkspaceContext { - if (!contentKey) return; + observeMultiple([this.contentKey, this.variantId]), + ([contentKey, variantId]) => { + if (!contentKey || !variantId) return; this.observe( - manager.hasExposeOf(contentKey), + manager.hasExposeOf(contentKey, variantId), (exposed) => { this.#exposed.setValue(exposed); }, 'observeHasExpose', ); }, - 'observeContentKey', + 'observeContentKeyAndVariantId', ); }).asPromise();