mirror of
https://github.com/Foundry376/Mailspring.git
synced 2025-11-08 07:21:18 +08:00
feat(shortcuts): Pageup/dn in message list, shift+pageup/dn in thread list
This commit is contained in:
parent
6170b34533
commit
6bee127134
4 changed files with 21 additions and 3 deletions
|
|
@ -77,6 +77,8 @@ class MessageList extends React.Component
|
|||
'application:reply': => @_createReplyOrUpdateExistingDraft('reply')
|
||||
'application:reply-all': => @_createReplyOrUpdateExistingDraft('reply-all')
|
||||
'application:forward': => @_onForward()
|
||||
'core:messages-page-up': => @_onScrollByPage(-1)
|
||||
'core:messages-page-down': => @_onScrollByPage(1)
|
||||
|
||||
@command_unsubscriber = atom.commands.add('body', commands)
|
||||
|
||||
|
|
@ -366,6 +368,10 @@ class MessageList extends React.Component
|
|||
else
|
||||
throw new Error("onChildScrollRequest: expected clientId or rect")
|
||||
|
||||
_onScrollByPage: (direction) =>
|
||||
height = React.findDOMNode(@refs.messageWrap).clientHeight
|
||||
@refs.messageWrap.scrollTop += height * direction
|
||||
|
||||
_onChange: =>
|
||||
newState = @_getStateFromStores()
|
||||
if @state.currentThread isnt newState.currentThread
|
||||
|
|
|
|||
|
|
@ -10,9 +10,14 @@
|
|||
'up' : 'core:previous-item'
|
||||
'down' : 'core:next-item'
|
||||
'enter' : 'core:focus-item'
|
||||
'delete': 'core:remove-from-view'
|
||||
'delete' : 'core:remove-from-view'
|
||||
'backspace': 'core:remove-from-view'
|
||||
|
||||
'pageup' : 'core:messages-page-up'
|
||||
'pagedown' : 'core:messages-page-down'
|
||||
'shift-pageup' : 'core:list-page-up'
|
||||
'shift-pagedown' : 'core:list-page-down'
|
||||
|
||||
# Default cross-platform core behaviors
|
||||
'left': 'core:move-left'
|
||||
'right': 'core:move-right'
|
||||
|
|
@ -20,8 +25,6 @@
|
|||
'shift-down': 'core:select-down'
|
||||
'shift-left': 'core:select-left'
|
||||
'shift-right': 'core:select-right'
|
||||
'shift-pageup': 'core:select-page-up'
|
||||
'shift-pagedown': 'core:select-page-down'
|
||||
'shift-delete': 'core:cut'
|
||||
|
||||
# Inputs are native by default.
|
||||
|
|
|
|||
|
|
@ -173,6 +173,10 @@ class ListTabular extends React.Component
|
|||
scrollTo: (node) =>
|
||||
@refs.container.scrollTo(node)
|
||||
|
||||
scrollByPage: (direction) =>
|
||||
height = React.findDOMNode(@refs.container).clientHeight
|
||||
@refs.container.scrollTop += height * direction
|
||||
|
||||
|
||||
ListTabular.Item = ListTabularItem
|
||||
ListTabular.Column = ListColumn
|
||||
|
|
|
|||
|
|
@ -76,6 +76,8 @@ class MultiselectList extends React.Component
|
|||
'core:previous-item': => @_onShift(-1)
|
||||
'core:select-down': => @_onShift(1, {select: true})
|
||||
'core:select-up': => @_onShift(-1, {select: true})
|
||||
'core:list-page-up': => @_onScrollByPage(-1)
|
||||
'core:list-page-down': => @_onScrollByPage(1)
|
||||
'application:pop-sheet': => @_onDeselect()
|
||||
|
||||
Object.keys(props.commands).forEach (key) =>
|
||||
|
|
@ -163,6 +165,9 @@ class MultiselectList extends React.Component
|
|||
return unless @state.handler
|
||||
@state.handler.onShift(delta, options)
|
||||
|
||||
_onScrollByPage: (delta) =>
|
||||
@refs.list.scrollByPage(delta)
|
||||
|
||||
_onChange: =>
|
||||
@setState(@_getStateFromStores())
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue