diff --git a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenu.cs b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenu.cs index 976552a6ec..1a69de7f2c 100644 --- a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenu.cs +++ b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenu.cs @@ -1,4 +1,6 @@ +using System.Collections.Generic; using JetBrains.Annotations; +using Volo.Abp.Data; using Volo.Abp.UI.Navigation; namespace Volo.Abp.UI.Navigation; @@ -31,10 +33,9 @@ public class ApplicationMenu : IHasMenuItems /// /// Can be used to store a custom object related to this menu. - /// TODO: Convert to dictionary! /// - [CanBeNull] - public object CustomData { get; set; } + [NotNull] + public Dictionary CustomData { get; } = new(); public ApplicationMenu( [NotNull] string name, @@ -59,6 +60,16 @@ public class ApplicationMenu : IHasMenuItems return this; } + /// + /// Adds a custom data item to with given key & value. + /// + /// This itself. + public ApplicationMenu WithCustomData(string key, object value) + { + CustomData[key] = value; + return this; + } + public override string ToString() { return $"[ApplicationMenu] Name = {Name}"; diff --git a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenuItem.cs b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenuItem.cs index 1f5d26d7bb..32241ba7ac 100644 --- a/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenuItem.cs +++ b/framework/src/Volo.Abp.UI.Navigation/Volo/Abp/Ui/Navigation/ApplicationMenuItem.cs @@ -79,7 +79,8 @@ public class ApplicationMenuItem : IHasMenuItems, IHasSimpleStateCheckers /// Can be used to store a custom object related to this menu item. Optional. /// - public object CustomData { get; set; } + [NotNull] + public Dictionary CustomData { get; } = new(); /// /// Can be used to render the element with a specific Id for DOM selections. @@ -97,7 +98,6 @@ public class ApplicationMenuItem : IHasMenuItems, IHasSimpleStateCheckers + /// Adds a custom data item to with given key & value. + /// + /// This itself. + public ApplicationMenuItem WithCustomData(string key, object value) + { + CustomData[key] = value; + return this; + } + private string GetDefaultElementId() { return "MenuItem_" + Name; diff --git a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenuContributor.cs b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenuContributor.cs index 845db61425..2753816af0 100644 --- a/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenuContributor.cs +++ b/modules/cms-kit/src/Volo.CmsKit.Public.Web/Menus/CmsKitPublicMenuContributor.cs @@ -58,7 +58,6 @@ public class CmsKitPublicMenuContributor : IMenuContributor menuItem.Url, menuItem.Icon, menuItem.Order, - customData: null, menuItem.Target, menuItem.ElementId, menuItem.CssClass