@namespace Oqtane.Modules.Controls
@inherits ModuleBase
@inject IJSRuntime JSRuntime
@if (filemanagervisible)
{
@((MarkupString)@message)
}
@ToolbarContent
@code {
[Parameter]
public RenderFragment ToolbarContent { get; set; }
[Parameter]
public bool ReadOnly { get; set; } = false;
[Parameter]
public string Placeholder { get; set; } = "Enter Your Content...";
[Parameter]
public string Theme { get; set; } = "snow";
[Parameter]
public string DebugLevel { get; set; } = "info";
private ElementReference EditorElement;
private ElementReference ToolBar;
bool filemanagervisible = false;
FileManager filemanager;
string message = "";
protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
await RichTextEditorInterop.CreateEditor(
JSRuntime,
EditorElement,
ToolBar,
ReadOnly,
Placeholder,
Theme,
DebugLevel);
}
}
public async Task GetText()
{
return await RichTextEditorInterop.GetText(
JSRuntime,
EditorElement);
}
public async Task GetHTML()
{
return await RichTextEditorInterop.GetHTML(
JSRuntime,
EditorElement);
}
public async Task GetContent()
{
return await RichTextEditorInterop.GetContent(
JSRuntime,
EditorElement);
}
public async Task LoadContent(string Content)
{
await RichTextEditorInterop.LoadEditorContent(
JSRuntime,
EditorElement, Content);
}
public async Task EnableEditor(bool mode)
{
await RichTextEditorInterop.EnableEditor(
JSRuntime,
EditorElement, mode);
}
public async Task InsertImage()
{
if (filemanagervisible)
{
int fileid = filemanager.GetFileId();
if (fileid != -1)
{
await RichTextEditorInterop.InsertImage(
JSRuntime,
EditorElement, ContentUrl(fileid));
filemanagervisible = false;
message = "";
}
else
{
message = "
You Must Select An Image To Insert
";
}
}
else
{
filemanagervisible = true;
message = "";
}
StateHasChanged();
}
}