mirror of
https://github.com/BookStackApp/BookStack.git
synced 2024-12-11 20:54: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 "./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);
|
||
|
});
|
||
|
}
|