diff --git a/browser/main/Detail/FullscreenButton.js b/browser/main/Detail/FullscreenButton.js new file mode 100644 index 00000000..a0e8c790 --- /dev/null +++ b/browser/main/Detail/FullscreenButton.js @@ -0,0 +1,19 @@ +import PropTypes from 'prop-types' +import React from 'react' +import CSSModules from 'browser/lib/CSSModules' +import styles from './FullscreenButton.styl' + +const FullscreenButton = ({ + onClick +}) => ( + +) + +FullscreenButton.propTypes = { + onClick: PropTypes.func.isRequired +} + +export default CSSModules(FullscreenButton, styles) diff --git a/browser/main/Detail/FullscreenButton.styl b/browser/main/Detail/FullscreenButton.styl new file mode 100644 index 00000000..7cee4faa --- /dev/null +++ b/browser/main/Detail/FullscreenButton.styl @@ -0,0 +1,22 @@ +.control-fullScreenButton + top 80px + topBarButtonRight() + &:hover .tooltip + opacity 1 + +.tooltip + tooltip() + position absolute + pointer-events none + top 26px + right 0 + z-index 200 + padding 5px + line-height normal + border-radius 2px + opacity 0 + transition 0.1s + +body[data-theme="dark"] + .control-fullScreenButton + topBarButtonDark() \ No newline at end of file diff --git a/browser/main/Detail/InfoButton.js b/browser/main/Detail/InfoButton.js index 02d8dfe4..8a78ab4e 100644 --- a/browser/main/Detail/InfoButton.js +++ b/browser/main/Detail/InfoButton.js @@ -10,6 +10,7 @@ const InfoButton = ({ onClick={(e) => onClick(e)} > + Info ) diff --git a/browser/main/Detail/InfoButton.styl b/browser/main/Detail/InfoButton.styl index 9a2604df..a1c302f0 100644 --- a/browser/main/Detail/InfoButton.styl +++ b/browser/main/Detail/InfoButton.styl @@ -1,6 +1,21 @@ .control-infoButton top 10px topBarButtonRight() + &:hover .tooltip + opacity 1 + +.tooltip + tooltip() + position absolute + pointer-events none + top 26px + right 0 + z-index 200 + padding 5px + line-height normal + border-radius 2px + opacity 0 + transition 0.1s .infoButton padding 0px diff --git a/browser/main/Detail/MarkdownNoteDetail.js b/browser/main/Detail/MarkdownNoteDetail.js index 6b7b8fd4..37e3963d 100644 --- a/browser/main/Detail/MarkdownNoteDetail.js +++ b/browser/main/Detail/MarkdownNoteDetail.js @@ -18,8 +18,10 @@ import { findNoteTitle } from 'browser/lib/findNoteTitle' import AwsMobileAnalyticsConfig from 'browser/main/lib/AwsMobileAnalyticsConfig' import ConfigManager from 'browser/main/lib/ConfigManager' import TrashButton from './TrashButton' +import FullscreenButton from './FullscreenButton' import PermanentDeleteButton from './PermanentDeleteButton' import InfoButton from './InfoButton' +import ToggleModeButton from './ToggleModeButton' import InfoPanel from './InfoPanel' import InfoPanelTrashed from './InfoPanelTrashed' import { formatDate } from 'browser/lib/date-formatter' @@ -355,18 +357,9 @@ class MarkdownNoteDetail extends React.Component { onChange={(e) => this.handleChange(e)} /> -
-
this.handleSwitchMode('SPLIT')}> - -
-
this.handleSwitchMode('EDITOR_PREVIEW')}> - -
-
+ this.handleSwitchMode(e)} editorType={editorType} /> - +
this.handleFullScreenButton(e)} - > - - + this.handleFullScreenButton(e)} /> this.handleTrashButtonClick(e)} /> diff --git a/browser/main/Detail/MarkdownNoteDetail.styl b/browser/main/Detail/MarkdownNoteDetail.styl index 7032e36f..3357c6ef 100644 --- a/browser/main/Detail/MarkdownNoteDetail.styl +++ b/browser/main/Detail/MarkdownNoteDetail.styl @@ -19,10 +19,6 @@ top 40px position relative -.control-fullScreenButton - top 80px - topBarButtonRight() - .body absolute left right left 0 @@ -32,26 +28,6 @@ margin 0 45px .body-noteEditor absolute top bottom left right - -.mode-tab - border 1px solid #eee - height 34px - display flex - align-items center - div - width 40px - height 100% - background-color #f9f9f9 - display flex - align-items center - justify-content center - cursor pointer - &:first-child - border-right 1px solid #eee - .active - background-color #fff - box-shadow 2px 0px 7px #eee - z-index 1 body[data-theme="white"] .root diff --git a/browser/main/Detail/PermanentDeleteButton.js b/browser/main/Detail/PermanentDeleteButton.js index f0b10009..fd5c731b 100644 --- a/browser/main/Detail/PermanentDeleteButton.js +++ b/browser/main/Detail/PermanentDeleteButton.js @@ -10,6 +10,7 @@ const PermanentDeleteButton = ({ onClick={(e) => onClick(e)} > + Permanent Delete ) diff --git a/browser/main/Detail/SnippetNoteDetail.js b/browser/main/Detail/SnippetNoteDetail.js index bec6573b..f12f224d 100644 --- a/browser/main/Detail/SnippetNoteDetail.js +++ b/browser/main/Detail/SnippetNoteDetail.js @@ -634,7 +634,7 @@ class SnippetNoteDetail extends React.Component { isActive={note.isStarred} /> - diff --git a/browser/main/Detail/StarButton.js b/browser/main/Detail/StarButton.js index 0616a1e0..57ba79c8 100644 --- a/browser/main/Detail/StarButton.js +++ b/browser/main/Detail/StarButton.js @@ -46,14 +46,14 @@ class StarButton extends React.Component { onMouseDown={(e) => this.handleMouseDown(e)} onMouseUp={(e) => this.handleMouseUp(e)} onMouseLeave={(e) => this.handleMouseLeave(e)} - onClick={this.props.onClick} - > + onClick={this.props.onClick}> + Star ) } diff --git a/browser/main/Detail/StarButton.styl b/browser/main/Detail/StarButton.styl index 1e5bf239..647f3f23 100644 --- a/browser/main/Detail/StarButton.styl +++ b/browser/main/Detail/StarButton.styl @@ -4,6 +4,22 @@ &:hover transition 0.2s color alpha($ui-favorite-star-button-color, 0.6) + &:hover .tooltip + opacity 1 + +.tooltip + tooltip() + position absolute + pointer-events none + top 26px + right 0 + width 100% + z-index 200 + padding 5px + line-height normal + border-radius 2px + opacity 0 + transition 0.1s .root--active @extend .root diff --git a/browser/main/Detail/ToggleModeButton.js b/browser/main/Detail/ToggleModeButton.js new file mode 100644 index 00000000..5a78cc51 --- /dev/null +++ b/browser/main/Detail/ToggleModeButton.js @@ -0,0 +1,25 @@ +import PropTypes from 'prop-types' +import React from 'react' +import CSSModules from 'browser/lib/CSSModules' +import styles from './ToggleModeButton.styl' + +const ToggleModeButton = ({ + onClick, editorType +}) => ( +
+
onClick('SPLIT')}> + +
+
onClick('EDITOR_PREVIEW')}> + +
+ Toggle Mode +
+) + +ToggleModeButton.propTypes = { + onClick: PropTypes.func.isRequired, + editorType: PropTypes.string.Required +} + +export default CSSModules(ToggleModeButton, styles) diff --git a/browser/main/Detail/ToggleModeButton.styl b/browser/main/Detail/ToggleModeButton.styl new file mode 100644 index 00000000..de4303f2 --- /dev/null +++ b/browser/main/Detail/ToggleModeButton.styl @@ -0,0 +1,41 @@ +.control-toggleModeButton + + border 1px solid #eee + height 34px + display flex + align-items center + + div + width 40px + height 100% + background-color #f9f9f9 + display flex + align-items center + justify-content center + cursor pointer + + &:first-child + border-right 1px solid #eee + .active + background-color #fff + box-shadow 2px 0px 7px #eee + z-index 1 + &:hover .tooltip + opacity 1 + +.tooltip + tooltip() + position absolute + pointer-events none + top 47px + right 11px + z-index 200 + padding 5px + line-height normal + border-radius 2px + opacity 0 + transition 0.1s + +body[data-theme="dark"] + .control-fullScreenButton + topBarButtonDark() \ No newline at end of file diff --git a/browser/main/Detail/TrashButton.js b/browser/main/Detail/TrashButton.js index bfaafe1e..474eb9e5 100644 --- a/browser/main/Detail/TrashButton.js +++ b/browser/main/Detail/TrashButton.js @@ -10,6 +10,7 @@ const TrashButton = ({ onClick={(e) => onClick(e)} > + Trash ) diff --git a/browser/main/Detail/TrashButton.styl b/browser/main/Detail/TrashButton.styl index 0acd60a5..455d36a6 100644 --- a/browser/main/Detail/TrashButton.styl +++ b/browser/main/Detail/TrashButton.styl @@ -1,6 +1,21 @@ .control-trashButton top 115px topBarButtonRight() + &:hover .tooltip + opacity 1 + +.tooltip + tooltip() + position absolute + pointer-events none + top 26px + right 0 + z-index 200 + padding 5px + line-height normal + border-radius 2px + opacity 0 + transition 0.1s .control-trashButton--in-trash top 60px diff --git a/browser/main/SideNav/ListButton.js b/browser/main/SideNav/ListButton.js new file mode 100644 index 00000000..1365c4cb --- /dev/null +++ b/browser/main/SideNav/ListButton.js @@ -0,0 +1,24 @@ +import PropTypes from 'prop-types' +import React from 'react' +import CSSModules from 'browser/lib/CSSModules' +import styles from './SwitchButton.styl' + +const ListButton = ({ + onClick, isTagActive +}) => ( + +) + +ListButton.propTypes = { + onClick: PropTypes.func.isRequired, + isTagActive: PropTypes.bool.isRequired +} + +export default CSSModules(ListButton, styles) diff --git a/browser/main/SideNav/PreferenceButton.js b/browser/main/SideNav/PreferenceButton.js new file mode 100644 index 00000000..9f483a28 --- /dev/null +++ b/browser/main/SideNav/PreferenceButton.js @@ -0,0 +1,19 @@ +import PropTypes from 'prop-types' +import React from 'react' +import CSSModules from 'browser/lib/CSSModules' +import styles from './PreferenceButton.styl' + +const PreferenceButton = ({ + onClick +}) => ( + +) + +PreferenceButton.propTypes = { + onClick: PropTypes.func.isRequired +} + +export default CSSModules(PreferenceButton, styles) diff --git a/browser/main/SideNav/PreferenceButton.styl b/browser/main/SideNav/PreferenceButton.styl new file mode 100644 index 00000000..97a48982 --- /dev/null +++ b/browser/main/SideNav/PreferenceButton.styl @@ -0,0 +1,51 @@ +.top-menu-preference + navButtonColor() + position absolute + top 22px + right 10px + width 2em + background-color transparent + &:hover + color $ui-button-default--active-backgroundColor + background-color transparent + .tooltip + opacity 1 + &:active, &:active:hover + color $ui-button-default--active-backgroundColor + +body[data-theme="white"] + .top-menu-preference + navWhiteButtonColor() + background-color transparent + &:hover + color #0B99F1 + background-color transparent + &:active, &:active:hover + color #0B99F1 + background-color transparent + +body[data-theme="dark"] + .top-menu-preference + navDarkButtonColor() + background-color transparent + &:active + background-color alpha($ui-dark-button--active-backgroundColor, 20%) + background-color transparent + &:hover + background-color alpha($ui-dark-button--active-backgroundColor, 20%) + background-color transparent + + + +.tooltip + tooltip() + position absolute + pointer-events none + top 26px + left -20px + z-index 200 + padding 5px + line-height normal + border-radius 2px + opacity 0 + transition 0.1s \ No newline at end of file diff --git a/browser/main/SideNav/SideNav.styl b/browser/main/SideNav/SideNav.styl index 474b1af3..a0ffb2e7 100644 --- a/browser/main/SideNav/SideNav.styl +++ b/browser/main/SideNav/SideNav.styl @@ -11,19 +11,6 @@ .top padding-bottom 15px -.top-menu-preference - navButtonColor() - position absolute - top 22px - right 10px - width 2em - background-color transparent - &:hover - color $ui-button-default--active-backgroundColor - background-color transparent - &:active, &:active:hover - color $ui-button-default--active-backgroundColor - .switch-buttons background-color transparent border 0 @@ -31,21 +18,7 @@ display flex text-align center -.non-active-button - color $ui-inactive-text-color - font-size 16px - border 0 - background-color transparent - transition 0.2s - display flex - text-align center - margin-right 4px; - &:hover - color alpha(#239F86, 60%) -.active-button - @extend .non-active-button - color $ui-button-default--active-backgroundColor .top-menu-label margin-left 5px @@ -109,33 +82,6 @@ body[data-theme="white"] background-color #f9f9f9 color $ui-text-color - .top-menu-preference - navWhiteButtonColor() - background-color transparent - &:hover - color #0B99F1 - background-color transparent - &:active, &:active:hover - color #0B99F1 - background-color transparent - - .non-active-button - color $ui-inactive-text-color - &:hover - color alpha(#0B99F1, 60%) - - .tag-title - p - color $ui-text-color - - .non-active-button - &:hover - color alpha(#0B99F1, 60%) - - .active-button - @extend .non-active-button - color #0B99F1 - body[data-theme="dark"] .root, .root--folded border-right 1px solid $ui-dark-borderColor @@ -145,25 +91,6 @@ body[data-theme="dark"] .top border-color $ui-dark-borderColor - .top-menu-preference - navDarkButtonColor() - background-color transparent - &:active - background-color alpha($ui-dark-button--active-backgroundColor, 20%) - background-color transparent - &:hover - background-color alpha($ui-dark-button--active-backgroundColor, 20%) - background-color transparent - - .non-active-button - color alpha($ui-dark-text-color, 60%) - &:hover - color alpha(#0B99F1, 60%) - - .tag-title - p - color alpha($ui-dark-text-color, 60%) - body[data-theme="solarized-dark"] .root, .root--folded background-color $ui-solarized-dark-backgroundColor diff --git a/browser/main/SideNav/SwitchButton.styl b/browser/main/SideNav/SwitchButton.styl new file mode 100644 index 00000000..54e21b03 --- /dev/null +++ b/browser/main/SideNav/SwitchButton.styl @@ -0,0 +1,59 @@ +.non-active-button + color $ui-inactive-text-color + font-size 16px + border 0 + background-color transparent + transition 0.2s + display flex + text-align center + margin-right 4px + position relative + &:hover + color alpha(#239F86, 60%) + .tooltip + opacity 1 + +.active-button + @extend .non-active-button + color $ui-button-default--active-backgroundColor + +.tooltip + tooltip() + position absolute + pointer-events none + top 22px + left -2px + z-index 200 + padding 5px + line-height normal + border-radius 2px + opacity 0 + transition 0.1s + +body[data-theme="white"] + .non-active-button + color $ui-inactive-text-color + &:hover + color alpha(#0B99F1, 60%) + + .tag-title + p + color $ui-text-color + + .non-active-button + &:hover + color alpha(#0B99F1, 60%) + + .active-button + @extend .non-active-button + color #0B99F1 + +body[data-theme="dark"] + .non-active-button + color alpha($ui-dark-text-color, 60%) + &:hover + color alpha(#0B99F1, 60%) + + .tag-title + p + color alpha($ui-dark-text-color, 60%) \ No newline at end of file diff --git a/browser/main/SideNav/TagButton.js b/browser/main/SideNav/TagButton.js new file mode 100644 index 00000000..87d92c49 --- /dev/null +++ b/browser/main/SideNav/TagButton.js @@ -0,0 +1,24 @@ +import PropTypes from 'prop-types' +import React from 'react' +import CSSModules from 'browser/lib/CSSModules' +import styles from './SwitchButton.styl' + +const TagButton = ({ + onClick, isTagActive +}) => ( + +) + +TagButton.propTypes = { + onClick: PropTypes.func.isRequired, + isTagActive: PropTypes.bool.isRequired +} + +export default CSSModules(TagButton, styles) diff --git a/browser/main/SideNav/index.js b/browser/main/SideNav/index.js index 05361ea4..4c162f1e 100644 --- a/browser/main/SideNav/index.js +++ b/browser/main/SideNav/index.js @@ -11,6 +11,9 @@ import SideNavFilter from 'browser/components/SideNavFilter' import StorageList from 'browser/components/StorageList' import NavToggleButton from 'browser/components/NavToggleButton' import EventEmitter from 'browser/main/lib/eventEmitter' +import PreferenceButton from './PreferenceButton' +import ListButton from './ListButton' +import TagButton from './TagButton' class SideNav extends React.Component { // TODO: should not use electron stuff v0.7 @@ -162,27 +165,11 @@ class SideNav extends React.Component { >
- - + +
- +
{this.SideNavComponent(isFolded, storageList)}