diff --git a/browser/main/Detail/MarkdownNoteDetail.js b/browser/main/Detail/MarkdownNoteDetail.js index 8ea88b400..b9619c314 100644 --- a/browser/main/Detail/MarkdownNoteDetail.js +++ b/browser/main/Detail/MarkdownNoteDetail.js @@ -196,6 +196,10 @@ class MarkdownNoteDetail extends React.Component { } } + handleFullScreenButton (e) { + ee.emit('editor:fullscreen') + } + handleLockButtonMouseDown (e) { e.preventDefault() ee.emit('editor:lock') @@ -287,6 +291,11 @@ class MarkdownNoteDetail extends React.Component { + diff --git a/browser/main/Detail/MarkdownNoteDetail.styl b/browser/main/Detail/MarkdownNoteDetail.styl index 53a6a4e9c..17aedc354 100644 --- a/browser/main/Detail/MarkdownNoteDetail.styl +++ b/browser/main/Detail/MarkdownNoteDetail.styl @@ -31,6 +31,10 @@ float right topBarButtonLight() +.control-fullScreenButton + float right + topBarButtonLight() + .body absolute left right left $note-detail-left-margin @@ -55,3 +59,6 @@ body[data-theme="dark"] .control-trashButton topBarButtonDark() + + .control-fullScreenButton + topBarButtonDark() diff --git a/browser/main/Detail/SnippetNoteDetail.js b/browser/main/Detail/SnippetNoteDetail.js index 706cc2996..bb2f7158a 100644 --- a/browser/main/Detail/SnippetNoteDetail.js +++ b/browser/main/Detail/SnippetNoteDetail.js @@ -190,6 +190,10 @@ class SnippetNoteDetail extends React.Component { } } + handleFullScreenButton (e) { + ee.emit('editor:fullscreen') + } + handleTabPlusButtonClick (e) { this.addSnippet() } @@ -527,6 +531,11 @@ class SnippetNoteDetail extends React.Component { + diff --git a/browser/main/Detail/SnippetNoteDetail.styl b/browser/main/Detail/SnippetNoteDetail.styl index 2edf84795..eea20d90e 100644 --- a/browser/main/Detail/SnippetNoteDetail.styl +++ b/browser/main/Detail/SnippetNoteDetail.styl @@ -70,6 +70,10 @@ float right topBarButtonLight() +.control-fullScreenButton + float right + topBarButtonLight() + body[data-theme="dark"] .root border-color $ui-dark-borderColor @@ -102,3 +106,6 @@ body[data-theme="dark"] .control-trashButton topBarButtonDark() + + .control-fullScreenButton + topBarButtonDark() diff --git a/browser/main/Main.js b/browser/main/Main.js index abada90da..8075995ce 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,13 @@ class Main extends React.Component { isRightSliderFocused: false, listWidth: config.listWidth, navWidth: config.navWidth, - isLeftSliderFocused: false + isLeftSliderFocused: false, + fullScreen: false, + noteDetailWidth: 0, + mainBodyWidth: 0 } + + this.toggleFullScreen = () => this.handleFullScreenButton() } getChildContext () { @@ -66,11 +72,13 @@ class Main extends React.Component { } }) + eventEmitter.on('editor:fullscreen', this.toggleFullScreen) window.addEventListener('focus', focused) } componentWillUnmount () { window.removeEventListener('focus', focused) + eventEmitter.off('editor:fullscreen', this.toggleFullScreen) } handleLeftSlideMouseDown (e) { @@ -147,6 +155,31 @@ class Main extends React.Component { } } + handleFullScreenButton (e) { + this.setState({ fullScreen: !this.state.fullScreen }, () => { + const noteDetail = document.querySelector('.NoteDetail') + const mainBody = document.querySelector('#main-body') + + if (this.state.fullScreen) { + this.hideLeftLists(noteDetail, mainBody) + } else { + this.showLeftLists(noteDetail, mainBody) + } + }) + } + + hideLeftLists (noteDetail, mainBody) { + this.state.noteDetailWidth = noteDetail.style.left + this.state.mainBodyWidth = mainBody.style.left + noteDetail.style.left = '0px' + mainBody.style.left = '0px' + } + + showLeftLists (noteDetail, mainBody) { + noteDetail.style.left = this.state.noteDetailWidth + mainBody.style.left = this.state.mainBodyWidth + } + render () { let { config } = this.props @@ -176,6 +209,7 @@ class Main extends React.Component { }
diff --git a/browser/main/Main.styl b/browser/main/Main.styl index 29f21f04b..565059501 100644 --- a/browser/main/Main.styl +++ b/browser/main/Main.styl @@ -13,10 +13,12 @@ absolute top bottom top -2px width 0 + z-index 0 .slider-right @extend .slider width 1px + z-index 0 .slider--active @extend .slider