From 6fb3acc592e346adc13c7a6f028b053dde9b9b15 Mon Sep 17 00:00:00 2001
From: DD <liudi08@gmail.com>
Date: Mon, 12 Feb 2018 18:09:08 -0500
Subject: [PATCH] pass moused over sprite to vm

---
 .../sprite-selector-item.jsx                    |  6 +++++-
 .../sprite-selector/sprite-selector.jsx         |  6 ++++++
 src/components/target-pane/target-pane.jsx      |  6 ++++++
 src/containers/sprite-selector-item.jsx         | 17 +++++++++++++++--
 src/containers/target-pane.jsx                  | 10 ++++++++++
 5 files changed, 42 insertions(+), 3 deletions(-)

diff --git a/src/components/sprite-selector-item/sprite-selector-item.jsx b/src/components/sprite-selector-item/sprite-selector-item.jsx
index aa292cfaa..c1b288a8c 100644
--- a/src/components/sprite-selector-item/sprite-selector-item.jsx
+++ b/src/components/sprite-selector-item/sprite-selector-item.jsx
@@ -18,7 +18,9 @@ const SpriteSelectorItem = props => (
             className: classNames(props.className, styles.spriteSelectorItem, {
                 [styles.isSelected]: props.selected
             }),
-            onClick: props.onClick
+            onClick: props.onClick,
+            onMouseOver: props.onMouseOver,
+            onMouseOut: props.onMouseOut
         }}
         id={`${props.name}-${contextMenuId}`}
     >
@@ -70,6 +72,8 @@ SpriteSelectorItem.propTypes = {
     onClick: PropTypes.func,
     onDeleteButtonClick: PropTypes.func,
     onDuplicateButtonClick: PropTypes.func,
+    onMouseOut: PropTypes.func,
+    onMouseOver: PropTypes.func,
     selected: PropTypes.bool.isRequired
 };
 
diff --git a/src/components/sprite-selector/sprite-selector.jsx b/src/components/sprite-selector/sprite-selector.jsx
index 806dd4ab0..9703cf290 100644
--- a/src/components/sprite-selector/sprite-selector.jsx
+++ b/src/components/sprite-selector/sprite-selector.jsx
@@ -30,6 +30,8 @@ const SpriteSelectorComponent = function (props) {
         onChangeSpriteY,
         onDeleteSprite,
         onDuplicateSprite,
+        onMouseOutSprite,
+        onMouseOverSprite,
         onNewSpriteClick,
         onSelectSprite,
         raised,
@@ -85,6 +87,8 @@ const SpriteSelectorComponent = function (props) {
                                 onClick={onSelectSprite}
                                 onDeleteButtonClick={onDeleteSprite}
                                 onDuplicateButtonClick={onDuplicateSprite}
+                                onMouseOut={onMouseOutSprite}
+                                onMouseOver={onMouseOverSprite}
                             />
                         ))
                     }
