@implements IDisposable
@inject LocalizationService Loc
@code {
[Parameter] public EventCallback OnStep { get; set; }
[Parameter] public EventCallback OnRunToggle { get; set; } // true = start, false = stop
[Parameter] public EventCallback OnReset { get; set; }
[Parameter] public bool IsRunning { get; set; }
[Parameter] public int Speed { get; set; } = 500;
[Parameter] public EventCallback SpeedChanged { get; set; }
private async Task OnSpeedChange(ChangeEventArgs e)
{
if (int.TryParse(e.Value?.ToString(), out int value))
{
Speed = value;
await SpeedChanged.InvokeAsync(value);
}
}
private async Task ToggleRun()
{
await OnRunToggle.InvokeAsync(!IsRunning);
}
protected override void OnInitialized()
{
Loc.OnLanguageChanged += OnLanguageChanged;
}
private void OnLanguageChanged() => InvokeAsync(StateHasChanged);
public void Dispose()
{
Loc.OnLanguageChanged -= OnLanguageChanged;
}
}