@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; } }