소스 검색

cache nonDeleted elements (#1626)

David Luzar 5 년 전
부모
커밋
ce6f2ff88c
1개의 변경된 파일3개의 추가작업 그리고 1개의 파일을 삭제
  1. 3 1
      src/scene/globalScene.ts

+ 3 - 1
src/scene/globalScene.ts

@@ -13,6 +13,7 @@ export interface SceneStateCallbackRemover {
 }
 
 class GlobalScene {
+  private nonDeletedElements: readonly NonDeletedExcalidrawElement[] = [];
   private callbacks: Set<SceneStateCallback> = new Set();
 
   constructor(private _elements: readonly ExcalidrawElement[] = []) {}
@@ -22,11 +23,12 @@ class GlobalScene {
   }
 
   getElements(): readonly NonDeletedExcalidrawElement[] {
-    return getNonDeletedElements(this._elements);
+    return this.nonDeletedElements;
   }
 
   replaceAllElements(nextElements: readonly ExcalidrawElement[]) {
     this._elements = nextElements;
+    this.nonDeletedElements = getNonDeletedElements(this._elements);
     this.informMutation();
   }