Refactor Element Functions (#233)

* Remove `generatedraw` from element object

- Create a function that renders a single element
- Refactor rendering selected elements

* Replace getElementAbsoluteXY with getElementAbsoluteCoords
This commit is contained in:
Gasim Gasimzada 2020-01-07 19:04:52 +04:00 committed by GitHub
parent 85365e5bcb
commit 829a65b8cb
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 206 additions and 184 deletions

View file

@ -4,9 +4,8 @@ import rough from "roughjs/bin/wrappers/rough";
import { moveOneLeft, moveAllLeft, moveOneRight, moveAllRight } from "./zindex";
import { randomSeed } from "./random";
import { newElement, resizeTest, generateDraw, isTextElement } from "./element";
import { newElement, resizeTest, isTextElement } from "./element";
import {
renderScene,
clearSelection,
getSelectedIndices,
deleteSelectedElements,
@ -26,6 +25,8 @@ import {
getElementAtPosition,
createScene
} from "./scene";
import { renderScene } from "./renderer";
import { AppState } from "./types";
import { ExcalidrawElement, ExcalidrawTextElement } from "./element/types";
@ -267,7 +268,6 @@ class App extends React.Component<{}, AppState> {
element.fillStyle = pastedElement?.fillStyle;
element.opacity = pastedElement?.opacity;
element.roughness = pastedElement?.roughness;
generateDraw(element);
}
});
this.forceUpdate();
@ -303,7 +303,6 @@ class App extends React.Component<{}, AppState> {
elements.forEach(element => {
if (element.isSelected) {
callback(element);
generateDraw(element);
}
});
@ -697,7 +696,6 @@ class App extends React.Component<{}, AppState> {
}
}
generateDraw(element);
elements.push(element);
if (this.state.elementType === "text") {
this.setState({
@ -805,7 +803,6 @@ class App extends React.Component<{}, AppState> {
el.x = element.x;
el.y = element.y;
generateDraw(el);
});
lastX = x;
lastY = y;
@ -856,8 +853,6 @@ class App extends React.Component<{}, AppState> {
? Math.abs(width) * Math.sign(height)
: height;
generateDraw(draggingElement);
if (this.state.elementType === "selection") {
setSelection(elements, draggingElement);
}
@ -932,7 +927,6 @@ class App extends React.Component<{}, AppState> {
return;
}
generateDraw(element);
elements.push(element);
this.setState({
@ -989,7 +983,6 @@ class App extends React.Component<{}, AppState> {
parsedElement.x = dx ? parsedElement.x + dx : 10 - this.state.scrollX;
parsedElement.y = dy ? parsedElement.y + dy : 10 - this.state.scrollY;
parsedElement.seed = randomSeed();
generateDraw(parsedElement);
elements.push(parsedElement);
});
this.forceUpdate();