37 lines
929 B
C#
37 lines
929 B
C#
using Microsoft.AspNetCore.Components;
|
|
using MudBlazor;
|
|
|
|
namespace Manager.App.Components.Layout;
|
|
|
|
public partial class BaseLayout
|
|
{
|
|
private readonly MudTheme _mudTheme = new MudTheme();
|
|
private MudThemeProvider? _themeProvider;
|
|
private bool _isDarkTheme = true;
|
|
|
|
public event EventHandler<bool>? OnDarkThemeChanged;
|
|
|
|
public bool DarkTheme
|
|
{
|
|
get => _isDarkTheme;
|
|
set
|
|
{
|
|
_isDarkTheme = value;
|
|
ThemeChanged();
|
|
}
|
|
}
|
|
|
|
private void ThemeChanged()
|
|
{
|
|
StateHasChanged();
|
|
}
|
|
|
|
protected override async Task OnAfterRenderAsync(bool firstRender)
|
|
{
|
|
if (firstRender && _themeProvider != null)
|
|
{
|
|
DarkTheme = await _themeProvider.GetSystemDarkModeAsync();
|
|
_themeProvider.IsDarkModeChanged = EventCallback.Factory.Create<bool>(this, x => OnDarkThemeChanged?.Invoke(this, x));
|
|
}
|
|
}
|
|
} |