mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-12-15 23:53:38 +08:00
44 lines
1.3 KiB
TypeScript
44 lines
1.3 KiB
TypeScript
import {LexicalEditor} from "lexical";
|
|
import {
|
|
appendHtmlToEditor,
|
|
focusEditor,
|
|
insertHtmlIntoEditor,
|
|
prependHtmlToEditor,
|
|
setEditorContentFromHtml
|
|
} from "../utils/actions";
|
|
|
|
type EditorEventContent = {
|
|
html: string;
|
|
markdown: string;
|
|
};
|
|
|
|
function getContentToInsert(eventContent: EditorEventContent): string {
|
|
return eventContent.html || '';
|
|
}
|
|
|
|
export function listen(editor: LexicalEditor): void {
|
|
window.$events.listen<EditorEventContent>('editor::replace', eventContent => {
|
|
const html = getContentToInsert(eventContent);
|
|
setEditorContentFromHtml(editor, html);
|
|
});
|
|
|
|
window.$events.listen<EditorEventContent>('editor::append', eventContent => {
|
|
const html = getContentToInsert(eventContent);
|
|
appendHtmlToEditor(editor, html);
|
|
});
|
|
|
|
window.$events.listen<EditorEventContent>('editor::prepend', eventContent => {
|
|
const html = getContentToInsert(eventContent);
|
|
prependHtmlToEditor(editor, html);
|
|
});
|
|
|
|
window.$events.listen<EditorEventContent>('editor::insert', eventContent => {
|
|
const html = getContentToInsert(eventContent);
|
|
insertHtmlIntoEditor(editor, html);
|
|
});
|
|
|
|
window.$events.listen<EditorEventContent>('editor::focus', () => {
|
|
focusEditor(editor);
|
|
});
|
|
}
|