From e0ea018d02b4e5cedbeb867f5dcfbc97ce4b4f9d Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Mon, 11 Dec 2017 01:36:17 +0100 Subject: [PATCH] Add default `core:undo` and `core:redo` keymaps --- src/dom_components/index.js | 5 +---- src/keymaps/index.js | 30 +++++++++++++++++++++++++++--- 2 files changed, 28 insertions(+), 7 deletions(-) diff --git a/src/dom_components/index.js b/src/dom_components/index.js index a287a28d7..e1d2158bd 100644 --- a/src/dom_components/index.js +++ b/src/dom_components/index.js @@ -229,10 +229,7 @@ module.exports = () => { * @private */ onLoad() { - const comps = this.getComponents(); - comps.reset(c.components); - //const um = em && em.get('UndoManager'); - //um && um.add(comps); + this.getComponents().reset(c.components); }, /** diff --git a/src/keymaps/index.js b/src/keymaps/index.js index 401dd2353..8d4277ab3 100644 --- a/src/keymaps/index.js +++ b/src/keymaps/index.js @@ -12,9 +12,21 @@ import { isString } from 'underscore'; const keymaster = require('keymaster'); module.exports = () => { + let em; let config; - const configDef = {}; const keymaps = {}; + const configDef = { + defaults: { + 'core:undo': { + keys: '⌘+z, ctrl+z', + handler: 'core:undo', + }, + 'core:redo': { + keys: '⌘+shift+z, ctrl+shift+z', + handler: 'core:redo', + } + } + }; return { @@ -39,11 +51,23 @@ module.exports = () => { * @private */ init(opts = {}) { - config = { ...opts, ...configDef }; - this.em = config.em; + config = { ...configDef, ...opts }; + em = config.em; + this.em = em; return this; }, + + onLoad() { + const defKeys = config.defaults; + + for (let id in defKeys) { + const value = defKeys[id]; + this.add(id, value.keys, value.handler); + } + }, + + /** * Add new keymap * @param {string} id Keymap id