diff --git a/src/Umbraco.Web.UI.Client/src/packages/core/content/manager/content-data-manager.ts b/src/Umbraco.Web.UI.Client/src/packages/core/content/manager/content-data-manager.ts index 875e8850cb..6c81b7b197 100644 --- a/src/Umbraco.Web.UI.Client/src/packages/core/content/manager/content-data-manager.ts +++ b/src/Umbraco.Web.UI.Client/src/packages/core/content/manager/content-data-manager.ts @@ -152,4 +152,18 @@ export class UmbContentWorkspaceDataManager< .map((x) => new UmbVariantId(x.culture, x.segment)) ?? [] ); } + + override async constructData(selectedVariantIds: Array) { + let selection = selectedVariantIds; + + // If we vary by segment we need to save all segments for a selected culture. + if (this._variesBySegment === true) { + const dataVariants = this.getCurrent()?.variants ?? []; + const selectedCultures = selectedVariantIds.map((x) => x.culture); + const selectedCulturesIncludingSegments = dataVariants.filter((x) => selectedCultures.includes(x.culture)); + selection = selectedCulturesIncludingSegments.map((x) => UmbVariantId.Create(x)); + } + + return super.constructData(selection); + } }