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
39 changed files with 416 additions and 306 deletions

View File

@@ -10,14 +10,7 @@ export function saveToLocalStorage(
elements: readonly ExcalidrawElement[],
appState: AppState,
) {
localStorage.setItem(
LOCAL_STORAGE_KEY,
JSON.stringify(
elements.map(
({ shape, canvas, ...element }: ExcalidrawElement) => element,
),
),
);
localStorage.setItem(LOCAL_STORAGE_KEY, JSON.stringify(elements));
localStorage.setItem(
LOCAL_STORAGE_KEY_STATE,
JSON.stringify(clearAppStateForLocalStorage(appState)),
@@ -31,9 +24,7 @@ export function restoreFromLocalStorage() {
let elements = [];
if (savedElements) {
try {
elements = JSON.parse(savedElements).map(
({ shape, ...element }: ExcalidrawElement) => element,
);
elements = JSON.parse(savedElements);
} catch {
// Do nothing because elements array is already empty
}