Fix: newly added Block Grid area blocks never render a preview - #323
Open
rickbutterfield wants to merge 1 commit into
Open
Fix: newly added Block Grid area blocks never render a preview#323rickbutterfield wants to merge 1 commit into
rickbutterfield wants to merge 1 commit into
Conversation
… forever for layoutAreas (#322) A newly added, unsaved block's layout entry has no `areas` key at all — Umbraco's UmbBlockGridEntryContext derives layoutAreas as `layout?.areas`, which stays undefined until content is added to an area or the document is saved. The #293 fix deferred rendering until layoutAreas arrived, which meant new area-carrying blocks never rendered a preview at all, leaving the area's create button unreachable. #filterLayouts() already defaults each area's items to [] when layoutAreas is missing, so it's safe to render immediately; the existing re-render trigger in observeBlockValue still refreshes the preview once real layoutAreas data does arrive, preserving the #293 fix. Rebuilt the backoffice bundle to include the change.
3 tasks
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes #322 — a newly added, unsaved Block Grid block with areas never renders a preview.
Root cause: Umbraco's
UmbBlockGridEntryContextderiveslayoutAreasaslayout?.areas(verified against the published@umbraco-cms/backoffice@18.0.0source). A brand-new block is created with an emptypartialLayoutEntry: {}, so its layout entry has noareaskey at all —layoutAreasstaysundefineduntil content is added into an area or the document is saved and reloaded.The #293 fix added a guard that deferred the initial preview render whenever a block had configured areas but
layoutAreashadn't arrived yet, to avoid a transient incomplete render. For brand-new blocks that guard never releases, so the preview stays permanently blank and the area's "Add new Layout" button (part of the server-rendered markup) is unreachable.Fix: Removed the defer/early-return in
#observeBlockPropertyValue.#filterLayouts()already defaults each area'sitemsto[]whenlayoutAreasis missing, so rendering immediately is safe and correct for new blocks. The existing re-render trigger inobserveBlockValue(fired whenlayoutAreastransitions from absent to present) is untouched, so the #293 fix for saved blocks with a content/settings-vs-layoutAreas race is preserved.src/Umbraco.Community.BlockPreview.UI/src/blockEditor/block-grid-preview.custom-view.element.ts— remove the defer guardwwwroot/App_Plugins/...) to include the changeTest plan
tsc --noEmitpassesnpm run buildsucceeds and bundle reflects the changeGenerated by Claude Code