@inject IJSRuntime JS @inject State State
Share a picture
@if(File != null){ @File.ContentType (@formatSizeUnits(File.Size)) }
@code { private IBrowserFile? File { get; set; } private string Description { get; set; } private bool loading = false; [Parameter] public string id { get; set; } public async Task PostPic() { loading = true; await InvokeAsync(StateHasChanged); RestService api = new RestService(); PutPicResponseData? response = await api.PutPic(State.SelectedAddressName, File); if(!string.IsNullOrEmpty(Description) && response != null && !string.IsNullOrEmpty(response.Id)) { await api.PostPicDescription(State.SelectedAddressName, response.Id, Description); await State.RefreshPics(); await InvokeAsync(StateHasChanged); } await JS.InvokeVoidAsync("ui", "#" + id); // clear input File = null; Description = string.Empty; loading = false; await InvokeAsync(StateHasChanged); } private async Task ChangeFile(InputFileChangeEventArgs e){ File = e.File; } private string formatSizeUnits(long bytes){ string formatted = "0 bytes"; if (bytes >= 1073741824) { formatted = $"{(bytes / 1073741824):.##} GB"; } else if (bytes >= 1048576) { formatted = $"{(bytes / 1048576):.##} MB"; } else if (bytes >= 1024) { formatted = $"{(bytes / 1024):.##} KB"; } else if (bytes > 1) { formatted = $"{bytes} bytes"; } else if (bytes == 1) { formatted = $"{bytes} byte"; } return formatted; } }