From 0a42b0f61ff74037a2536a72daaf9fc6265d887f Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Sat, 30 Jun 2018 16:08:13 +0900 Subject: [PATCH 1/7] use context.popup on NoteList --- browser/main/NoteList/index.js | 37 ++++++++++++++++------------------ 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/browser/main/NoteList/index.js b/browser/main/NoteList/index.js index 3626130d..bcba23cc 100644 --- a/browser/main/NoteList/index.js +++ b/browser/main/NoteList/index.js @@ -21,6 +21,7 @@ import AwsMobileAnalyticsConfig from 'browser/main/lib/AwsMobileAnalyticsConfig' import Markdown from '../../lib/markdown' import i18n from 'browser/lib/i18n' import { confirmDeleteNote } from 'browser/lib/confirmDeleteNote' +import context from 'browser/lib/context' const { remote } = require('electron') const { Menu, MenuItem, dialog } = remote @@ -491,55 +492,51 @@ class NoteList extends React.Component { const updateLabel = i18n.__('Update Blog') const openBlogLabel = i18n.__('Open Blog') - const menu = new Menu() + const templates = [] if (location.pathname.match(/\/trash/)) { - menu.append(new MenuItem({ + templates.push({ label: restoreNote, click: this.restoreNote - })) - menu.append(new MenuItem({ + }, { label: deleteLabel, click: this.deleteNote - })) + }) } else { if (!location.pathname.match(/\/starred/)) { - menu.append(new MenuItem({ + templates.push({ label: pinLabel, click: this.pinToTop - })) + }) } - menu.append(new MenuItem({ + templates.push({ label: deleteLabel, click: this.deleteNote - })) - menu.append(new MenuItem({ + }, { label: cloneNote, click: this.cloneNote.bind(this) - })) - menu.append(new MenuItem({ + }, { label: copyNoteLink, click: this.copyNoteLink(note) - })) + }) if (note.type === 'MARKDOWN_NOTE') { if (note.blog && note.blog.blogLink && note.blog.blogId) { - menu.append(new MenuItem({ + templates.push({ label: updateLabel, click: this.publishMarkdown.bind(this) - })) - menu.append(new MenuItem({ + }, { label: openBlogLabel, click: () => this.openBlog.bind(this)(note) - })) + }) } else { - menu.append(new MenuItem({ + templates.push({ label: publishLabel, click: this.publishMarkdown.bind(this) - })) + }) } } } - menu.popup() + context.popup(templates) } updateSelectedNotes (updateFunc, cleanSelection = true) { From 64407e5ca63797cf063110e4d21bae62b5228ffb Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Sat, 30 Jun 2018 16:12:23 +0900 Subject: [PATCH 2/7] use context.popup on SnippetNoteDetai; --- browser/main/Detail/SnippetNoteDetail.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/browser/main/Detail/SnippetNoteDetail.js b/browser/main/Detail/SnippetNoteDetail.js index c65f1425..75be4798 100644 --- a/browser/main/Detail/SnippetNoteDetail.js +++ b/browser/main/Detail/SnippetNoteDetail.js @@ -32,7 +32,7 @@ import { confirmDeleteNote } from 'browser/lib/confirmDeleteNote' const electron = require('electron') const { remote } = electron -const { Menu, MenuItem, dialog } = remote +const { dialog } = remote class SnippetNoteDetail extends React.Component { constructor (props) { @@ -451,14 +451,14 @@ class SnippetNoteDetail extends React.Component { } handleModeButtonClick (e, index) { - const menu = new Menu() + const templetes = [] CodeMirror.modeInfo.sort(function (a, b) { return a.name.localeCompare(b.name) }).forEach((mode) => { - menu.append(new MenuItem({ + templetes.push({ label: mode.name, click: (e) => this.handleModeOptionClick(index, mode.name)(e) - })) + }) }) - menu.popup(remote.getCurrentWindow()) + context.popup(templetes) } handleIndentTypeButtonClick (e) { From f6afc756dc056f982fb65748e9c3d3286380af8d Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Sat, 30 Jun 2018 16:16:18 +0900 Subject: [PATCH 3/7] use context.popup on SnippetList --- browser/main/modals/PreferencesModal/SnippetList.js | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/browser/main/modals/PreferencesModal/SnippetList.js b/browser/main/modals/PreferencesModal/SnippetList.js index 3cf28cf6..fa18cda0 100644 --- a/browser/main/modals/PreferencesModal/SnippetList.js +++ b/browser/main/modals/PreferencesModal/SnippetList.js @@ -4,8 +4,7 @@ import CSSModules from 'browser/lib/CSSModules' import dataApi from 'browser/main/lib/dataApi' import i18n from 'browser/lib/i18n' import eventEmitter from 'browser/main/lib/eventEmitter' -const { remote } = require('electron') -const { Menu, MenuItem } = remote +import context from 'browser/lib/context' class SnippetList extends React.Component { constructor (props) { @@ -25,14 +24,10 @@ class SnippetList extends React.Component { } handleSnippetContextMenu (snippet) { - const menu = new Menu() - menu.append(new MenuItem({ + context.popup([{ label: i18n.__('Delete snippet'), - click: () => { - this.deleteSnippet(snippet) - } - })) - menu.popup() + click: () => this.deleteSnippet(snippet) + }]) } deleteSnippet (snippet) { From 294c3f10ab21a1616e75b1103ddb91a9ab367637 Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Sat, 30 Jun 2018 16:21:35 +0900 Subject: [PATCH 4/7] use context.popup on StorageItem --- browser/main/SideNav/StorageItem.js | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/browser/main/SideNav/StorageItem.js b/browser/main/SideNav/StorageItem.js index 93e9157f..bf64b030 100644 --- a/browser/main/SideNav/StorageItem.js +++ b/browser/main/SideNav/StorageItem.js @@ -11,9 +11,10 @@ import StorageItemChild from 'browser/components/StorageItem' import _ from 'lodash' import { SortableElement } from 'react-sortable-hoc' import i18n from 'browser/lib/i18n' +import context from 'browser/lib/context' const { remote } = require('electron') -const { Menu, dialog } = remote +const { dialog } = remote const escapeStringRegexp = require('escape-string-regexp') const path = require('path') @@ -27,7 +28,7 @@ class StorageItem extends React.Component { } handleHeaderContextMenu (e) { - const menu = Menu.buildFromTemplate([ + context.popup([ { label: i18n.__('Add Folder'), click: (e) => this.handleAddFolderButtonClick(e) @@ -40,8 +41,6 @@ class StorageItem extends React.Component { click: (e) => this.handleUnlinkStorageClick(e) } ]) - - menu.popup() } handleUnlinkStorageClick (e) { @@ -94,7 +93,7 @@ class StorageItem extends React.Component { } handleFolderButtonContextMenu (e, folder) { - const menu = Menu.buildFromTemplate([ + context.popup([ { label: i18n.__('Rename Folder'), click: (e) => this.handleRenameFolderClick(e, folder) @@ -123,8 +122,6 @@ class StorageItem extends React.Component { click: (e) => this.handleFolderDeleteClick(e, folder) } ]) - - menu.popup() } handleRenameFolderClick (e, folder) { From 47845fd4e3b9ef59f659d320d33b3eff55380f34 Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Sat, 30 Jun 2018 16:23:51 +0900 Subject: [PATCH 5/7] use context.popup on SideNav --- browser/main/SideNav/index.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/browser/main/SideNav/index.js b/browser/main/SideNav/index.js index 67adf700..d8561b7e 100644 --- a/browser/main/SideNav/index.js +++ b/browser/main/SideNav/index.js @@ -19,6 +19,7 @@ import ListButton from './ListButton' import TagButton from './TagButton' import {SortableContainer} from 'react-sortable-hoc' import i18n from 'browser/lib/i18n' +import context from 'browser/lib/context' class SideNav extends React.Component { // TODO: should not use electron stuff v0.7 @@ -254,10 +255,9 @@ class SideNav extends React.Component { handleFilterButtonContextMenu (event) { const { data } = this.props const trashedNotes = data.trashedSet.toJS().map((uniqueKey) => data.noteMap.get(uniqueKey)) - const menu = Menu.buildFromTemplate([ + context.popup([ { label: i18n.__('Empty Trash'), click: () => this.emptyTrash(trashedNotes) } ]) - menu.popup() } render () { From 1038e86196d1d553b1c20c3748791f65ab757750 Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Sat, 30 Jun 2018 16:25:44 +0900 Subject: [PATCH 6/7] use context.popup on StatusBar --- browser/main/StatusBar/index.js | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/browser/main/StatusBar/index.js b/browser/main/StatusBar/index.js index e5f5ae1a..8b48e3d3 100644 --- a/browser/main/StatusBar/index.js +++ b/browser/main/StatusBar/index.js @@ -4,10 +4,11 @@ import CSSModules from 'browser/lib/CSSModules' import styles from './StatusBar.styl' import ZoomManager from 'browser/main/lib/ZoomManager' import i18n from 'browser/lib/i18n' +import context from 'browser/lib/context' const electron = require('electron') const { remote, ipcRenderer } = electron -const { Menu, MenuItem, dialog } = remote +const { dialog } = remote const zoomOptions = [0.8, 0.9, 1, 1.1, 1.2, 1.3, 1.4, 1.5, 1.6, 1.7, 1.8, 1.9, 2.0] @@ -26,16 +27,16 @@ class StatusBar extends React.Component { } handleZoomButtonClick (e) { - const menu = new Menu() + const templates = [] zoomOptions.forEach((zoom) => { - menu.append(new MenuItem({ + templates.push({ label: Math.floor(zoom * 100) + '%', click: () => this.handleZoomMenuItemClick(zoom) - })) + }) }) - menu.popup(remote.getCurrentWindow()) + context.popup(templates) } handleZoomMenuItemClick (zoomFactor) { From d8aad65b241441349c5d7121524718fcbfc3c162 Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Sat, 30 Jun 2018 16:28:17 +0900 Subject: [PATCH 7/7] fix from eslint --- browser/main/NoteList/index.js | 2 +- browser/main/SideNav/index.js | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/browser/main/NoteList/index.js b/browser/main/NoteList/index.js index bcba23cc..eeb16a5f 100644 --- a/browser/main/NoteList/index.js +++ b/browser/main/NoteList/index.js @@ -24,7 +24,7 @@ import { confirmDeleteNote } from 'browser/lib/confirmDeleteNote' import context from 'browser/lib/context' const { remote } = require('electron') -const { Menu, MenuItem, dialog } = remote +const { dialog } = remote const WP_POST_PATH = '/wp/v2/posts' function sortByCreatedAt (a, b) { diff --git a/browser/main/SideNav/index.js b/browser/main/SideNav/index.js index d8561b7e..c4fa417b 100644 --- a/browser/main/SideNav/index.js +++ b/browser/main/SideNav/index.js @@ -1,8 +1,6 @@ import PropTypes from 'prop-types' import React from 'react' import CSSModules from 'browser/lib/CSSModules' -const { remote } = require('electron') -const { Menu } = remote import dataApi from 'browser/main/lib/dataApi' import styles from './SideNav.styl' import { openModal } from 'browser/main/lib/modal'