diff --git a/browser/main/NoteList/index.js b/browser/main/NoteList/index.js index f7dd07645..880f84790 100644 --- a/browser/main/NoteList/index.js +++ b/browser/main/NoteList/index.js @@ -80,6 +80,7 @@ class NoteList extends React.Component { this.getViewType = this.getViewType.bind(this) this.restoreNote = this.restoreNote.bind(this) this.copyNoteLink = this.copyNoteLink.bind(this) + this.navigate = this.navigate.bind(this) // TODO: not Selected noteKeys but SelectedNote(for reusing) this.state = { @@ -98,6 +99,7 @@ class NoteList extends React.Component { ee.on('list:isMarkdownNote', this.alertIfSnippetHandler) ee.on('import:file', this.importFromFileHandler) ee.on('list:jump', this.jumpNoteByHash) + ee.on('list:navigate', this.navigate) } componentWillReceiveProps (nextProps) { @@ -687,6 +689,16 @@ class NoteList extends React.Component { return copy(noteLink) } + navigate (sender, pathname) { + const { router } = this.context + router.push({ + pathname, + query: { + // key: noteKey + } + }) + } + save (note) { const { dispatch } = this.props dataApi diff --git a/lib/main-app.js b/lib/main-app.js index 1f3f13202..1ab9f4ca6 100644 --- a/lib/main-app.js +++ b/lib/main-app.js @@ -78,9 +78,11 @@ app.on('ready', function () { var template = require('./main-menu') var menu = Menu.buildFromTemplate(template) + var touchBarMenu = require('./touchbar-menu') switch (process.platform) { case 'darwin': Menu.setApplicationMenu(menu) + mainWindow.setTouchBar(touchBarMenu) break case 'win32': mainWindow.setMenu(menu) diff --git a/lib/touchbar-menu.js b/lib/touchbar-menu.js new file mode 100644 index 000000000..90a64410d --- /dev/null +++ b/lib/touchbar-menu.js @@ -0,0 +1,41 @@ +const {TouchBar} = require('electron') +const {TouchBarButton, TouchBarSpacer} = TouchBar +const mainWindow = require('./main-window') + +const allNotes = new TouchBarButton({ + label: '📒', + click: () => { + mainWindow.webContents.send('list:navigate', '/home') + } +}) + +const starredNotes = new TouchBarButton({ + label: '⭐️', + click: () => { + mainWindow.webContents.send('list:navigate', '/starred') + } +}) + +const trash = new TouchBarButton({ + label: '🗑', + click: () => { + mainWindow.webContents.send('list:navigate', '/trashed') + } +}) + +const newNote = new TouchBarButton({ + label: '✎', + click: () => { + mainWindow.webContents.send('list:navigate', '/home') + mainWindow.webContents.send('top:new-note') + } +}) + +module.exports = new TouchBar([ + allNotes, + starredNotes, + trash, + new TouchBarSpacer({size: 'small'}), + newNote +]) +