32 lines
850 B
C#
32 lines
850 B
C#
using Microsoft.JSInterop;
|
|
|
|
namespace TIAMWebApp.Client.Services
|
|
{
|
|
public class LocalStorageAccessor : IAsyncDisposable
|
|
{
|
|
private Lazy<IJSObjectReference> _accessorJsRef = new();
|
|
private readonly IJSRuntime _jsRuntime;
|
|
|
|
public LocalStorageAccessor(IJSRuntime jsRuntime)
|
|
{
|
|
_jsRuntime = jsRuntime;
|
|
}
|
|
|
|
private async Task WaitForReference()
|
|
{
|
|
if (_accessorJsRef.IsValueCreated is false)
|
|
{
|
|
_accessorJsRef = new(await _jsRuntime.InvokeAsync<IJSObjectReference>("import", "/js/LocalStorageAccessor.js"));
|
|
}
|
|
}
|
|
|
|
public async ValueTask DisposeAsync()
|
|
{
|
|
if (_accessorJsRef.IsValueCreated)
|
|
{
|
|
await _accessorJsRef.Value.DisposeAsync();
|
|
}
|
|
}
|
|
}
|
|
}
|