This commit is contained in:
Tom Moor
2017-12-02 23:14:27 -08:00
parent 5da809c4ab
commit 15e8e50601
29 changed files with 617 additions and 610 deletions

View File

@ -1,4 +1,5 @@
// @flow
import type { change } from 'slate-prop-types';
export default function KeyboardShortcuts() {
return {
@ -10,38 +11,32 @@ export default function KeyboardShortcuts() {
* @param {State} state
* @return {State or Null} state
*/
onKeyDown(ev: SyntheticEvent, data: Object, state: Object) {
onKeyDown(ev: SyntheticEvent, data: Object, change: change) {
if (!data.isMeta) return null;
switch (data.key) {
case 'b':
return this.toggleMark(state, 'bold');
return this.toggleMark(change, 'bold');
case 'i':
return this.toggleMark(state, 'italic');
return this.toggleMark(change, 'italic');
case 'u':
return this.toggleMark(state, 'underlined');
return this.toggleMark(change, 'underlined');
case 'd':
return this.toggleMark(state, 'deleted');
return this.toggleMark(change, 'deleted');
case 'k':
return state
.transform()
.wrapInline({ type: 'link', data: { href: '' } })
.apply();
return change.wrapInline({ type: 'link', data: { href: '' } });
default:
return null;
}
},
toggleMark(state: Object, type: string) {
toggleMark(change: change, type: string) {
const { state } = change;
// don't allow formatting of document title
const firstNode = state.document.nodes.first();
if (firstNode === state.startBlock) return;
state = state
.transform()
.toggleMark(type)
.apply();
return state;
return state.change().toggleMark(type);
},
};
}