@using AyCode.Blazor.Components.Components
@using AyCode.Core.Helpers
@using TIAMWebApp.Shared.Application.Services
@inject GooglePlacesService GooglePlacesService
@if (Predictions.Count > 0)
{
}
else
{
No address found
}
@code {
[Parameter] public string NullText { get; set; }
[Parameter] public EventCallback AddressChanged { get; set; }
[Parameter] public string CssClass { get; set; }
private string Address { get; set; }
private List Predictions { get; set; } = new();
private PredictionItem selectedPrediction { get; set; }
public PredictionItem SelectedPrediction
{
get => selectedPrediction;
set
{
SetNewDestination(value.Description).Forget();
selectedPrediction = value;
}
}
public async Task SetNewDestination(string address)
{
await AddressChanged.InvokeAsync(address);
}
private async Task OnInputChanged(ChangeEventArgs e)
{
var input = Address;
if (!string.IsNullOrWhiteSpace(input))
{
var predictions = await GooglePlacesService.GetPlacePredictionsAsync(input);
Predictions = predictions.ConvertAll(p => new PredictionItem { Description = p });
SelectedPrediction = Predictions[0];
}
else
{
Predictions.Clear();
}
}
public class PredictionItem
{
public string Description { get; set; }
}
}