-
Notifications
You must be signed in to change notification settings - Fork 101
Expand file tree
/
Copy pathWatchExample1.razor
More file actions
80 lines (75 loc) · 3.76 KB
/
WatchExample1.razor
File metadata and controls
80 lines (75 loc) · 3.76 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
@namespace MudExtensions.Docs.Examples
@inject ISnackbar Snackbar
@using MudBlazor.Extensions
@using MudExtensions.Utilities
<MudGrid>
<MudItem xs="12" sm="8">
<MudStack Class="mud-width-full" AlignItems="AlignItems.Center">
<MudWatch @ref="_watch" Interval="TimeSpan.FromMilliseconds(1)" Mode="_watchMode" LapRecords="_lapRecords" LapRecordsChanged="@(() => Snackbar.Add("Lap updated."))"
Wheel="_wheel" ShowHour="_showHour" ShowMinute="_showMinute" ShowSecond="_showSecond" ShowMillisecond="_showMillisecond"
Delimiter="@_delimiter" Typo="_typo" TypoMillisecond="_typoMillisecond" Color="_color" CountdownCompleted="@(() => Snackbar.Add("Completed"))" />
<MudStack Row="true">
<MudButton OnClick="@(() => _watch.Start())">Start</MudButton>
<MudButton OnClick="@(() => _watch.Stop())">Stop</MudButton>
<MudButton OnClick="@(() => _watch.Lap())">Lap</MudButton>
<MudButton OnClick="@(() => _watch.Reset())">Reset</MudButton>
</MudStack>
@for (int i = 0; i < _lapRecords.Count(); i++)
{
int a = i;
<MudText>@($"Lap {a + 1}: Total Time: {_lapRecords[a].TotalTime.ToString(@"mm\:ss\:fff")} - Gap: {_lapRecords[a].Gap.ToString(@"ss\:fff")}")</MudText>
}
</MudStack>
</MudItem>
<MudItem xs="12" sm="4">
<MudStack Spacing="4">
<MudSelect @bind-Value="_watchMode" Variant="Variant.Outlined" Label="watch Mode">
@foreach (WatchMode item in Enum.GetValues<WatchMode>())
{
<MudSelectItem Value="item">@item.ToDescriptionString()</MudSelectItem>
}
</MudSelect>
<MudSwitchM3 @bind-Value="_wheel" Color="Color.Secondary" Label="Wheel" />
<div class="d-flex flex-wrap gap-4">
<MudSwitchM3 @bind-Value="_showHour" Color="Color.Secondary" Label="Show Hour" />
<MudSwitchM3 @bind-Value="_showMinute" Color="Color.Secondary" Label="Show Minute" />
<MudSwitchM3 @bind-Value="_showSecond" Color="Color.Secondary" Label="Show Second" />
<MudSwitchM3 @bind-Value="_showMillisecond" Color="Color.Secondary" Label="Show Millisecond" />
</div>
<MudTextField @bind-Value="_delimiter" Variant="Variant.Outlined" Label="Delimiter" />
<MudSelect @bind-Value="_typo" Variant="Variant.Outlined" Label="Typo">
@foreach (Typo item in Enum.GetValues<Typo>())
{
<MudSelectItem Value="item">@item.ToDescriptionString()</MudSelectItem>
}
</MudSelect>
<MudSelect @bind-Value="_typoMillisecond" Variant="Variant.Outlined" Label="Typo Millisecond">
@foreach (Typo item in Enum.GetValues<Typo>())
{
<MudSelectItem Value="item">@item.ToDescriptionString()</MudSelectItem>
}
</MudSelect>
<MudSelect @bind-Value="_color" Variant="Variant.Outlined" Label="Color">
@foreach (Color item in Enum.GetValues<Color>())
{
<MudSelectItem Value="item">@item.ToDescriptionString()</MudSelectItem>
}
</MudSelect>
</MudStack>
</MudItem>
</MudGrid>
@code {
MudWatch _watch = new();
WatchMode _watchMode = WatchMode.Watch;
bool _wheel;
bool _showHour = true;
bool _showMinute = true;
bool _showSecond = true;
bool _showMillisecond = false;
string _delimiter = ":";
Typo _typo = Typo.h6;
Typo _typoMillisecond = Typo.h6;
Color _color;
List<LapRecord> _lapRecords = new();
TimeSpan _value = new TimeSpan(0, 0, 0);
}