@@ -110,6 +114,8 @@ SpriteSelectorComponent.propTypes = {
     onChangeSpriteY: PropTypes.func,
     onDeleteSprite: PropTypes.func,
     onDuplicateSprite: PropTypes.func,
+    onMouseOutSprite: PropTypes.func,
+    onMouseOverSprite: PropTypes.func,
     onNewSpriteClick: PropTypes.func,
     onSelectSprite: PropTypes.func,
     raised: PropTypes.bool,
diff --git a/src/components/target-pane/target-pane.jsx b/src/components/target-pane/target-pane.jsx
index 551fb2b5f..31ae88485 100644
--- a/src/components/target-pane/target-pane.jsx
+++ b/src/components/target-pane/target-pane.jsx
@@ -28,6 +28,8 @@ const TargetPane = ({
     onChangeSpriteY,
     onDeleteSprite,
     onDuplicateSprite,
+    onMouseOutSprite,
+    onMouseOverSprite,
     onNewSpriteClick,
     onRequestCloseSpriteLibrary,
     onRequestCloseBackdropLibrary,
@@ -55,6 +57,8 @@ const TargetPane = ({
             onChangeSpriteY={onChangeSpriteY}
             onDeleteSprite={onDeleteSprite}
             onDuplicateSprite={onDuplicateSprite}
+            onMouseOutSprite={onMouseOutSprite}
+            onMouseOverSprite={onMouseOverSprite}
             onNewSpriteClick={onNewSpriteClick}
             onSelectSprite={onSelectSprite}
         />
@@ -117,6 +121,8 @@ TargetPane.propTypes = {
     onChangeSpriteY: PropTypes.func,
     onDeleteSprite: PropTypes.func,
     onDuplicateSprite: PropTypes.func,
+    onMouseOutSprite: PropTypes.func,
+    onMouseOverSprite: PropTypes.func,
     onNewSpriteClick: PropTypes.func,
     onRequestCloseBackdropLibrary: PropTypes.func,
     onRequestCloseExtensionLibrary: PropTypes.func,
diff --git a/src/containers/sprite-selector-item.jsx b/src/containers/sprite-selector-item.jsx
index bc10479b8..87e7db36b 100644
--- a/src/containers/sprite-selector-item.jsx
+++ b/src/containers/sprite-selector-item.jsx
@@ -12,7 +12,9 @@ class SpriteSelectorItem extends React.Component {
         bindAll(this, [
             'handleClick',
             'handleDelete',
-            'handleDuplicate'
+            'handleDuplicate',
+            'handleMouseOut',
+            'handleMouseOver'
         ]);
     }
     handleClick (e) {
@@ -30,6 +32,12 @@ class SpriteSelectorItem extends React.Component {
         e.stopPropagation(); // To prevent from bubbling back to handleClick
         this.props.onDuplicateButtonClick(this.props.id);
     }
+    handleMouseOut () {
+        this.props.onMouseOut(this.props.id);
+    }
+    handleMouseOver () {
+        this.props.onMouseOver(this.props.id);
+    }
     render () {
         const {
             /* eslint-disable no-unused-vars */
@@ -38,6 +46,8 @@ class SpriteSelectorItem extends React.Component {
             onClick,
             onDeleteButtonClick,
             onDuplicateButtonClick,
+            onMouseOut,
+            onMouseOver,
             /* eslint-enable no-unused-vars */
             ...props
         } = this.props;
@@ -46,6 +56,8 @@ class SpriteSelectorItem extends React.Component {
                 onClick={this.handleClick}
                 onDeleteButtonClick={onDeleteButtonClick ? this.handleDelete : null}
                 onDuplicateButtonClick={onDuplicateButtonClick ? this.handleDuplicate : null}
+                onMouseOut={onMouseOut ? this.handleMouseOut : null}
+                onMouseOver={onMouseOver ? this.handleMouseOver : null}
                 {...props}
             />
         );
@@ -60,7 +72,8 @@ SpriteSelectorItem.propTypes = {
     onClick: PropTypes.func,
     onDeleteButtonClick: PropTypes.func,
     onDuplicateButtonClick: PropTypes.func,
-    onHover: PropTypes.func,
+    onMouseOut: PropTypes.func,
+    onMouseOver: PropTypes.func,
     selected: PropTypes.bool
 };
 
diff --git a/src/containers/target-pane.jsx b/src/containers/target-pane.jsx
index acde49a4e..53c0973a9 100644
--- a/src/containers/target-pane.jsx
+++ b/src/containers/target-pane.jsx
@@ -23,6 +23,8 @@ class TargetPane extends React.Component {
             'handleChangeSpriteY',
             'handleDeleteSprite',
             'handleDuplicateSprite',
+            'handleMouseOutSprite',
+            'handleMouseOverSprite',
             'handleSelectSprite'
         ]);
     }
@@ -50,6 +52,12 @@ class TargetPane extends React.Component {
     handleDuplicateSprite (id) {
         this.props.vm.duplicateSprite(id);
     }
+    handleMouseOutSprite () {
+        this.props.vm.setHoveredSprite(null);
+    }
+    handleMouseOverSprite (id) {
+        this.props.vm.setHoveredSprite(id);
+    }
     handleSelectSprite (id) {
         this.props.vm.setEditingTarget(id);
     }
@@ -65,6 +73,8 @@ class TargetPane extends React.Component {
                 onChangeSpriteY={this.handleChangeSpriteY}
                 onDeleteSprite={this.handleDeleteSprite}
                 onDuplicateSprite={this.handleDuplicateSprite}
+                onMouseOutSprite={this.handleMouseOutSprite}
+                onMouseOverSprite={this.handleMouseOverSprite}
                 onSelectSprite={this.handleSelectSprite}
             />
         );
-- 
GitLab