diff --git a/browser/main/HomePage/ArticleTopBar.js b/browser/main/HomePage/ArticleTopBar.js index c84c401d..cbca3079 100644 --- a/browser/main/HomePage/ArticleTopBar.js +++ b/browser/main/HomePage/ArticleTopBar.js @@ -1,7 +1,35 @@ import React, { PropTypes } from 'react' import ReactDOM from 'react-dom' import ExternalLink from 'browser/components/ExternalLink' -import { setSearchFilter, clearSearch, toggleOnlyUnsavedFilter, toggleTutorial } from '../actions' +import { setSearchFilter, clearSearch, toggleOnlyUnsavedFilter, toggleTutorial, saveAllArticles, switchArticle } from '../actions' +import store from '../store' + +const electron = require('electron') +const remote = electron.remote +const Menu = remote.Menu +const MenuItem = remote.MenuItem + +var menu = new Menu() +var lastIndex = -1 +menu.append(new MenuItem({ + label: 'Show only unsaved', + click: function () { + store.dispatch(setSearchFilter('--unsaved')) + } +})) +menu.append(new MenuItem({ + label: 'Go to an unsaved article', + click: function () { + lastIndex++ + let state = store.getState() + let modified = state.articles.modified + if (modified.length === 0) return + if (modified.length <= lastIndex) { + lastIndex = 0 + } + store.dispatch(switchArticle(modified[lastIndex].key)) + } +})) const BRAND_COLOR = '#18AF90' @@ -111,19 +139,28 @@ export default class ArticleTopBar extends React.Component { dispatch(toggleOnlyUnsavedFilter()) } + handleSaveAllButtonClick (e) { + let { dispatch } = this.props + + dispatch(saveAllArticles()) + } + + handleSaveMenuButtonClick (e) { + menu.popup(590, 45) + } + handleTutorialButtonClick (e) { let { dispatch } = this.props - console.log(e.target.value) dispatch(toggleTutorial()) } render () { - let { status } = this.props + let { status, modified } = this.props return (