Files
YouTube-Manager/Manager.App/Components/Layout/BaseLayout.razor.cs

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));
}
}
}