@namespace OpenArchival.Blazor.FileViewer
@implements IFileViewer
@using Microsoft.JSInterop
@using MudBlazor
@using OpenArchival.DataAccess
@inject IJSRuntime JSRuntime;
@code {
[Parameter]
public required FilePathListing File { get; set; }
public int Height { get; private set; }
[Parameter]
public EventCallback OnHeightMeasured { get; set; }
private ElementReference _imageContainer;
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
try
{
await Task.Delay(50);
Height = await JSRuntime.InvokeAsync("centerImageAndGetHeight", _imageContainer);
if (Height > 0)
{
await OnHeightMeasured.InvokeAsync(Height);
}
}
catch (JSException ex)
{
Console.WriteLine($"[ERROR] JavaScript Interop failed: {ex.Message}");
}
}
}
}