@using salesbook.Shared.Components.Layout.Spinner @using salesbook.Shared.Core.Dto @using salesbook.Shared.Components.Layout.Overlay @using salesbook.Shared.Core.Interface.IntegryApi @inject IIntegryApiService IntegryApiService
Cerca indirizzo
@if (Loading) { } else { if (Addresses != null) { foreach (var address in Addresses) { @address.Description
} } else { } }
@code { [Parameter] public string Region { get; set; } [Parameter] public IndirizzoDTO Indirizzo { get; set; } [Parameter] public EventCallback IndirizzoChanged { get; set; } [Parameter] public bool IsSheetVisible { get; set; } [Parameter] public EventCallback IsSheetVisibleChanged { get; set; } private bool Loading { get; set; } private string? Address { get; set; } private List? Addresses { get; set; } private string? Uuid { get; set; } //Overlay for save private bool VisibleOverlay { get; set; } private bool SuccessAnimation { get; set; } protected override async Task OnParametersSetAsync() { if (IsSheetVisible) { Uuid = Guid.NewGuid().ToString(); Address = null; Addresses = null; } } private void CloseBottomSheet() { IsSheetVisible = false; IsSheetVisibleChanged.InvokeAsync(IsSheetVisible); } private async Task SearchAllAddress() { if (Address == null || Uuid == null) return; Loading = true; StateHasChanged(); Addresses = await IntegryApiService.AutoCompleteAddress(Address, Region, Uuid); Loading = false; StateHasChanged(); } private async Task OnSelectAddress(string placeId) { CloseBottomSheet(); VisibleOverlay = true; StateHasChanged(); try { Indirizzo = await IntegryApiService.PlaceDetails(placeId, Uuid); await IndirizzoChanged.InvokeAsync(Indirizzo); } catch (Exception e) { Snackbar.Configuration.PositionClass = Defaults.Classes.Position.TopCenter; Snackbar.Clear(); Snackbar.Add("Impossibile selezionare questo indirizzo", Severity.Error); } VisibleOverlay = false; StateHasChanged(); } }