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

@ -1,5 +1,6 @@
import { ExcalidrawElement } from "./element/types";
import { getSelectedElements } from "./scene";
import { AppState } from "./types";
let CLIPBOARD = "";
let PREFER_APP_CLIPBOARD = false;
@ -18,10 +19,9 @@ export const probablySupportsClipboardBlob =
export async function copyToAppClipboard(
elements: readonly ExcalidrawElement[],
appState: AppState,
) {
CLIPBOARD = JSON.stringify(
getSelectedElements(elements).map(({ shape, canvas, ...el }) => el),
);
CLIPBOARD = JSON.stringify(getSelectedElements(elements, appState));
try {
// when copying to in-app clipboard, clear system clipboard so that if
// system clip contains text on paste we know it was copied *after* user