utsushiiro 7 лет назад
Родитель
Сommit
be80b6bc4a
1 измененных файлов с 13 добавлено и 0 удалено
  1. 13 0
      src/client/js/components/PageEditor/HandsontableModal.jsx

+ 13 - 0
src/client/js/components/PageEditor/HandsontableModal.jsx

@@ -156,6 +156,8 @@ export default class HandsontableModal extends React.PureComponent {
   beforeColumnMoveHandler(columns, target) {
   beforeColumnMoveHandler(columns, target) {
     // clear 'manuallyResizedColumnIndicesSet'
     // clear 'manuallyResizedColumnIndicesSet'
     this.manuallyResizedColumnIndicesSet.clear();
     this.manuallyResizedColumnIndicesSet.clear();
+
+    this.refs.hotTable.hotInstance.getPlugin('manualColumnMove').persistentStateSave();
   }
   }
 
 
   beforeColumnResizeHandler(currentColumn) {
   beforeColumnResizeHandler(currentColumn) {
@@ -194,6 +196,11 @@ export default class HandsontableModal extends React.PureComponent {
     return Math.max(80, Math.min(400, width));
     return Math.max(80, Math.min(400, width));
   }
   }
 
 
+  beforeRowMoveHandler() {
+    this.refs.hotTable.hotInstance.getPlugin('manualRowMove').persistentStateSave();
+  }
+
+  //FIXME: modify the highlight area after moving
   afterColumnMoveHandler(columns, target) {
   afterColumnMoveHandler(columns, target) {
     const newData = this.refs.hotTable.hotInstance.getData();
     const newData = this.refs.hotTable.hotInstance.getData();
     const newAlign = [].concat(this.state.markdownTable.options.align);
     const newAlign = [].concat(this.state.markdownTable.options.align);
@@ -203,6 +210,8 @@ export default class HandsontableModal extends React.PureComponent {
 
 
     const markdownTable = new MarkdownTable(newData, {align: newAlign});
     const markdownTable = new MarkdownTable(newData, {align: newAlign});
 
 
+    this.refs.hotTable.hotInstance.getPlugin('manualColumnMove').persistentStateLoad();
+
     this.setState({
     this.setState({
       markdownTable: markdownTable
       markdownTable: markdownTable
     });
     });
@@ -213,6 +222,8 @@ export default class HandsontableModal extends React.PureComponent {
     const newAlign = [].concat(this.state.markdownTable.options.align);
     const newAlign = [].concat(this.state.markdownTable.options.align);
     const markdownTable = new MarkdownTable(newData, {align: newAlign});
     const markdownTable = new MarkdownTable(newData, {align: newAlign});
 
 
+    this.refs.hotTable.hotInstance.getPlugin('manualRowMove').persistentStateLoad();
+
     this.setState({
     this.setState({
       markdownTable: markdownTable
       markdownTable: markdownTable
     });
     });
@@ -351,6 +362,7 @@ export default class HandsontableModal extends React.PureComponent {
                 modifyColWidth={this.modifyColWidthHandler}
                 modifyColWidth={this.modifyColWidthHandler}
                 beforeColumnMove={this.beforeColumnMoveHandler}
                 beforeColumnMove={this.beforeColumnMoveHandler}
                 beforeColumnResize={this.beforeColumnResizeHandler}
                 beforeColumnResize={this.beforeColumnResizeHandler}
+                beforeRowMove={this.beforeRowMoveHandler}
                 afterColumnResize={this.afterColumnResizeHandler}
                 afterColumnResize={this.afterColumnResizeHandler}
                 afterColumnMove={this.afterColumnMoveHandler}
                 afterColumnMove={this.afterColumnMoveHandler}
                 afterRowMove={this.afterRowMoveHandler}
                 afterRowMove={this.afterRowMoveHandler}
@@ -393,6 +405,7 @@ export default class HandsontableModal extends React.PureComponent {
       manualColumnResize: true,
       manualColumnResize: true,
       selectionMode: 'multiple',
       selectionMode: 'multiple',
       outsideClickDeselects: false,
       outsideClickDeselects: false,
+      persistentState: true
     };
     };
   }
   }
 }
 }