fix(xod-client): return Patch component to default mode when patch from project browser was dragged out

Fixes #944
This commit is contained in:
Evgeny Kochetkov
2017-12-11 19:22:48 +03:00
parent 2275a8fd2a
commit 1b6fed1233
2 changed files with 9 additions and 1 deletions

View File

@@ -32,9 +32,11 @@ const dropTarget = {
);
component.goToDefaultMode();
},
hover(props, monitor, component) { // TODO: performance?
hover(props, monitor, component) {
if (!component.dropTargetRootRef) return;
if (!monitor.isOver()) return;
component.setModeStateThrottled(
EDITOR_MODE.ACCEPTING_DRAGGED_PATCH,
{ previewPosition: getDraggedPatchPosition(props, monitor, component) }

View File

@@ -82,6 +82,11 @@ class Patch extends React.Component {
) {
this.dropTargetRootRef.firstChild.focus();
}
// patch was dragged out
if (!this.props.isPatchDraggedOver && prevProps.isPatchDraggedOver) {
this.goToDefaultMode();
}
}
getApi(mode) {
@@ -157,6 +162,7 @@ Patch.propTypes = {
onDoubleClick: PropTypes.func.isRequired,
connectDropTarget: PropTypes.func.isRequired,
isDebugSession: PropTypes.bool,
isPatchDraggedOver: PropTypes.bool,
nodeValues: PropTypes.objectOf(PropTypes.string),
/* eslint-enable react/no-unused-prop-types */
};