diff --git a/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj b/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj index fb6f05ea55d..cf06face498 100644 --- a/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj +++ b/src/BootstrapBlazor.Server/BootstrapBlazor.Server.csproj @@ -31,7 +31,7 @@ - + @@ -48,7 +48,7 @@ - + diff --git a/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor b/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor index 3021f368488..a1b658e6549 100644 --- a/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor +++ b/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor @@ -1,5 +1,5 @@ @inherits WebSiteModuleComponentBase -@attribute [JSModuleAutoLoader("Components/ThemeMode.razor.js", JSObjectReference = true)] +@attribute [JSModuleAutoLoader("Components/ThemeMode.razor.js")]
diff --git a/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.cs b/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.cs index 783caf74ba2..f996d2122dd 100644 --- a/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.cs +++ b/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.cs @@ -3,8 +3,6 @@ // See the LICENSE file in the project root for more information. // Maintainer: Argo Zhang(argo@live.ca) Website: https://www.blazor.zone -using Microsoft.JSInterop; - namespace BootstrapBlazor.Server.Components.Components; /// @@ -15,10 +13,6 @@ public partial class ThemeMode [Inject, NotNull] private IIconTheme? IconTheme { get; set; } - [Inject] - [NotNull] - private IThemeProvider? ThemeProvider { get; set; } - private string? GetLightIconClassString => CssBuilder.Default("icon-light") .AddClass(_lightModeIcon) .Build(); @@ -41,17 +35,4 @@ protected override void OnInitialized() _darkModeIcon ??= IconTheme.GetIconByKey(ComponentIcons.ThemeProviderDarkModeIcon); _lightModeIcon ??= IconTheme.GetIconByKey(ComponentIcons.ThemeProviderLightModeIcon); } - - /// - /// - /// - protected override Task InvokeInitAsync() => InvokeVoidAsync("init", Id, Interop, nameof(OnThemeChanged)); - - /// - /// The callback when theme changed - /// - /// - /// - [JSInvokable] - public ValueTask OnThemeChanged(string themeName) => ThemeProvider.SetThemeAsync(themeName); } diff --git a/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.js b/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.js index ce6ed515de3..f0a7962ba3b 100644 --- a/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.js +++ b/src/BootstrapBlazor.Server/Components/Components/ThemeMode.razor.js @@ -1,7 +1,7 @@ import { getTheme, switchTheme, calcCenterPosition } from "../../_content/BootstrapBlazor/modules/utility.js" import EventHandler from "../../_content/BootstrapBlazor/modules/event-handler.js" -export function init(id, invoke, method) { +export function init(id) { const el = document.getElementById(id); if (el) { EventHandler.on(el, 'click', e => { @@ -15,7 +15,6 @@ export function init(id, invoke, method) { const rect = calcCenterPosition(el); switchTheme(theme, rect.x, rect.y); - invoke.invokeMethodAsync(method, theme); }); } } diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs index ca40bad886f..9fd84cc3e72 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/BaseDockView.cs @@ -22,10 +22,6 @@ public abstract class BaseDockView : ComponentBase [NotNull] private MockDataTableDynamicService? DataTableDynamicService { get; set; } - [Inject] - [NotNull] - private IThemeProvider? ThemeProviderService { get; set; } - /// /// 获得/设置 数据集合 /// @@ -43,11 +39,6 @@ public abstract class BaseDockView : ComponentBase /// protected DataTableDynamicContext? DataTableDynamicContext { get; set; } - /// - /// Gets or sets the theme - /// - protected DockViewTheme Theme { get; set; } = DockViewTheme.Light; - /// /// 获得 实例方法 /// @@ -74,22 +65,6 @@ protected override void OnInitialized() TreeItems.AddRange(TreeFoo.GenerateFoos(LocalizerFoo, 3, 101, 1010)); DataTableDynamicContext = DataTableDynamicService.CreateContext(); - - ThemeProviderService.ThemeChangedAsync += OnThemeChanged; - } - - private Task OnThemeChanged(string themeName) - { - if (themeName == "dark") - { - Theme = DockViewTheme.Dark; - } - else - { - Theme = DockViewTheme.Light; - } - StateHasChanged(); - return Task.CompletedTask; } /// @@ -116,23 +91,23 @@ private int GenerateId() protected static Task>> TreeNodeConverter(IEnumerable items) { // 构造树状数据结构 - var ret = BuildTreeNodes(items, 0); - return Task.FromResult(ret); + var ret = BuildTreeNodes(items.ToList(), 0); + return Task.FromResult(ret.AsEnumerable()); + } - IEnumerable> BuildTreeNodes(IEnumerable items, int parentId) + private static List> BuildTreeNodes(List items, int parentId) + { + var ret = new List>(); + ret.AddRange(items.Where(i => i.ParentId == parentId).Select((foo, index) => new TableTreeNode(foo) { - var ret = new List>(); - ret.AddRange(items.Where(i => i.ParentId == parentId).Select((foo, index) => new TableTreeNode(foo) - { - // 此处为示例,假设偶行数据都有子数据 - HasChildren = index % 2 == 0, - // 如果子项集合有值 则默认展开此节点 - IsExpand = items.Any(i => i.ParentId == foo.Id), - // 获得子项集合 - Items = BuildTreeNodes(items.Where(i => i.ParentId == foo.Id), foo.Id) - })); - return ret; - } + // 此处为示例,假设偶行数据都有子数据 + HasChildren = index % 2 == 0, + // 如果子项集合有值 则默认展开此节点 + IsExpand = items.Any(i => i.ParentId == foo.Id), + // 获得子项集合 + Items = BuildTreeNodes(items.Where(i => i.ParentId == foo.Id).ToList(), foo.Id) + })); + return ret; } /// @@ -162,7 +137,7 @@ public class TreeFoo : Foo /// GenerateFoos /// /// - public static List GenerateFoos(IStringLocalizer localizer, int count = 80, int parentId = 0, int id = 0) => Enumerable.Range(1, count).Select(i => new TreeFoo() + public static List GenerateFoos(IStringLocalizer localizer, int count = 80, int parentId = 0, int id = 0) => [.. Enumerable.Range(1, count).Select(i => new TreeFoo() { Id = id + i, ParentId = parentId, @@ -172,6 +147,6 @@ public class TreeFoo : Foo Count = Random.Shared.Next(1, 100), Complete = Random.Shared.Next(1, 100) > 50, Education = Random.Shared.Next(1, 100) > 50 ? EnumEducation.Primary : EnumEducation.Middle - }).ToList(); + })]; } } diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewCol.razor b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewCol.razor index 38632f3419e..422522d84ad 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewCol.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewCol.razor @@ -5,7 +5,7 @@

