@namespace Oqtane.Modules.Controls @inherits ModuleBase @attribute [OqtaneIgnore] @inject IJSRuntime JsRuntime
@if (_filemanagervisible) { @((MarkupString)_message)
}
   @if (_filemanagervisible) { @((MarkupString)"  ") }
@if (ToolbarContent != null) { @ToolbarContent } else { }
@if (ReadOnly) { } else { }
@code { private ElementReference _editorElement; private ElementReference _toolBar; private bool _filemanagervisible = false; private FileManager _fileManager; private string _original = string.Empty; private string _content = string.Empty; private string _message = string.Empty; [Parameter] public string Content { get; set; } [Parameter] public bool ReadOnly { get; set; } = false; [Parameter] public string Placeholder { get; set; } = "Enter Your Content..."; // parameters only applicable to rich text editor [Parameter] public RenderFragment ToolbarContent { get; set; } [Parameter] public string Theme { get; set; } = "snow"; [Parameter] public string DebugLevel { get; set; } = "info"; protected override void OnInitialized() { _original = Content; _content = _original; if (string.IsNullOrEmpty(_content)) { _content = Placeholder; } } protected override async Task OnAfterRenderAsync(bool firstRender) { if (firstRender) { await RichTextEditorInterop.CreateEditor( JsRuntime, _editorElement, _toolBar, ReadOnly, Placeholder, Theme, DebugLevel); await RichTextEditorInterop.LoadEditorContent( JsRuntime, _editorElement, _original); } } public async Task GetText() { return await RichTextEditorInterop.GetText( JsRuntime, _editorElement); } public async Task GetHtml() { if (_original != _content) { // raw html content changed return _content; } else { // return rich text content return await RichTextEditorInterop.GetHtml( JsRuntime, _editorElement); } } public async Task GetContent() { return await RichTextEditorInterop.GetContent( JsRuntime, _editorElement); } public async Task EnableEditor(bool mode) { await RichTextEditorInterop.EnableEditor( JsRuntime, _editorElement, mode); } public async Task InsertImage() { if (_filemanagervisible) { var fileid = _fileManager.GetFileId(); if (fileid != -1) { await RichTextEditorInterop.InsertImage( JsRuntime, _editorElement, ContentUrl(fileid)); _filemanagervisible = false; _message = string.Empty; } else { _message = "
You Must Select An Image To Insert
"; } } else { _filemanagervisible = true; _message = string.Empty; } StateHasChanged(); } public void CloseFileManager() { _filemanagervisible = false; _message = string.Empty; StateHasChanged(); } public async Task RefreshRichText() { await RichTextEditorInterop.LoadEditorContent( JsRuntime, _editorElement, _content); } public async Task RefreshRawHtml() { _content = await RichTextEditorInterop.GetHtml( JsRuntime, _editorElement); StateHasChanged(); } }