You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.6 KiB
52 lines
1.6 KiB
using System.Threading.Tasks;
|
|
using AntDesign;
|
|
using Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Settings;
|
|
using Microsoft.AspNetCore.Components;
|
|
|
|
namespace Lsw.Abp.AspnetCore.Components.Web.AntDesignTheme.Themes.AntDesignTheme;
|
|
|
|
public partial class DefaultLayout
|
|
{
|
|
[Inject]
|
|
protected IAntDesignSettingsProvider AntDesignSettingsProvider { get; set; }
|
|
|
|
protected bool Collapsed { get; set; }
|
|
|
|
protected MenuPlacement MenuPlacement { get; set; }
|
|
|
|
protected MenuTheme MenuTheme { get; set; }
|
|
|
|
protected string HeaderClass { get; set; }
|
|
|
|
protected SiderTheme SiderTheme { get; set; }
|
|
|
|
protected string SiderStyle { get; set; } = "min-width:256px";
|
|
|
|
protected override async Task OnInitializedAsync()
|
|
{
|
|
await SetLayout();
|
|
AntDesignSettingsProvider.SettingChanged += OnSettingChanged;
|
|
}
|
|
|
|
protected virtual async Task OnSettingChanged()
|
|
{
|
|
await SetLayout();
|
|
await InvokeAsync(StateHasChanged);
|
|
}
|
|
|
|
private async Task SetLayout()
|
|
{
|
|
MenuTheme = await AntDesignSettingsProvider.GetMenuThemeAsync();
|
|
MenuPlacement = await AntDesignSettingsProvider.GetMenuPlacementAsync();
|
|
|
|
SiderTheme = MenuTheme == MenuTheme.Light ? SiderTheme.Light : SiderTheme.Dark;
|
|
HeaderClass = MenuPlacement == MenuPlacement.Top ? "ant-design-header-top" : "ant-design-header-left";
|
|
HeaderClass = MenuTheme == MenuTheme.Light ? $"{HeaderClass} {HeaderClass}-light" : HeaderClass;
|
|
}
|
|
|
|
protected virtual void OnCollapse()
|
|
{
|
|
Collapsed = !Collapsed;
|
|
SiderStyle = Collapsed ? "" : "min-width:256px";
|
|
}
|
|
}
|
|
|