@((MarkupString)Localizer["DockViewColIntro"].Value)

- + @((MarkupString)Localizer["DockViewComplexIntro"].Value) - + diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewGroup.razor b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewGroup.razor index 3e5e85ad94b..891e1af7d83 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewGroup.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewGroup.razor @@ -5,7 +5,7 @@

@((MarkupString)Localizer["DockViewGroupIntro"].Value)

- + diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLayout.razor b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLayout.razor index 8d469704886..77f434cb1b7 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLayout.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLayout.razor @@ -12,7 +12,7 @@ - +
? Localizer { get; set; } [NotNull] - private DockViewV2? DockView { get; set; } + private DockViewV2? _dockView = null; - private Task Reset() => DockView.Reset(LayoutConfig); + private Task Reset() => _dockView.Reset(_layoutConfig); private void OnToggleLayout1() { - LayoutConfig = LayoutConfig1; + _layoutConfig = LayoutConfig1; } private void OnToggleLayout2() { - LayoutConfig = LayoutConfig2; + _layoutConfig = LayoutConfig2; } private void OnToggleLayout3() { - LayoutConfig = LayoutConfig3; + _layoutConfig = LayoutConfig3; } - private string LayoutConfig = LayoutConfig1; + private string _layoutConfig = LayoutConfig1; const string LayoutConfig1 = """{"grid":{"root":{"type":"branch","data":[{"type":"branch","data":[{"type":"leaf","data":{"views":["bb_5893789"],"activeView":"bb_5893789","id":"0"},"size":364},{"type":"leaf","data":{"views":["bb_11251481"],"activeView":"bb_11251481","id":"1"},"size":364},{"type":"leaf","data":{"views":["bb_39754773"],"activeView":"bb_39754773","id":"2"},"size":364}],"size":601}],"size":1092},"width":1092,"height":601,"orientation":"VERTICAL"},"panels":{"bb_5893789":{"id":"bb_5893789","contentComponent":"component","tabComponent":"component","params":{"componentName":"component","title":"标签一","titleWidth":null,"titleClass":null,"class":null,"visible":true,"showClose":true,"width":null,"height":null,"key":null,"isLock":false,"type":"component","id":"bb_5893789","additionalAttributes":null},"title":"标签一"},"bb_11251481":{"id":"bb_11251481","contentComponent":"component","tabComponent":"component","params":{"componentName":"component","title":"标签二","titleWidth":null,"titleClass":null,"class":null,"visible":true,"showClose":true,"width":null,"height":null,"key":null,"isLock":false,"type":"component","id":"bb_11251481","additionalAttributes":null},"title":"标签二"},"bb_39754773":{"id":"bb_39754773","contentComponent":"component","tabComponent":"component","params":{"componentName":"component","title":"标签三","titleWidth":null,"titleClass":null,"class":null,"visible":true,"showClose":true,"width":null,"height":null,"key":null,"isLock":false,"type":"component","id":"bb_39754773","additionalAttributes":null},"title":"标签三"}},"activeGroup":"1"}"""; diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLock.razor b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLock.razor index 330ae09e86f..d48903bab6b 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLock.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewLock.razor @@ -7,7 +7,7 @@ - +
@((MarkupString)Localizer["DockViewNestIntro"].Value) - + - +
- +
? Localizer { get; set; } + + private DockViewTheme _theme; } diff --git a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewRow.razor b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewRow.razor index e53c5225a57..e5bb196c9e9 100644 --- a/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewRow.razor +++ b/src/BootstrapBlazor.Server/Components/Samples/DockViews2/DockViewRow.razor @@ -5,7 +5,7 @@

@((MarkupString)Localizer["DockViewRowIntro"].Value)

- +
@((MarkupString)Localizer["DockViewTitleIntro"].Value) - +
- +