123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- using Microsoft.JSInterop;
- using System;
- using System.Runtime.CompilerServices;
- using System.Threading.Tasks;
- namespace BlazorAceEditor
- {
- internal class AceEditorJsInterop : IAsyncDisposable
- {
- private readonly Lazy<Task<IJSObjectReference>> _aceModuleTask;
- public AceEditorJsInterop(IJSRuntime jsRuntime)
- {
- _aceModuleTask = new(() => jsRuntime.InvokeAsync<IJSObjectReference>(
- "import", "./js/blazorAceEditor.js").AsTask());
- }
- public async Task InvokeVoidP1(string elementId, object arg0, [CallerMemberName] string methodName = null)
- {
- var module = await _aceModuleTask.Value;
- await module.InvokeVoidAsync(methodName ?? throw new ArgumentNullException(nameof(methodName)), elementId, arg0);
- }
- public async Task InvokeVoid(string elementId, [CallerMemberName] string methodName = null)
- {
- var module = await _aceModuleTask.Value;
- await module.InvokeVoidAsync(methodName ?? throw new ArgumentNullException(nameof(methodName)), elementId);
- }
- public async ValueTask<T> Invoke<T>(string elementId, [CallerMemberName] string methodName = null)
- {
- var module = await _aceModuleTask.Value;
- return await module.InvokeAsync<T>(methodName ?? throw new ArgumentNullException(nameof(methodName)), elementId);
- }
- public async ValueTask<T> InvokeP1<T>(string elementId, object arg0, [CallerMemberName] string methodName = null)
- {
- var module = await _aceModuleTask.Value;
- return await module.InvokeAsync<T>(methodName ?? throw new ArgumentNullException(nameof(methodName)), elementId, arg0);
- }
- public async ValueTask DisposeAsync()
- {
- if (_aceModuleTask.IsValueCreated)
- {
- var module = await _aceModuleTask.Value;
- await module.DisposeAsync();
- }
- }
- }
- }
|