Переглянути джерело

Merge pull request #37 from vjeux/select-on-click

Fixes selecting an element
Giovanni Giordano 5 роки тому
батько
коміт
e260904244
1 змінених файлів з 10 додано та 3 видалено
  1. 10 3
      src/index.js

+ 10 - 3
src/index.js

@@ -331,10 +331,18 @@ class App extends React.Component {
             let isDraggingElements = false;
             const cursorStyle = document.documentElement.style.cursor;
             if (this.state.elementType === "selection") {
-              const selectedElement = elements.find(isInsideAnElement(x, y)) 
+              const selectedElement = elements.find(element => {
+                const isSelected = isInsideAnElement(x, y)(element)
+                if (isSelected) {
+                  element.isSelected = true
+                }
+                return isSelected
+              }) 
 
               if (selectedElement) {
                 this.setState({ draggingElement: selectedElement });
+              } else {
+                clearSelection()
               }
 
               isDraggingElements = elements.some(element => element.isSelected);
@@ -424,7 +432,7 @@ class App extends React.Component {
               document.documentElement.style.cursor = cursorStyle;
 
               // if no element is clicked, clear the selection and redraw
-              if (draggingElement === null) {
+              if (draggingElement === null ) {
                 clearSelection()
                 drawScene();
                 return
@@ -435,7 +443,6 @@ class App extends React.Component {
                   isDraggingElements = false;
                 } 
                 elements.pop()
-                setSelection(draggingElement);
               } else {
                 draggingElement.isSelected = true;
               }