@using Microsoft.JSInterop
@implements IDisposable
@inject IJSRuntime JSRuntime
@Model?.Name
@code {
[Parameter, EditorRequired]
public NodeModel Model { get; set; } = null!;
[Parameter]
public EventCallback DoubleClick { get; set; }
[Parameter]
public EventCallback OnClick { get; set; }
[CascadingParameter]
protected bool MapIsActive { get; set; }
[Parameter]
public bool ShowName { get; set; }
private ElementReference circleRef;
private ElementReference textRef;
private ElementReference circleErrorRef;
protected override async Task OnAfterRenderAsync(bool firstRender)
{
await base.OnAfterRenderAsync(firstRender);
if (!firstRender) return;
await UpdatePosition(Model.X, Model.Y);
await JSRuntime.InvokeVoidAsync("ElementSetAttribute", circleErrorRef, "visibility", "hidden");
}
private async Task UpdatePosition(double x, double y)
{
await JSRuntime.InvokeVoidAsync("SetNodePosition", circleRef, textRef, x, y);
}
public void Dispose()
{
GC.SuppressFinalize(this);
}
}