Refactor ExcalidrawElement (#874)

* Get rid of isSelected, canvas, canvasZoom, canvasOffsetX and canvasOffsetY on ExcalidrawElement.

* Fix most unit tests. Fix cmd a. Fix alt drag

* Focus on paste

* shift select should include previously selected items

* Fix last test

* Move this.shape out of ExcalidrawElement and into a WeakMap
This commit is contained in:
Pete Hunt 2020-03-08 10:20:55 -07:00 committed by GitHub
parent 8ecb4201db
commit ccbbdb75a6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
39 changed files with 416 additions and 306 deletions

View file

@ -50,7 +50,7 @@ export const LayerUI = React.memo(
scale,
) => {
if (canvas) {
exportCanvas(type, exportedElements, canvas, {
exportCanvas(type, exportedElements, appState, canvas, {
exportBackground: appState.exportBackground,
name: appState.name,
viewBackgroundColor: appState.viewBackgroundColor,
@ -70,10 +70,11 @@ export const LayerUI = React.memo(
if (canvas) {
exportCanvas(
"backend",
exportedElements.map(element => ({
...element,
isSelected: false,
})),
exportedElements,
{
...appState,
selectedElementIds: {},
},
canvas,
appState,
);
@ -95,12 +96,7 @@ export const LayerUI = React.memo(
) : (
<>
<FixedSideContainer side="top">
<HintViewer
elementType={appState.elementType}
multiMode={appState.multiElement !== null}
isResizing={appState.isResizing}
elements={elements}
/>
<HintViewer appState={appState} elements={elements} />
<div className="App-menu App-menu_top">
<Stack.Col gap={4} align="end">
<Section className="App-right-menu" heading="canvasActions">
@ -123,10 +119,7 @@ export const LayerUI = React.memo(
>
<Island padding={4}>
<SelectedShapeActions
targetElements={getTargetElement(
appState.editingElement,
elements,
)}
targetElements={getTargetElement(elements, appState)}
renderAction={actionManager.renderAction}
elementType={appState.elementType}
/>