Make invariant variant merge for blocks capable of detecting sub layouts (#18234)

This commit is contained in:
Sven Geusens
2025-02-05 16:21:14 +01:00
committed by GitHub
parent 6249ac92b5
commit 41b769687f
5 changed files with 24 additions and 2 deletions

View File

@@ -320,10 +320,10 @@ public abstract class BlockValuePropertyValueEditorBase<TValue, TLayout> : DataV
// remove all the blocks that are no longer part of the layout
target.BlockValue.ContentData.RemoveAll(contentBlock =>
target.Layout!.Any(layoutItem => layoutItem.ContentKey == contentBlock.Key) is false);
target.Layout!.Any(layoutItem => layoutItem.ReferencesContent(contentBlock.Key)) is false);
target.BlockValue.SettingsData.RemoveAll(settingsBlock =>
target.Layout!.Any(layoutItem => layoutItem.SettingsKey == settingsBlock.Key) is false);
target.Layout!.Any(layoutItem => layoutItem.ReferencesSetting(settingsBlock.Key)) is false);
CleanupVariantValues(source.BlockValue.ContentData, target.BlockValue.ContentData, canUpdateInvariantData, allowedCultures);
CleanupVariantValues(source.BlockValue.SettingsData, target.BlockValue.SettingsData, canUpdateInvariantData, allowedCultures);