1
0
mirror of https://github.com/BoostIo/Boostnote synced 2025-12-15 10:46:32 +00:00

renewal key binding

This commit is contained in:
Rokt33r
2015-12-29 02:18:37 +09:00
parent b820bdec09
commit 0187217c86
17 changed files with 388 additions and 48 deletions

View File

@@ -7,13 +7,25 @@ import FolderMark from 'browser/components/FolderMark'
import TagLink from './TagLink'
import _ from 'lodash'
const electron = require('electron')
const remote = electron.remote
const ipc = electron.ipcRenderer
export default class ArticleList extends React.Component {
constructor (props) {
super(props)
this.focusHandler = e => this.focus()
}
componentDidMount () {
this.refreshTimer = setInterval(() => this.forceUpdate(), 60 * 1000)
ipc.on('list-focus', this.focusHandler)
}
componentWillUnmount () {
clearInterval(this.refreshTimer)
ipc.removeListener('list-focus', this.focusHandler)
}
componentDidUpdate () {
@@ -36,6 +48,10 @@ export default class ArticleList extends React.Component {
}
}
focus () {
ReactDOM.findDOMNode(this).focus()
}
// 移動ができなかったらfalseを返す:
selectPriorArticle () {
let { articles, activeArticle, dispatch } = this.props
@@ -68,6 +84,41 @@ export default class ArticleList extends React.Component {
}
}
handleArticleListKeyDown (e) {
console.log(e.keyCode)
if (e.metaKey || e.ctrlKey) return true
if (e.keyCode === 65) {
e.preventDefault()
remote.getCurrentWebContents().send('nav-new-post')
}
if (e.keyCode === 68) {
e.preventDefault()
remote.getCurrentWebContents().send('detail-delete')
}
if (e.keyCode === 69) {
e.preventDefault()
remote.getCurrentWebContents().send('detail-edit')
}
if (e.keyCode === 83) {
e.preventDefault()
remote.getCurrentWebContents().send('detail-save')
}
if (e.keyCode === 38) {
e.preventDefault()
this.selectPriorArticle()
}
if (e.keyCode === 40) {
e.preventDefault()
this.selectNextArticle()
}
}
render () {
let { articles, modified, activeArticle, folders } = this.props
@@ -130,7 +181,7 @@ export default class ArticleList extends React.Component {
})
return (
<div className='ArticleList'>
<div tabIndex='1' onKeyDown={e => this.handleArticleListKeyDown(e)} className='ArticleList'>
{articleElements}
</div>
)