@using System.Linq.Expressions @using TIAMWebApp.Shared.Application.Interfaces @using TIAMWebApp.Shared.Application.Utility @using TIAM.Entities.TransferDestinations @inject LogToBrowserConsole logToBrowserConsole

Please type an address or swipe to select from preset destinations!

@code { [Parameter] public string OwlId { get; set; } [Parameter] public string TextValue { get; set; } = ""; int? InputDelay { get; set; } = 3500; BindValueMode BindValueMode { get; set; } = BindValueMode.OnDelayedInput; public int SliderElementId = 0; private string content = ""; string Content { get { return content; } set { content = value; OnTextChanged(value); } } [Parameter] public Expression> TExpression { get; set; } [Parameter] public EventCallback OnSliderChanged { get; set; } [Inject] public IJSRuntime JSRuntime { get; set; } [Inject] public ITransferDataService TransferDataService { get; set; } public List Destinations = new List(); public DxTextBox textField; TransferDestination Result; protected override void OnParametersSet() { logToBrowserConsole.LogToBC($"SliderItemSelector is initialized with OwlId: {OwlId}"); base.OnParametersSet(); } protected override void OnAfterRender(bool firstRender) { if(firstRender) { var dotNetObjRef = DotNetObjectReference.Create(this); JSRuntime.InvokeVoidAsync("setOwlId", OwlId); JSRuntime.InvokeVoidAsync("InitOwl", OwlId); JSRuntime.InvokeVoidAsync("CStoJSCall", dotNetObjRef); } } [JSInvokable] public void ShowCoordinates(string coordinates, string itemId) { logToBrowserConsole.LogToBC($"Slider is changing: {coordinates}, {itemId}"); //content = coordinates + "item = " + itemId; SliderElementId = Convert.ToInt32(itemId); if (SliderElementId > 0) { ParsePresetAddress(GetAddressFromSelectedSliderItem(SliderElementId)); } else { OnTextChanged(Content); } /*StateHasChanged();*/ } public void ParsePresetAddress(string address) { OnSliderChanged.InvokeAsync(address); } public void OnTextChanged(string text) { logToBrowserConsole.LogToBC($"Slider text changed: {text}"); OnSliderChanged.InvokeAsync(text); } public string GetAddressFromSelectedSliderItem(int SliderListIndex) { if(Destinations.Count >0 && Destinations.Count >= SliderListIndex) { return Destinations[SliderElementId-1].AddressString; } else return "Something wrong"; } protected override async Task OnInitializedAsync() { Destinations = await TransferDataService.GetDestinationsAsync(); Content = TextValue; } }