Skip to content

Commit fd3e346

Browse files
committed
Simplify code
1 parent 75571f2 commit fd3e346

5 files changed

Lines changed: 19 additions & 35 deletions

File tree

src/MudBlazor.ThemeManager.TestApp/Shared/MainLayout.razor

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
@inherits LayoutComponentBase
22

3-
<MudThemeProvider @ref="@_mudThemeProvider" @bind-IsDarkMode="@_isDarkMode" />
3+
<MudThemeProvider @ref="@_mudThemeProvider" Theme="_themeManager.Theme" @bind-IsDarkMode="@_isDarkMode" />
44
<MudPopoverProvider />
55
<MudDialogProvider />
66
<MudSnackbarProvider />
@@ -46,14 +46,12 @@
4646
private void DarkModeToggle()
4747
{
4848
_isDarkMode = !_isDarkMode;
49-
_mudThemeProvider.IsDarkMode = _isDarkMode;
5049
StateHasChanged();
5150
}
5251

5352
private void UpdateTheme(ThemeManagerTheme value)
5453
{
5554
_themeManager = value;
56-
_mudThemeProvider.Theme = _themeManager.Theme;
5755
StateHasChanged();
5856
}
5957

src/MudBlazor.ThemeManager.TestApp/_Imports.razor

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@
66
@using Microsoft.AspNetCore.Components.Web.Virtualization
77
@using Microsoft.AspNetCore.Components.WebAssembly.Http
88
@using Microsoft.JSInterop
9-
@using MudBlazor.ThemeManager.TestApp
10-
@using MudBlazor.ThemeManager.TestApp.Shared
11-
129
@using MudBlazor
13-
@using MudBlazor.ThemeManager
10+
@using MudBlazor.ThemeManager
11+
@using MudBlazor.ThemeManager.TestApp
12+
@using MudBlazor.ThemeManager.TestApp.Shared

src/MudBlazor.ThemeManager/Components/MudThemeManager.razor.cs

Lines changed: 7 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
using Microsoft.AspNetCore.Components;
22
using MudBlazor.State;
33
using MudBlazor.ThemeManager.Extensions;
4+
using System.Diagnostics.CodeAnalysis;
45

56
namespace MudBlazor.ThemeManager;
67

@@ -11,9 +12,10 @@ public partial class MudThemeManager : ComponentBaseWithState
1112
private readonly ParameterState<bool> _openState;
1213
private readonly ParameterState<bool> _isDarkModeState;
1314

14-
private PaletteDark? _currentPaletteDark;
1515
private PaletteLight? _currentPaletteLight;
16+
private PaletteDark? _currentPaletteDark;
1617
private Palette _currentPalette;
18+
private MudTheme? _customTheme;
1719

1820
public MudThemeManager()
1921
{
@@ -27,8 +29,6 @@ public MudThemeManager()
2729
_currentPalette = GetPalette();
2830
}
2931

30-
public static MudTheme? _customTheme { get; set; }
31-
3232
public string ThemePresets { get; set; } = "Not Implemented";
3333

3434
[Parameter]
@@ -49,6 +49,7 @@ public MudThemeManager()
4949
[Parameter]
5050
public EventCallback<ThemeManagerTheme> ThemeChanged { get; set; }
5151

52+
[RequiresUnreferencedCode("JSON serialization and deserialization might require types that cannot be statically analyzed.")]
5253
protected override void OnInitialized()
5354
{
5455
base.OnInitialized();
@@ -69,12 +70,7 @@ public Task UpdatePalette(ThemeUpdatedValue value)
6970
{
7071
UpdateCustomTheme();
7172

72-
if (Theme is null)
73-
{
74-
return Task.CompletedTask;
75-
}
76-
77-
if (_customTheme is null)
73+
if (Theme is null || _customTheme is null)
7874
{
7975
return Task.CompletedTask;
8076
}
@@ -239,12 +235,7 @@ private Task OnDefaultBorderRadiusAsync(int value)
239235

240236
private Task OnDefaultElevationAsync(int value)
241237
{
242-
if (Theme is null)
243-
{
244-
return Task.CompletedTask;
245-
}
246-
247-
if (_customTheme is null)
238+
if (Theme is null || _customTheme is null)
248239
{
249240
return Task.CompletedTask;
250241
}
@@ -287,12 +278,7 @@ private Task OnDrawerElevationAsync(int value)
287278

288279
private Task OnFontFamilyAsync(string value)
289280
{
290-
if (Theme is null)
291-
{
292-
return Task.CompletedTask;
293-
}
294-
295-
if (_customTheme is null)
281+
if (Theme is null || _customTheme is null)
296282
{
297283
return Task.CompletedTask;
298284
}

src/MudBlazor.ThemeManager/Extensions/Extension.cs

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,19 +3,20 @@
33

44
namespace MudBlazor.ThemeManager.Extensions;
55

6-
public static class Extension
6+
internal static class Extension
77
{
8+
private static readonly JsonSerializerOptions JsonOptions = new();
9+
810
[RequiresUnreferencedCode("JSON serialization and deserialization might require types that cannot be statically analyzed.")]
911
public static T? DeepClone<T>(this T source)
1012
{
1113
if (source is not null)
1214
{
13-
var serializeStr = JsonSerializer.Serialize(source);
14-
JsonSerializerOptions options = new JsonSerializerOptions();
15-
var copyObj = JsonSerializer.Deserialize<T>(serializeStr, options);
15+
var serializeStr = JsonSerializer.Serialize(source, JsonOptions);
16+
var copyObj = JsonSerializer.Deserialize<T>(serializeStr, JsonOptions);
1617
return copyObj;
1718
}
1819

19-
return default(T);
20+
return default;
2021
}
2122
}
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
@using Microsoft.AspNetCore.Components.Web
2-
@using MudBlazor.ThemeManager
32
@using MudBlazor
4-
@using MudBlazor.Utilities
3+
@using MudBlazor.Utilities
4+
@using MudBlazor.ThemeManager

0 commit comments

Comments
 (0)