-
Notifications
You must be signed in to change notification settings - Fork 152
/
DynamicTabs.razor
56 lines (50 loc) · 1.33 KB
/
DynamicTabs.razor
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
<MCard>
<MTabs @bind-Value="_tabValue"
BackgroundColor="red lighten-2"
Dark>
@foreach (var tab in _tabs)
{
<MTab @key="tab" Value="tab">
<span>
Tab @tab
</span>
<MButton Icon OnClick="@(() => RemoveTab(tab))"
OnClickStopPropagation>
<MIcon>mdi-close</MIcon>
</MButton>
</MTab>
}
<MButton Icon Large Class="my-auto"
OnClick="AddNewTab">
<MIcon>mdi-plus</MIcon>
</MButton>
</MTabs>
<MCardText Class="text-center">
<MTabsItems Value="@_tabValue">
@foreach (var tab in _tabs)
{
<MTabItem @key="tab" Value="tab">
Tab @tab
</MTabItem>
}
</MTabsItems>
</MCardText>
</MCard>
@code {
private StringNumber _tabValue;
private List<int> _tabs = Enumerable.Range(1, 3).ToList();
private void AddNewTab()
{
var newTab = _tabs.Count > 0 ? _tabs.Max() + 1 : 1;
_tabs.Add(newTab);
_tabValue = newTab;
}
private void RemoveTab(int val)
{
_tabs.Remove(val);
if (_tabValue == val)
{
_tabValue = _tabs.LastOrDefault();
}
}
}