Skip to content

Block Editor: Implements hints for Tabs (fixes #21178)#21672

Merged
nielslyngsoe merged 35 commits intomainfrom
v17/bugfix/21178
Feb 10, 2026
Merged

Block Editor: Implements hints for Tabs (fixes #21178)#21672
nielslyngsoe merged 35 commits intomainfrom
v17/bugfix/21178

Conversation

@nielslyngsoe
Copy link
Member

Implements hints for tabs of the Block Workspace. Notice how this is used for all Blocks, in the Modal when editing Blocks, and when editing List Blocks in inline-mode.

This generally finished the implementation of badges, it seems there where a few missing links/bindings between the View Contexts.

Here a few screenshots of the scenarios I have tested:

image image image

Copilot AI and others added 10 commits December 22, 2025 10:15
Co-authored-by: nielslyngsoe <6791648+nielslyngsoe@users.noreply.github.com>
Co-authored-by: nielslyngsoe <6791648+nielslyngsoe@users.noreply.github.com>
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.ts
#	src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts
Copilot AI review requested due to automatic review settings February 6, 2026 20:19
@nielslyngsoe nielslyngsoe enabled auto-merge (squash) February 6, 2026 20:19
@nielslyngsoe nielslyngsoe changed the title (fixes #21178) Block Editor: Implements hints for Tabs (fixes #21178) Feb 6, 2026
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Implements tab-level hint/badge support in the Block Workspace by introducing per-tab view contexts and wiring validation hints into those contexts so tab headers can display badges when a tab contains validation issues.

Changes:

  • Add per-tab UmbViewController instances in block workspace edit views and render tab badges based on firstHintOfVariant.
  • Switch block element managers from UmbHintContext to UmbViewContext and route validation hints through view.hints.
  • Wire block workspace content/settings views to inherit from the workspace view (but includes a stray debug subscription).

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 6 comments.

File Description
src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts Creates/provides per-tab view contexts and renders hint badges in router-based block edit tabs.
src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.ts Adds similar per-tab view contexts + hint badge rendering for inline/no-router block editing.
src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-workspace.context.ts Hooks up view inheritance for content/settings views (but also adds a debug console subscription).
src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/block-element-manager.ts Replaces hint context with view context and connects validation-to-hints to view.hints.
Comments suppressed due to low confidence (1)

src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.ts:71

  • When _hasRootProperties changes, you don’t call #setupViewContexts(). If root properties become available after initial load, the required view context (and its hint observer) will never be created. Call #setupViewContexts() from the hasProperties observer as well.
		this.observe(
			this.#tabsStructureHelper.hasProperties,
			(hasRootProperties) => {
				this._hasRootProperties = hasRootProperties;
				this.#checkDefaultTabName();
			},
			'observeRootProperties',
		);

Copy link
Contributor

@AndyButland AndyButland left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks to be working as expected from my testing @nielslyngsoe. There are a few Copilot comments you should review though, and some debug logging that should be cleaned-up.

# Conflicts:
#	src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts
…21476

# Conflicts:
#	src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts
…21476

# Conflicts:
#	src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit.element.ts
# Conflicts:
#	src/Umbraco.Web.UI.Client/src/packages/block/block/workspace/views/edit/block-workspace-view-edit-content-no-router.element.ts
nielslyngsoe added a commit that referenced this pull request Feb 10, 2026
* cherry-pick from #21672

* cherry pick tab rendering to handle one more case

* move the root route down for it to stay an empty path.

* Revert empty root path commit

* fullPath for root includes 'root'

* revert claude settings commit

* refactor accordingly to feedback
@nielslyngsoe nielslyngsoe merged commit a1bcabf into main Feb 10, 2026
27 of 28 checks passed
@nielslyngsoe nielslyngsoe deleted the v17/bugfix/21178 branch February 10, 2026 14:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants