From 79ed55a76f14a75b1f04833fd9ca81d6d67e3ac1 Mon Sep 17 00:00:00 2001 From: Kevin Nadro Date: Mon, 29 May 2017 00:30:41 -0500 Subject: [PATCH] reworking architecture of code --- browser/main/Detail/MarkdownNoteDetail.js | 25 ++-------------------- browser/main/Detail/SnippetNoteDetail.js | 25 ++-------------------- browser/main/Main.js | 26 ++++++++++++++++++++++- 3 files changed, 29 insertions(+), 47 deletions(-) diff --git a/browser/main/Detail/MarkdownNoteDetail.js b/browser/main/Detail/MarkdownNoteDetail.js index cc2a375e..b9619c31 100644 --- a/browser/main/Detail/MarkdownNoteDetail.js +++ b/browser/main/Detail/MarkdownNoteDetail.js @@ -30,10 +30,7 @@ class MarkdownNoteDetail extends React.Component { content: '' }, props.note), isLockButtonShown: false, - isLocked: false, - fullScreen: false, - widthOfNoteDetail: 0, - widthOfMainBody: 0 + isLocked: false } this.dispatchTimer = null @@ -200,25 +197,7 @@ class MarkdownNoteDetail extends React.Component { } handleFullScreenButton (e) { - this.setState({ fullScreen: !this.state.fullScreen }, () => { - const noteDetail = document.querySelector('.NoteDetail') - const mainBody = document.querySelector('#main-body') - const sliderRight = document.querySelector('#slider-right') - const sliderLeft = document.querySelector('#slider-left') - if (this.state.fullScreen) { - this.state.widthOfNoteDetail = noteDetail.style.left - this.state.widthOfMainBody = mainBody.style.left - noteDetail.style.left = '0px' - mainBody.style.left = '0px' - sliderRight.style.display = 'none' - sliderLeft.style.display = 'none' - } else { - noteDetail.style.left = this.state.widthOfNoteDetail - mainBody.style.left = this.state.widthOfMainBody - sliderRight.style.display = 'block' - sliderLeft.style.display = 'block' - } - }) + ee.emit('editor:fullscreen') } handleLockButtonMouseDown (e) { diff --git a/browser/main/Detail/SnippetNoteDetail.js b/browser/main/Detail/SnippetNoteDetail.js index 2c3d57d7..bb2f7158 100644 --- a/browser/main/Detail/SnippetNoteDetail.js +++ b/browser/main/Detail/SnippetNoteDetail.js @@ -48,10 +48,7 @@ class SnippetNoteDetail extends React.Component { description: '' }, props.note, { snippets: props.note.snippets.map((snippet) => Object.assign({}, snippet)) - }), - fullScreen: false, - widthOfNoteDetail: 0, - widthOfMainBody: 0 + }) } } @@ -194,25 +191,7 @@ class SnippetNoteDetail extends React.Component { } handleFullScreenButton (e) { - this.setState({ fullScreen: !this.state.fullScreen }, () => { - const noteDetail = document.querySelector('.NoteDetail') - const mainBody = document.querySelector('#main-body') - const sliderRight = document.querySelector('#slider-right') - const sliderLeft = document.querySelector('#slider-left') - if (this.state.fullScreen) { - this.state.widthOfNoteDetail = noteDetail.style.left - this.state.widthOfMainBody = mainBody.style.left - noteDetail.style.left = '0px' - mainBody.style.left = '0px' - sliderRight.style.display = 'none' - sliderLeft.style.display = 'none' - } else { - noteDetail.style.left = this.state.widthOfNoteDetail - mainBody.style.left = this.state.widthOfMainBody - sliderRight.style.display = 'block' - sliderLeft.style.display = 'block' - } - }) + ee.emit('editor:fullscreen') } handleTabPlusButtonClick (e) { diff --git a/browser/main/Main.js b/browser/main/Main.js index 9de6b8c0..9647e1ef 100644 --- a/browser/main/Main.js +++ b/browser/main/Main.js @@ -13,6 +13,7 @@ import modal from 'browser/main/lib/modal' import InitModal from 'browser/main/modals/InitModal' import mixpanel from 'browser/main/lib/mixpanel' import mobileAnalytics from 'browser/main/lib/awsMobileAnalyticsConfig' +import eventEmitter from 'browser/main/lib/eventEmitter' function focused () { mixpanel.track('MAIN_FOCUSED') @@ -30,8 +31,11 @@ class Main extends React.Component { isRightSliderFocused: false, listWidth: config.listWidth, navWidth: config.navWidth, - isLeftSliderFocused: false + isLeftSliderFocused: false, + fullScreen: false, } + + this.fullScreenEditorCode = () => this.handleFullScreenButton() } getChildContext () { @@ -66,11 +70,13 @@ class Main extends React.Component { } }) + eventEmitter.on('editor:fullscreen', this.fullScreenEditorCode) window.addEventListener('focus', focused) } componentWillUnmount () { window.removeEventListener('focus', focused) + eventEmitter.off('editor:fullscreen', this.fullScreenEditorCode) } handleLeftSlideMouseDown (e) { @@ -147,6 +153,24 @@ class Main extends React.Component { } } + handleFullScreenButton (e) { + this.setState({ fullScreen: !this.state.fullScreen }, () => { + const noteDetail = document.querySelector('.NoteDetail') + const mainBody = document.querySelector('#main-body') + const sliderRight = document.querySelector('#slider-right') + const sliderLeft = document.querySelector('#slider-left') + if (this.state.fullScreen) { + noteDetail.style.left = '0px' + mainBody.style.left = '0px' + sliderRight.style.display = 'none' + sliderLeft.style.display = 'none' + } else { + sliderRight.style.display = 'block' + sliderLeft.style.display = 'block' + } + }) + } + render () { let { config } = this.props