diff --git a/browser/main/HomePage/index.js b/browser/main/HomePage/index.js index 5b199b06..54274a97 100644 --- a/browser/main/HomePage/index.js +++ b/browser/main/HomePage/index.js @@ -9,11 +9,16 @@ import ArticleDetail from './ArticleDetail' import _ from 'lodash' import { isModalOpen, closeModal } from 'browser/lib/modal' +const electron = require('electron') +const remote = electron.remote + const TEXT_FILTER = 'TEXT_FILTER' const FOLDER_FILTER = 'FOLDER_FILTER' const FOLDER_EXACT_FILTER = 'FOLDER_EXACT_FILTER' const TAG_FILTER = 'TAG_FILTER' +const OSX = global.process.platform === 'darwin' + class HomePage extends React.Component { componentDidMount () { // React自体のKey入力はfocusされていないElementからは動かないため、 @@ -28,6 +33,9 @@ class HomePage extends React.Component { handleKeyDown (e) { if (isModalOpen()) { + if (e.keyCode === 13 && (OSX ? e.metaKey : e.ctrlKey)) { + remote.getCurrentWebContents().send('modal-confirm') + } if (e.keyCode === 27) closeModal() return } diff --git a/browser/main/modal/DeleteArticleModal.js b/browser/main/modal/DeleteArticleModal.js index 78c47e64..095ca949 100644 --- a/browser/main/modal/DeleteArticleModal.js +++ b/browser/main/modal/DeleteArticleModal.js @@ -3,9 +3,23 @@ import ReactDOM from 'react-dom' import store from '../store' import { destroyArticle } from '../actions' +const electron = require('electron') +const ipc = electron.ipcRenderer + export default class DeleteArticleModal extends React.Component { + constructor (props) { + super(props) + + this.confirmHandler = e => this.handleYesButtonClick() + } + componentDidMount () { ReactDOM.findDOMNode(this.refs.no).focus() + ipc.on('modal-confirm', this.confirmHandler) + } + + componentWillUnmount () { + ipc.removeListener('modal-confirm', this.confirmHandler) } handleNoButtonClick (e) {