using Microsoft.AspNetCore.Components; using Microsoft.JSInterop; using System; using System.Threading.Tasks; namespace Oqtane.Shared { public class Interop { private readonly IJSRuntime jsRuntime; public Interop(IJSRuntime jsRuntime) { this.jsRuntime = jsRuntime; } public Task SetCookie(string name, string value, int days) { try { jsRuntime.InvokeAsync( "interop.setCookie", name, value, days); return Task.CompletedTask; } catch { return Task.CompletedTask; } } public ValueTask GetCookie(string name) { try { return jsRuntime.InvokeAsync( "interop.getCookie", name); } catch { return new ValueTask(Task.FromResult(string.Empty)); } } public Task IncludeCSS(string id, string url) { try { jsRuntime.InvokeAsync( "interop.includeCSS", id, url); return Task.CompletedTask; } catch { return Task.CompletedTask; } } public ValueTask GetElementByName(string name) { try { return jsRuntime.InvokeAsync( "interop.getElementByName", name); } catch { return new ValueTask(Task.FromResult(string.Empty)); } } public Task SubmitForm(string path, object fields) { try { jsRuntime.InvokeAsync( "interop.submitForm", path, fields); return Task.CompletedTask; } catch { return Task.CompletedTask; } } public ValueTask GetFiles(string id) { try { return jsRuntime.InvokeAsync( "interop.getFiles", id); } catch { return new ValueTask(Task.FromResult(new string[0])); } } public Task UploadFiles(string posturl, string folder, string id) { try { jsRuntime.InvokeAsync( "interop.uploadFiles", posturl, folder, id); return Task.CompletedTask; } catch { return Task.CompletedTask; } } } }