using Microsoft.AspNetCore.Components.Web; using Microsoft.JSInterop; using System.Threading.Tasks; namespace cwebplusApp.Shared.Services { public class InputCursorHandler { private readonly IJSRuntime jsRuntime; public InputCursorHandler(IJSRuntime _jsRuntime) { this.jsRuntime = _jsRuntime; } public async Task OnKeyDownHandlerAsync(KeyboardEventArgs e) { var reference = DotNetObjectReference.Create(this); if (e.Key.Equals("Enter") || e.Key.Equals("ArrowRight")) { await jsRuntime.InvokeVoidAsync("MoveCursorToNextInput", reference, e.Key); return true; } else if (e.Key.Equals("ArrowLeft")) { await jsRuntime.InvokeVoidAsync("MoveCursorToPreviousInput", reference); return true; } return false; } public async Task OnConstrainedFieldKeyDownHandlerAsync(KeyboardEventArgs e) { if (!await OnKeyDownHandlerAsync(e)) { var reference = DotNetObjectReference.Create(this); await jsRuntime.InvokeVoidAsync("CheckConstrainedInput", reference, e.Key); } } } }