From 25ae7f8282611e30c5d6df3386b9763f073a7ffd Mon Sep 17 00:00:00 2001 From: muerwre Date: Mon, 10 Dec 2018 11:29:26 +0700 Subject: [PATCH] editor: hotkeys added --- src/components/panels/EditorPanel.jsx | 12 ++++++++++-- src/components/renderer/Renderer.jsx | 2 +- src/index.html | 3 +-- src/modules/Editor.js | 7 ------- src/redux/user/actions.js | 1 + src/redux/user/constants.js | 1 + src/redux/user/sagas.js | 22 ++++++++++++++++++++-- src/sprites/icon.svg | 12 +++++++++++- src/utils/history.js | 5 +++-- 9 files changed, 48 insertions(+), 17 deletions(-) diff --git a/src/components/panels/EditorPanel.jsx b/src/components/panels/EditorPanel.jsx index c67a475..a198e75 100644 --- a/src/components/panels/EditorPanel.jsx +++ b/src/components/panels/EditorPanel.jsx @@ -9,7 +9,7 @@ import { EditorDialog } from '$components/panels/EditorDialog'; import { LogoPreview } from '$components/logo/LogoPreview'; import { bindActionCreators } from 'redux'; import { connect } from 'react-redux'; -import { setMode, startEditing, stopEditing, setLogo, takeAShot } from '$redux/user/actions'; +import { setMode, startEditing, stopEditing, setLogo, takeAShot, keyPressed } from '$redux/user/actions'; import { UserLocation } from '$components/UserLocation'; import { PROVIDERS } from '$constants/providers'; @@ -28,10 +28,13 @@ type Props = { startEditing: Function, stopEditing: Function, takeAShot: Function, + keyPressed: Function, } class Component extends React.PureComponent { componentDidMount() { + window.addEventListener('keydown', this.props.keyPressed); + const obj = document.getElementById('control-dialog'); const { width } = this.panel.getBoundingClientRect(); @@ -40,6 +43,10 @@ class Component extends React.PureComponent { obj.style.width = width; } + componentWillUnmount() { + window.removeEventListener('keydown', this.props.keyPressed); + } + startPolyMode = () => this.props.setMode(MODES.POLY); startStickerMode = () => this.props.setMode(MODES.STICKERS); startRouterMode = () => this.props.setMode(MODES.ROUTER); @@ -123,7 +130,7 @@ class Component extends React.PureComponent { className={classnames({ active: false })} onClick={this.props.takeAShot} > - + @@ -208,6 +215,7 @@ const mapDispatchToProps = dispatch => bindActionCreators({ startEditing, stopEditing, takeAShot, + keyPressed, }, dispatch); export const EditorPanel = connect( diff --git a/src/components/renderer/Renderer.jsx b/src/components/renderer/Renderer.jsx index 9f61010..fb8b011 100644 --- a/src/components/renderer/Renderer.jsx +++ b/src/components/renderer/Renderer.jsx @@ -34,7 +34,7 @@ class Component extends React.Component { }; componentWillUnmount() { - this.croppr.destroy(); + if (this.croppr) this.croppr.destroy(); } onCropInit = (crop) => { diff --git a/src/index.html b/src/index.html index ae3b290..4ea9131 100644 --- a/src/index.html +++ b/src/index.html @@ -4,11 +4,10 @@ - @ORCHID - +