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)
-
+