-
-
Notifications
You must be signed in to change notification settings - Fork 26
Expand file tree
/
Copy pathdarkModeToggle.html
More file actions
33 lines (29 loc) · 1.55 KB
/
darkModeToggle.html
File metadata and controls
33 lines (29 loc) · 1.55 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
<pre><code class="language-razor">@inject ThemeService ThemeService
@inject IPopoverService PopoverService
<LumexButton Variant="@Variant.Outlined"
Class="min-w-10 w-10 h-10 p-0"
OnClick="@TriggerAsync"
data-popoverref="@_dropdownId">
<LumexIcon Icon="@Icons.Rounded.DarkMode" Size="@new( "20" )" Class="hidden dark:block" />
<LumexIcon Icon="@Icons.Rounded.LightMode" Size="@new( "20" )" Class="dark:hidden" />
</LumexButton>
<LumexDropdown Id="@_dropdownId"
Placement="@PopoverPlacement.BottomEnd"
Class="min-w-32">
<LumexDropdownMenu Variant="@MenuVariant.Flat">
<LumexDropdownItem OnClick="@(async () => await ThemeService.SetThemeAsync( Theme.Light ))">
Light
</LumexDropdownItem>
<LumexDropdownItem OnClick="@(async () => await ThemeService.SetThemeAsync( Theme.Dark ))">
Dark
</LumexDropdownItem>
<LumexDropdownItem OnClick="@(async () => await ThemeService.SetThemeAsync( Theme.System ))">
System
</LumexDropdownItem>
</LumexDropdownMenu>
</LumexDropdown>
@code {
private string _dropdownId = "theme-toggle";
private Task TriggerAsync() => PopoverService.TriggerAsync( _dropdownId );
}
</code></pre>