Skip to content

Commit d13871e

Browse files
authored
expose using the block variant id (#17525)
1 parent 3613e32 commit d13871e

File tree

4 files changed

+13
-12
lines changed

4 files changed

+13
-12
lines changed

src/Umbraco.Web.UI.Client/src/packages/block/block-list/context/block-list-entries.context.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { UmbBooleanState } from '@umbraco-cms/backoffice/observable-api';
88
import type { UmbControllerHost } from '@umbraco-cms/backoffice/controller-api';
99
import { UmbModalRouteRegistrationController } from '@umbraco-cms/backoffice/router';
1010
import { UMB_PROPERTY_DATASET_CONTEXT } from '@umbraco-cms/backoffice/property';
11+
import type { UmbVariantId } from '@umbraco-cms/backoffice/variant';
1112

1213
export class UmbBlockListEntriesContext extends UmbBlockEntriesContext<
1314
typeof UMB_BLOCK_LIST_MANAGER_CONTEXT,
@@ -149,11 +150,7 @@ export class UmbBlockListEntriesContext extends UmbBlockEntriesContext<
149150
originData: UmbBlockListWorkspaceOriginData,
150151
) {
151152
await this._retrieveManager;
152-
const success = this._manager?.insert(layoutEntry, content, settings, originData) ?? false;
153-
if (success) {
154-
this._manager?.setOneExpose(layoutEntry.contentKey);
155-
}
156-
return success;
153+
return this._manager?.insert(layoutEntry, content, settings, originData) ?? false;
157154
}
158155

159156
// create Block?

src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-entry.context.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -575,7 +575,6 @@ export abstract class UmbBlockEntryContext<
575575
#gotVariantId() {
576576
const variantId = this.#variantId.getValue();
577577
if (!variantId || !this.#contentKey) return;
578-
// TODO: Handle variantId changes
579578
this.observe(
580579
this._manager?.hasExposeOf(this.#contentKey, variantId),
581580
(hasExpose) => {
@@ -615,8 +614,9 @@ export abstract class UmbBlockEntryContext<
615614
}
616615

617616
public expose() {
618-
if (!this.#contentKey) return;
619-
this._manager?.setOneExpose(this.#contentKey);
617+
const variantId = this.#variantId.getValue();
618+
if (!variantId || !this.#contentKey) return;
619+
this._manager?.setOneExpose(this.#contentKey, variantId);
620620
}
621621

622622
//copy

src/Umbraco.Web.UI.Client/src/packages/block/block/context/block-manager.context.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,9 @@ export abstract class UmbBlockManagerContext<
4545
setVariantId(variantId: UmbVariantId | undefined) {
4646
this.#variantId.setValue(variantId);
4747
}
48+
getVariantId(): UmbVariantId | undefined {
49+
return this.#variantId.getValue();
50+
}
4851

4952
readonly #structures: Array<UmbContentTypeStructureManager> = [];
5053

@@ -213,8 +216,7 @@ export abstract class UmbBlockManagerContext<
213216
setOneSettings(settingsData: UmbBlockDataModel) {
214217
this.#settings.appendOne(settingsData);
215218
}
216-
setOneExpose(contentKey: string) {
217-
const variantId = this.#variantId.getValue();
219+
setOneExpose(contentKey: string, variantId: UmbVariantId) {
218220
if (!variantId) return;
219221
this.#exposes.appendOne({ contentKey, ...variantId.toObject() });
220222
}

src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -467,12 +467,14 @@ export class UmbBlockWorkspaceContext<LayoutDataType extends UmbBlockLayoutBaseM
467467

468468
expose() {
469469
const contentKey = this.#layout.value?.contentKey;
470-
if (!contentKey) throw new Error('Cannot expose block that does not exist.');
470+
if (!contentKey) throw new Error('Failed to expose block, missing content key.');
471471
this.#expose(contentKey);
472472
}
473473

474474
#expose(unique: string) {
475-
this.#blockManager?.setOneExpose(unique);
475+
const variantId = this.#variantId.getValue();
476+
if (!variantId) throw new Error('Failed to expose block, missing variant id.');
477+
this.#blockManager?.setOneExpose(unique, variantId);
476478
}
477479

478480
#modalRejected = () => {

0 commit comments

Comments
 (0)