Skip to content

Commit ca7a838

Browse files
authored
MudToggle (#11)
1 parent 22b22a6 commit ca7a838

File tree

2 files changed

+80
-0
lines changed

2 files changed

+80
-0
lines changed
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
@namespace MudExtensions
2+
@inherits MudComponentBase
3+
4+
<div class="@Classname" style="@GetStyle()">
5+
@if (Toggled && ToggleContent != null)
6+
{
7+
@ToggleContent
8+
}
9+
else
10+
{
11+
@ChildContent
12+
}
13+
</div>
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
using Microsoft.AspNetCore.Components;
2+
using MudBlazor;
3+
using MudBlazor.Utilities;
4+
using System;
5+
using System.Collections.Generic;
6+
using System.Linq;
7+
using System.Runtime.InteropServices;
8+
using System.Text;
9+
using System.Threading.Tasks;
10+
11+
namespace MudExtensions
12+
{
13+
public partial class MudToggle : MudComponentBase
14+
{
15+
16+
protected string Classname => new CssBuilder()
17+
.AddClass(Class, Toggled == false)
18+
.AddClass(ClassToggled, Toggled == true)
19+
.Build();
20+
21+
protected string GetStyle()
22+
{
23+
if (Toggled == false)
24+
{
25+
return Style;
26+
}
27+
else
28+
{
29+
return StyleToggled;
30+
}
31+
32+
}
33+
34+
35+
bool _toggled;
36+
[Parameter]
37+
public bool Toggled
38+
{
39+
get => _toggled;
40+
set
41+
{
42+
if (_toggled == value)
43+
{
44+
return;
45+
}
46+
_toggled = value;
47+
ToggledChanged.InvokeAsync().AndForget();
48+
}
49+
}
50+
51+
[Parameter]
52+
public EventCallback<bool> ToggledChanged { get; set; }
53+
54+
[Parameter]
55+
public string ClassToggled { get; set; }
56+
57+
[Parameter]
58+
public string StyleToggled { get; set; }
59+
60+
[Parameter]
61+
public RenderFragment ChildContent { get; set; }
62+
63+
[Parameter]
64+
public RenderFragment ToggleContent { get; set; }
65+
66+
}
67+
}

0 commit comments

Comments
 (0)