From 6206acfad09313e4578dec7d981b298583bc7346 Mon Sep 17 00:00:00 2001 From: Jori Lallo Date: Fri, 3 Jun 2016 00:28:36 -0700 Subject: [PATCH] Fix preview toggling issues with CodeMirror --- src/scenes/DocumentEdit/DocumentEdit.js | 8 +++++++- src/scenes/DocumentEdit/DocumentEditState.js | 4 ++-- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/scenes/DocumentEdit/DocumentEdit.js b/src/scenes/DocumentEdit/DocumentEdit.js index e4fecf21e..51d862d66 100644 --- a/src/scenes/DocumentEdit/DocumentEdit.js +++ b/src/scenes/DocumentEdit/DocumentEdit.js @@ -42,6 +42,12 @@ class DocumentEdit extends Component { }) } + onPreviewToggle = () => { + // Force re-render to fix issues with + // Codemirror cursor (gets out of sync) + state.togglePreview(this.forceUpdate()); + } + render() { let title = ( </HeaderAction> <DropdownMenu label="More"> - <MenuItem onClick={ state.togglePreview }> + <MenuItem onClick={ this.onPreviewToggle }> Preview <Switch checked={ state.preview } /> </MenuItem> </DropdownMenu> diff --git a/src/scenes/DocumentEdit/DocumentEditState.js b/src/scenes/DocumentEdit/DocumentEditState.js index 2accd4752..e1351d8ab 100644 --- a/src/scenes/DocumentEdit/DocumentEditState.js +++ b/src/scenes/DocumentEdit/DocumentEditState.js @@ -83,9 +83,9 @@ const documentEditState = new class DocumentEditState { this.text = this.text.replace(args.original, args.new); } - @action togglePreview = () => { - console.log('toggle') + @action togglePreview = (callback) => { this.preview = !this.preview; + callback(); } constructor() {