using Microsoft.AspNetCore.Components; using Microsoft.JSInterop; using System; using System.Threading.Tasks; namespace Oqtane.UI { public class Interop { private readonly IJSRuntime _jsRuntime; public Interop(IJSRuntime jsRuntime) { _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 UpdateTitle(string title) { try { _jsRuntime.InvokeAsync( "interop.updateTitle", title); return Task.CompletedTask; } catch { return Task.CompletedTask; } } public Task UpdateMeta(string id, string attribute, string name, string content) { try { _jsRuntime.InvokeAsync( "interop.updateMeta", id, attribute, name, content); return Task.CompletedTask; } catch { return Task.CompletedTask; } } public Task UpdateLink(string id, string rel, string type, string url) { try { _jsRuntime.InvokeAsync( "interop.updateLink", id, rel, type, url); return Task.CompletedTask; } catch { return Task.CompletedTask; } } public Task IncludeCSS(string id, string url) { try { _jsRuntime.InvokeAsync( "interop.updateLink", id, "stylesheet", "text/css", 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; } } } }