@using MudBlazor @implements IDisposable @if (ViewModel != null) {
@ViewModel.ImageName
@if (ViewModel.IsPreviousImageEnabled) { Previous image } @(ViewModel.OriginalView ? "Show Analysis" : "Show Original")
@if (ViewModel.LearnButtonVisible) { Learn this } @if (ViewModel.IsNextImageEnabled) { Next image } Close
@{ var imageUri = ViewModel.ImageAnalysis?.ToBase64DataUri(); } @if (!string.IsNullOrEmpty(imageUri)) { @ViewModel.ImageName }
}
@code { [CascadingParameter] private IMudDialogInstance MudDialog { get; set; } = null!; [Parameter] public ErrorPreviewVM? ViewModel { get; set; } protected override void OnParametersSet() { if (ViewModel != null) ViewModel.PropertyChanged += OnPropertyChanged; } private async void OnPropertyChanged(object? sender, System.ComponentModel.PropertyChangedEventArgs e) { await InvokeAsync(StateHasChanged); } private void OnPrevious() => ViewModel?.PreviousImageCommand.Execute(null); private void OnNext() => ViewModel?.NextImageCommand.Execute(null); private void OnSwitchView() => ViewModel?.SwitchViewCommand.Execute(null); private async Task OnLearn() { if (ViewModel != null) await ViewModel.Learn(); } private void Close() => MudDialog.Close(); public void Dispose() { if (ViewModel != null) ViewModel.PropertyChanged -= OnPropertyChanged; } }