|
|
|
|
@ -331,10 +331,18 @@ class App extends React.Component {
@@ -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 {
@@ -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 {
@@ -435,7 +443,6 @@ class App extends React.Component {
|
|
|
|
|
isDraggingElements = false; |
|
|
|
|
}
|
|
|
|
|
elements.pop() |
|
|
|
|
setSelection(draggingElement); |
|
|
|
|
} else { |
|
|
|
|
draggingElement.isSelected = true; |
|
|
|
|
} |
|
|
|
|
|