ryohek 5 лет назад
Родитель
Сommit
4b685bbfc4

+ 2 - 1
src/client/js/components/PageEditor/CodeMirrorEditor.jsx

@@ -18,6 +18,7 @@ import PreventMarkdownListInterceptor from './PreventMarkdownListInterceptor';
 import MarkdownTableInterceptor from './MarkdownTableInterceptor';
 import mtu from './MarkdownTableUtil';
 import mdu from './MarkdownDrawioUtil';
+import geu from './GridEditorUtil';
 import GridEditModal from './GridEditModal';
 import HandsontableModal from './HandsontableModal';
 import EditorIcon from './EditorIcon';
@@ -867,7 +868,7 @@ export default class CodeMirrorEditor extends AbstractEditor {
 
         <GridEditModal
           ref={this.gridEditModal}
-          onSave={(grid) => { return mtu.replaceFocusedMarkdownTableWithEditor(this.getCodeMirror(), grid) }}
+          onSave={() => { return geu.replaceGridWithHtmlWithEditor(this.getCodeMirror()) }}
         />
         <HandsontableModal
           ref={this.handsontableModal}

+ 1 - 3
src/client/js/components/PageEditor/GridEditModal.jsx

@@ -33,10 +33,8 @@ export default class GridEditModal extends React.PureComponent {
   }
 
   pasteCodedGrid() {
-    // dummy data
-    const pasteCode = '<div class="container"><div class="row"><div class="col-sm-6 col-md-5 col-lg-12">dummy</div></div></div>';
     if (this.props.onSave != null) {
-      this.props.onSave(pasteCode);
+      this.props.onSave();
     }
     this.cancel();
   }

+ 24 - 0
src/client/js/components/PageEditor/GridEditorUtil.js

@@ -0,0 +1,24 @@
+/**
+ * Utility for grid editor
+ */
+class GridEditorUtil {
+
+  constructor() {
+    this.replaceGridWithHtmlWithEditor = this.replaceGridWithHtmlWithEditor.bind(this);
+  }
+
+  replaceGridWithHtmlWithEditor(editor) {
+    const curPos = editor.getCursor();
+    editor.getDoc().replaceRange(
+      '<div class="container"><div class="row"><div class="col-sm-6 col-md-5 col-lg-12">dummy</div></div></div>',
+      { line: editor.getDoc().getCursor().line, ch: editor.getDoc().getCursor().ch },
+    );
+    editor.getDoc().setCursor(curPos.line + 1, 2);
+  }
+
+}
+
+// singleton pattern
+const instance = new GridEditorUtil();
+Object.freeze(instance);
+export default instance;