From ce440351a51766ba5823a5f9f7b9670756f1a126 Mon Sep 17 00:00:00 2001 From: Sosuke Suzuki Date: Tue, 10 Apr 2018 16:28:05 +0900 Subject: [PATCH] use extracted confirmDeleteNote function --- browser/main/Detail/MarkdownNoteDetail.js | 10 +++++----- browser/main/Detail/SnippetNoteDetail.js | 10 +++++----- browser/main/Detail/index.js | 2 -- browser/main/NoteList/index.js | 21 ++++----------------- 4 files changed, 14 insertions(+), 29 deletions(-) diff --git a/browser/main/Detail/MarkdownNoteDetail.js b/browser/main/Detail/MarkdownNoteDetail.js index 6821bf2f..05883c0e 100755 --- a/browser/main/Detail/MarkdownNoteDetail.js +++ b/browser/main/Detail/MarkdownNoteDetail.js @@ -28,6 +28,7 @@ import InfoPanelTrashed from './InfoPanelTrashed' import { formatDate } from 'browser/lib/date-formatter' import { getTodoPercentageOfCompleted } from 'browser/lib/getTodoStatus' import striptags from 'striptags' +import { confirmDeleteNote } from 'browser/lib/confirmDeleteNote' class MarkdownNoteDetail extends React.Component { constructor (props) { @@ -181,10 +182,10 @@ class MarkdownNoteDetail extends React.Component { handleTrashButtonClick (e) { const { note } = this.state const { isTrashed } = note - const { confirmDeletion } = this.props + const { confirmDeletion } = this.props.config.ui if (isTrashed) { - if (confirmDeletion(true)) { + if (confirmDeleteNote(confirmDeletion, true)) { const {note, dispatch} = this.props dataApi .deleteNote(note.storage, note.key) @@ -201,7 +202,7 @@ class MarkdownNoteDetail extends React.Component { .then(() => ee.emit('list:next')) } } else { - if (confirmDeletion()) { + if (confirmDeleteNote(confirmDeletion, false)) { note.isTrashed = true this.setState({ @@ -437,8 +438,7 @@ MarkdownNoteDetail.propTypes = { style: PropTypes.shape({ left: PropTypes.number }), - ignorePreviewPointerEvents: PropTypes.bool, - confirmDeletion: PropTypes.bool.isRequired + ignorePreviewPointerEvents: PropTypes.bool } export default CSSModules(MarkdownNoteDetail, styles) diff --git a/browser/main/Detail/SnippetNoteDetail.js b/browser/main/Detail/SnippetNoteDetail.js index 620de512..411027d5 100644 --- a/browser/main/Detail/SnippetNoteDetail.js +++ b/browser/main/Detail/SnippetNoteDetail.js @@ -27,6 +27,7 @@ import InfoPanel from './InfoPanel' import InfoPanelTrashed from './InfoPanelTrashed' import { formatDate } from 'browser/lib/date-formatter' import i18n from 'browser/lib/i18n' +import { confirmDeleteNote } from 'browser/lib/confirmDeleteNote' function pass (name) { switch (name) { @@ -197,10 +198,10 @@ class SnippetNoteDetail extends React.Component { handleTrashButtonClick (e) { const { note } = this.state const { isTrashed } = note - const { confirmDeletion } = this.props + const { confirmDeletion } = this.props.config.ui if (isTrashed) { - if (confirmDeletion(true)) { + if (confirmDeleteNote(confirmDeletion, true)) { const {note, dispatch} = this.props dataApi .deleteNote(note.storage, note.key) @@ -217,7 +218,7 @@ class SnippetNoteDetail extends React.Component { .then(() => ee.emit('list:next')) } } else { - if (confirmDeletion()) { + if (confirmDeleteNote(confirmDeletion, false)) { note.isTrashed = true this.setState({ @@ -883,8 +884,7 @@ SnippetNoteDetail.propTypes = { style: PropTypes.shape({ left: PropTypes.number }), - ignorePreviewPointerEvents: PropTypes.bool, - confirmDeletion: PropTypes.bool.isRequired + ignorePreviewPointerEvents: PropTypes.bool } export default CSSModules(SnippetNoteDetail, styles) diff --git a/browser/main/Detail/index.js b/browser/main/Detail/index.js index df38132c..32d20a32 100644 --- a/browser/main/Detail/index.js +++ b/browser/main/Detail/index.js @@ -82,7 +82,6 @@ class Detail extends React.Component { this.confirmDeletion(permanent)} ref='root' {..._.pick(this.props, [ 'dispatch', @@ -99,7 +98,6 @@ class Detail extends React.Component { this.confirmDeletion(permanent)} ref='root' {..._.pick(this.props, [ 'dispatch', diff --git a/browser/main/NoteList/index.js b/browser/main/NoteList/index.js index 029d9dcd..2d672664 100644 --- a/browser/main/NoteList/index.js +++ b/browser/main/NoteList/index.js @@ -18,6 +18,7 @@ import copy from 'copy-to-clipboard' import AwsMobileAnalyticsConfig from 'browser/main/lib/AwsMobileAnalyticsConfig' import Markdown from '../../lib/markdown' import i18n from 'browser/lib/i18n' +import { confirmDeleteNote } from 'browser/lib/confirmDeleteNote' const { remote } = require('electron') const { Menu, MenuItem, dialog } = remote @@ -574,28 +575,16 @@ class NoteList extends React.Component { }) } - confirmDeleteNote (selectedNotes) { - const noteExp = selectedNotes.length > 1 ? 'notes' : 'note' - const dialogueButtonIndex = dialog.showMessageBox(remote.getCurrentWindow(), { - type: 'warning', - message: i18n.__('Confirm note deletion'), - detail: `This will permanently remove ${selectedNotes.length} ${noteExp}.`, - buttons: [i18n.__('Confirm'), i18n.__('Cancel')] - }) - - return dialogueButtonIndex !== 1 - } - deleteNote () { const { dispatch } = this.props const { selectedNoteKeys } = this.state const notes = this.notes.map((note) => Object.assign({}, note)) const selectedNotes = findNotesByKeys(notes, selectedNoteKeys) const firstNote = selectedNotes[0] - const confirmDeletion = this.props.config.ui.confirmDeletion + const { confirmDeletion } = this.props.config.ui if (firstNote.isTrashed) { - if (!this.confirmDeleteNote(selectedNotes)) return + if (!confirmDeleteNote(confirmDeletion, true)) return Promise.all( selectedNotes.map((note) => { @@ -617,9 +606,7 @@ class NoteList extends React.Component { }) console.log('Notes were all deleted') } else { - if (confirmDeletion) { - if (!this.confirmDeleteNote(selectedNotes)) return - } + if (!confirmDeleteNote(confirmDeletion, false)) return Promise.all( selectedNotes.map((note) => {