diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts index 81f385df53..8dc13b040f 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-grid/property-editors/block-grid-editor/property-editor-ui-block-grid.element.ts @@ -123,6 +123,7 @@ export class UmbPropertyEditorUIBlockGridElement }, 'motherObserver', ); + this.observe( propertyContext?.alias, (alias) => { @@ -130,6 +131,30 @@ export class UmbPropertyEditorUIBlockGridElement }, 'observePropertyAlias', ); + + // If the current property is readonly all inner block content should also be readonly. + this.observe( + observeMultiple([propertyContext.isReadOnly, propertyContext.variantId]), + ([isReadOnly, variantId]) => { + const unique = 'UMB_PROPERTY_CONTEXT'; + if (variantId === undefined) return; + + if (isReadOnly) { + const state = { + unique, + variantId, + message: '', + }; + + debugger; + + this.#managerContext.readOnlyState.addState(state); + } else { + this.#managerContext.readOnlyState.removeState(unique); + } + }, + 'observeIsReadOnly', + ); }); this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, (context) => { diff --git a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts index 3accdffc9c..74ad4e1be7 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/block/block-list/property-editors/block-list-editor/property-editor-ui-block-list.element.ts @@ -203,7 +203,30 @@ export class UmbPropertyEditorUIBlockListElement }, 'motherObserver', ); + + // If the current property is readonly all inner block content should also be readonly. + this.observe( + observeMultiple([context.isReadOnly, context.variantId]), + ([isReadOnly, variantId]) => { + const unique = 'UMB_PROPERTY_CONTEXT'; + if (variantId === undefined) return; + + if (isReadOnly) { + const state = { + unique, + variantId, + message: '', + }; + + this.#managerContext.readOnlyState.addState(state); + } else { + this.#managerContext.readOnlyState.removeState(unique); + } + }, + 'observeIsReadOnly', + ); }); + this.consumeContext(UMB_PROPERTY_DATASET_CONTEXT, (context) => { this.#managerContext.setVariantId(context.getVariantId()); });