Skip to content

Commit da26ee1

Browse files
committed
Merge branch 'feature/switch-theme-presets'
2 parents ec6e1dd + 7995510 commit da26ee1

7 files changed

Lines changed: 649 additions & 241 deletions

File tree

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
namespace MudBlazor.ThemeManager.TestApp.MudThemePresets;
2+
3+
4+
public class CustomThemePreset01 : IThemePreset
5+
{
6+
public string NamePreset { get; } = "Arco Service NET";
7+
8+
public MudTheme Theme { get; } = new()
9+
{
10+
PaletteLight = new PaletteLight()
11+
{
12+
Primary = Colors.Brown.Darken3,
13+
Secondary = Colors.Green.Darken2,
14+
AppbarBackground = Colors.Red.Default
15+
},
16+
PaletteDark = new PaletteDark() { Primary = Colors.Blue.Lighten1 },
17+
LayoutProperties = new LayoutProperties() { DrawerWidthLeft = "260px", DrawerWidthRight = "300px" }
18+
};
19+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
namespace MudBlazor.ThemeManager.TestApp.MudThemePresets;
2+
3+
4+
public class CustomThemePreset02 : IThemePreset
5+
{
6+
public string NamePreset { get; } = "Test Theme";
7+
8+
public MudTheme Theme { get; } = new()
9+
{
10+
PaletteLight = new PaletteLight()
11+
{
12+
Primary = Colors.Teal.Default,
13+
Secondary = Colors.Green.Accent4,
14+
AppbarBackground = Colors.BlueGray.Default
15+
},
16+
PaletteDark = new PaletteDark() { Primary = Colors.Blue.Lighten1 },
17+
LayoutProperties = new LayoutProperties() { DrawerWidthLeft = "260px", DrawerWidthRight = "300px" }
18+
};
19+
}
Lines changed: 46 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,103 @@
1-
@inherits LayoutComponentBase
1+
@using MudBlazor.ThemeManager.TestApp.MudThemePresets
2+
@inherits LayoutComponentBase
23

3-
<MudThemeProvider @ref="@_mudThemeProvider" Theme="_themeManager.Theme" @bind-IsDarkMode="@_isDarkMode" />
4+
<MudThemeProvider @bind-IsDarkMode="@_isDarkMode"
5+
@ref="@_mudThemeProvider"
6+
Theme="_themeManager.Theme" />
47
<MudPopoverProvider />
58
<MudDialogProvider />
69
<MudSnackbarProvider />
710

811
<MudLayout>
9-
<MudAppBar Elevation="_themeManager.AppBarElevation">
10-
<MudIconButton Icon="@Icons.Material.Filled.Menu" Color="Color.Inherit" Edge="Edge.Start" OnClick="@((e) => DrawerToggle())" />
12+
<MudAppBar Elevation="_themeManager.AppBarElevation" >
13+
<MudIconButton Color="Color.Inherit"
14+
Edge="Edge.Start"
15+
Icon="@Icons.Material.Filled.Menu"
16+
OnClick="@((e) => DrawerToggle())" />
1117
<MudSpacer />
12-
<MudIconButton Icon="@Icons.Material.Filled.DarkMode" Color="Color.Inherit" OnClick="@((e) => DarkModeToggle())" Edge="Edge.End" />
18+
<MudIconButton Color="Color.Inherit"
19+
Edge="Edge.End"
20+
Icon="@Icons.Material.Filled.DarkMode"
21+
OnClick="@((e) => DarkModeToggle())" />
1322
</MudAppBar>
14-
<MudDrawer @bind-Open="_drawerOpen" ClipMode="_themeManager.DrawerClipMode" Elevation="_themeManager.DrawerElevation">
15-
<MudText Typo="Typo.h6" Class="px-4 pt-2">Theme Manager</MudText>
16-
<MudText Typo="Typo.body2" Class="px-4 mud-text-secondary">Test Application</MudText>
23+
<MudDrawer @bind-Open="_drawerOpen"
24+
ClipMode="_themeManager.DrawerClipMode"
25+
Elevation="_themeManager.DrawerElevation" >
26+
<MudText Class="px-4 pt-2"
27+
Typo="Typo.h6" >
28+
Theme Manager
29+
</MudText>
30+
<MudText Class="px-4 mud-text-secondary"
31+
Typo="Typo.body2" >
32+
Test Application
33+
</MudText>
1734
<NavMenu />
1835
</MudDrawer>
1936
<MudMainContent>
20-
<MudContainer MaxWidth="MaxWidth.False" Class="mt-16 px-16">
37+
<MudContainer Class="mt-16 px-16"
38+
MaxWidth="MaxWidth.False" >
2139
@Body
2240
</MudContainer>
2341
</MudMainContent>
2442
<MudThemeManagerButton OnClick="@((e) => OpenThemeManager(true))" />
25-
<MudThemeManager Open="_themeManagerOpen" OpenChanged="OpenThemeManager" Theme="_themeManager" ThemeChanged="UpdateTheme" IsDarkMode="@_isDarkMode" />
43+
<MudThemeManager IsDarkMode="@_isDarkMode"
44+
Open="_themeManagerOpen"
45+
OpenChanged="OpenThemeManager"
46+
Theme="_themeManager"
47+
ThemeChanged="UpdateTheme"
48+
ThemePresets="_themePresets" />
2649
</MudLayout>
2750

2851
@code {
2952
private ThemeManagerTheme _themeManager = new();
3053
private MudThemeProvider _mudThemeProvider;
54+
private IEnumerable<IThemePreset>? _themePresets;
3155

3256
private bool _isDarkMode;
3357
private bool _drawerOpen = true;
3458
private bool _themeManagerOpen;
3559

60+
3661
private void DrawerToggle()
3762
{
3863
_drawerOpen = !_drawerOpen;
3964
}
4065

66+
4167
private void OpenThemeManager(bool value)
4268
{
4369
_themeManagerOpen = value;
4470
}
4571

72+
4673
private void DarkModeToggle()
4774
{
4875
_isDarkMode = !_isDarkMode;
4976
StateHasChanged();
5077
}
5178

79+
5280
private void UpdateTheme(ThemeManagerTheme value)
5381
{
5482
_themeManager = value;
5583
StateHasChanged();
5684
}
5785

86+
5887
protected override async Task OnAfterRenderAsync(bool firstRender)
5988
{
6089
if (firstRender)
6190
{
6291
_isDarkMode = await _mudThemeProvider.GetSystemPreference();
6392
StateHasChanged();
6493
}
94+
6595
await base.OnAfterRenderAsync(firstRender);
6696
}
97+
98+
99+
protected override void OnInitialized()
100+
{
101+
_themePresets = [new CustomThemePreset01(), new CustomThemePreset02()];
102+
}
67103
}

0 commit comments

Comments
 (0)