diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts index a77bf60a28..e9b907ffb6 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/workspace/components/workspace-split-view/workspace-split-view-variant-selector.element.ts @@ -234,6 +234,17 @@ export class UmbWorkspaceSplitViewVariantSelectorElement< const host = this.getBoundingClientRect(); // TODO: Ideally this is kept updated while open, but for now we just set it once: this._popoverElement.style.width = `${host.width}px`; + + // If the active variant is a segment then we expend the culture variant when the selector is opened. + if (this.#isSegmentVariantOption(this._activeVariant)) { + const culture = this._cultureVariants.find((variant) => { + return variant.culture === this._activeVariant?.culture && variant.segment === null; + }); + + if (!culture) return; + const variantId = UmbVariantId.Create(culture); + this.#expandVariant(variantId); + } } /** @@ -258,14 +269,23 @@ export class UmbWorkspaceSplitViewVariantSelectorElement< return variantOption?.segment !== null; } - #toggleExpansion(event: PointerEvent, variantId: UmbVariantId) { + #onVariantExpandClick(event: PointerEvent, variantId: UmbVariantId) { event.stopPropagation(); - this._expandedVariants = this.#isExpanded(variantId) + this.#toggleVariantExpansion(variantId); + } + + #expandVariant(variantId: UmbVariantId) { + if (this.#isVariantExpanded(variantId)) return; + this._expandedVariants = [...this._expandedVariants, variantId]; + } + + #toggleVariantExpansion(variantId: UmbVariantId) { + this._expandedVariants = this.#isVariantExpanded(variantId) ? this._expandedVariants.filter((expandedVariant) => expandedVariant.equal(variantId) === false) : [...this._expandedVariants, variantId]; } - #isExpanded(variantId: UmbVariantId) { + #isVariantExpanded(variantId: UmbVariantId) { return this._expandedVariants.find((expandedVariant) => expandedVariant.equal(variantId)) !== undefined; } @@ -358,7 +378,7 @@ export class UmbWorkspaceSplitViewVariantSelectorElement<