From 398eeabb9ac5cfd1cec005f0162b5708d5b2785b Mon Sep 17 00:00:00 2001 From: Artur Arseniev Date: Sun, 2 Feb 2020 23:15:10 +0100 Subject: [PATCH] Centralize drag event --- src/commands/index.js | 7 ++++--- src/dom_components/model/Component.js | 2 ++ src/navigator/view/ItemView.js | 5 +++-- src/navigator/view/ItemsView.js | 3 ++- 4 files changed, 11 insertions(+), 6 deletions(-) diff --git a/src/commands/index.js b/src/commands/index.js index 1b6b3c5b1..dedae275f 100644 --- a/src/commands/index.js +++ b/src/commands/index.js @@ -30,6 +30,7 @@ import { isFunction, includes } from 'underscore'; import CommandAbstract from './view/CommandAbstract'; import defaults from './config/config'; +import { eventDrag } from 'dom_components/model/Component'; export default () => { let em; @@ -140,17 +141,17 @@ export default () => { nativeDrag ? setTimeout(hideTlb, 0) : hideTlb(); const onStart = data => { - em.trigger('component:drag:start', data); + em.trigger(`${eventDrag}:start`, data); }; const onDrag = data => { - em.trigger('component:drag', data); + em.trigger(eventDrag, data); }; const onEnd = (e, opts, data) => { em.runDefault(defComOptions); selAll.forEach(sel => sel.set('status', 'selected')); ed.select(selAll); sel.emitUpdate(); - em.trigger('component:drag:end', data); + em.trigger(`${eventDrag}:end`, data); }; if (includes(modes, mode)) { diff --git a/src/dom_components/model/Component.js b/src/dom_components/model/Component.js index c31cdc07d..729a41a16 100644 --- a/src/dom_components/model/Component.js +++ b/src/dom_components/model/Component.js @@ -28,6 +28,8 @@ const escapeRegExp = str => { const avoidInline = em => em && em.getConfig('avoidInlineStyle'); +export const eventDrag = 'component:drag'; + /** * The Component object represents a single node of our template structure, so when you update its properties the changes are * immediately reflected on the canvas and in the code to export (indeed, when you ask to export the code we just go through all diff --git a/src/navigator/view/ItemView.js b/src/navigator/view/ItemView.js index acbadf9b2..65a300b07 100644 --- a/src/navigator/view/ItemView.js +++ b/src/navigator/view/ItemView.js @@ -2,6 +2,7 @@ import { isUndefined, isString } from 'underscore'; import { getModel } from 'utils/mixins'; import Backbone from 'backbone'; import ComponentView from 'dom_components/view/ComponentView'; +import { eventDrag } from 'dom_components/model/Component'; const inputProp = 'contentEditable'; const $ = Backbone.$; @@ -249,8 +250,8 @@ export default Backbone.View.extend({ if (e.button && e.button !== 0) return; if (sorter) { - sorter.onStart = data => em.trigger('component:drag:start', data); - sorter.onMoveClb = data => em.trigger('component:drag', data); + sorter.onStart = data => em.trigger(`${eventDrag}:start`, data); + sorter.onMoveClb = data => em.trigger(eventDrag, data); sorter.startSort(e.target); } }, diff --git a/src/navigator/view/ItemsView.js b/src/navigator/view/ItemsView.js index b917daf24..313e524e1 100644 --- a/src/navigator/view/ItemsView.js +++ b/src/navigator/view/ItemsView.js @@ -1,5 +1,6 @@ import Backbone from 'backbone'; import ItemView from './ItemView'; +import { eventDrag } from 'dom_components/model/Component'; export default Backbone.View.extend({ initialize(o = {}) { @@ -32,7 +33,7 @@ export default Backbone.View.extend({ onEndMove(created, sorter, data) { const srcModel = sorter.getSourceModel(); em.setSelected(srcModel, { forceChange: 1 }); - em.trigger('component:drag:end', data); + em.trigger(`${eventDrag}:end`, data); }, avoidSelectOnEnd: 1, nested: 1,