Skip to content

Commit 673503b

Browse files
committed
cmd+enter to confirm modal
1 parent 3846824 commit 673503b

2 files changed

Lines changed: 22 additions & 0 deletions

File tree

browser/main/HomePage/index.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,16 @@ import ArticleDetail from './ArticleDetail'
99
import _ from 'lodash'
1010
import { isModalOpen, closeModal } from 'browser/lib/modal'
1111

12+
const electron = require('electron')
13+
const remote = electron.remote
14+
1215
const TEXT_FILTER = 'TEXT_FILTER'
1316
const FOLDER_FILTER = 'FOLDER_FILTER'
1417
const FOLDER_EXACT_FILTER = 'FOLDER_EXACT_FILTER'
1518
const TAG_FILTER = 'TAG_FILTER'
1619

20+
const OSX = global.process.platform === 'darwin'
21+
1722
class HomePage extends React.Component {
1823
componentDidMount () {
1924
// React自体のKey入力はfocusされていないElementからは動かないため、
@@ -28,6 +33,9 @@ class HomePage extends React.Component {
2833

2934
handleKeyDown (e) {
3035
if (isModalOpen()) {
36+
if (e.keyCode === 13 && (OSX ? e.metaKey : e.ctrlKey)) {
37+
remote.getCurrentWebContents().send('modal-confirm')
38+
}
3139
if (e.keyCode === 27) closeModal()
3240
return
3341
}

browser/main/modal/DeleteArticleModal.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,23 @@ import ReactDOM from 'react-dom'
33
import store from '../store'
44
import { destroyArticle } from '../actions'
55

6+
const electron = require('electron')
7+
const ipc = electron.ipcRenderer
8+
69
export default class DeleteArticleModal extends React.Component {
10+
constructor (props) {
11+
super(props)
12+
13+
this.confirmHandler = e => this.handleYesButtonClick()
14+
}
15+
716
componentDidMount () {
817
ReactDOM.findDOMNode(this.refs.no).focus()
18+
ipc.on('modal-confirm', this.confirmHandler)
19+
}
20+
21+
componentWillUnmount () {
22+
ipc.removeListener('modal-confirm', this.confirmHandler)
923
}
1024

1125
handleNoButtonClick (e) {

0 commit comments

Comments
 (0)