diff --git a/src/Components/CMDEd.tsx b/src/Components/CMDEd.tsx index 14dea64d60c7b2bcb63b38719b5296971dcf5b4c..73d3a06374b7a45aa371fd3e1e7ffc0ed87adfe4 100644 --- a/src/Components/CMDEd.tsx +++ b/src/Components/CMDEd.tsx @@ -74,7 +74,9 @@ export default class CMDEditor extends Component< * Callback used when new update received. */ private updateCallback() { + clearTimeout(this.timeoutGet); this.pullValue(); + this.setGetTimeout(); } /** @@ -156,7 +158,6 @@ export default class CMDEditor extends Component< return; } this.updateRGA(); - clearTimeout(this.timeoutGet); this.props.collection.pull(client.utils.ConsistencyLevel.None); let newValue = ""; this.props.session.transaction(client.utils.ConsistencyLevel.None, () => { @@ -168,7 +169,6 @@ export default class CMDEditor extends Component< if (diffs.length === 1 && diffs[0][0] === DiffMatchPatch.DIFF_EQUAL) { // Same value - this.setGetTimeout(); return; } @@ -189,7 +189,6 @@ export default class CMDEditor extends Component< [textarea.selectionStart, textarea.selectionEnd] = this.updateCursorPosition(diffs, cursorStart, cursorEnd); } - this.setGetTimeout(); } /** @@ -295,7 +294,7 @@ export default class CMDEditor extends Component< switchConnection(): void { this.setState({ isConnected: !this.state.isConnected }, () => { if (this.state.isConnected) { - this.pullValue(); + this.updateCallback(); } else { clearTimeout(this.timeoutPush); clearTimeout(this.timeoutGet);