]> BookStack Code Mirror - bookstack/blobdiff - resources/js/components/wysiwyg-editor.js
Fixed OIDC Logout
[bookstack] / resources / js / components / wysiwyg-editor.js
index f6ecb368a3df116973b321141538446f1c57bf68..21db207e6705451daf45d7a241210b63c1aa00be 100644 (file)
@@ -1,6 +1,7 @@
-import {build as buildEditorConfig} from "../wysiwyg/config";
+import {build as buildEditorConfig} from '../wysiwyg/config';
+import {Component} from './component';
 
-class WysiwygEditor {
+export class WysiwygEditor extends Component {
 
     setup() {
         this.elem = this.$el;
@@ -10,6 +11,7 @@ class WysiwygEditor {
         this.isDarkMode = document.documentElement.classList.contains('dark-mode');
 
         this.tinyMceConfig = buildEditorConfig({
+            language: this.$opts.language,
             containerElement: this.elem,
             darkMode: this.isDarkMode,
             textDirection: this.textDirection,
@@ -18,11 +20,14 @@ class WysiwygEditor {
             translations: {
                 imageUploadErrorText: this.$opts.imageUploadErrorText,
                 serverUploadLimitText: this.$opts.serverUploadLimitText,
-            }
+            },
+            translationMap: window.editor_translations,
         });
 
         window.$events.emitPublic(this.elem, 'editor-tinymce::pre-init', {config: this.tinyMceConfig});
-        window.tinymce.init(this.tinyMceConfig);
+        window.tinymce.init(this.tinyMceConfig).then(editors => {
+            this.editor = editors[0];
+        });
     }
 
     getDrawIoUrl() {
@@ -33,6 +38,15 @@ class WysiwygEditor {
         return '';
     }
 
-}
+    /**
+     * Get the content of this editor.
+     * Used by the parent page editor component.
+     * @return {{html: String}}
+     */
+    getContent() {
+        return {
+            html: this.editor.getContent(),
+        };
+    }
 
-export default WysiwygEditor;
+}