Bläddra i källkod

fix: Reduce the scroll debounce timeout to 100ms and update only if offset changes (#3182)

* fix: Reduce the scroll debounce timeout to 100ms so offsets get updated faster when the container scrolled
fixes https://github.com/excalidraw/excalidraw/issues/3175

* update changelog

* update offsets only when if it changes

* up

* Update src/components/App.tsx

Co-authored-by: David Luzar <luzar.david@gmail.com>
Aakansha Doshi 4 år sedan
förälder
incheckning
07e71a8071
3 ändrade filer med 18 tillägg och 2 borttagningar
  1. 7 1
      src/components/App.tsx
  2. 1 1
      src/constants.ts
  3. 10 0
      src/packages/excalidraw/CHANGELOG.md

+ 7 - 1
src/components/App.tsx

@@ -1008,7 +1008,13 @@ class App extends React.Component<ExcalidrawProps, AppState> {
   }
 
   private onScroll = debounce(() => {
-    this.setState({ ...this.getCanvasOffsets() });
+    const { offsetTop, offsetLeft } = this.getCanvasOffsets();
+    this.setState((state) => {
+      if (state.offsetLeft === offsetLeft && state.offsetTop === offsetTop) {
+        return null;
+      }
+      return { offsetTop, offsetLeft };
+    });
   }, SCROLL_TIMEOUT);
 
   // Copy/paste

+ 1 - 1
src/constants.ts

@@ -94,7 +94,7 @@ export const TOUCH_CTX_MENU_TIMEOUT = 500;
 export const TITLE_TIMEOUT = 10000;
 export const TOAST_TIMEOUT = 5000;
 export const VERSION_TIMEOUT = 30000;
-export const SCROLL_TIMEOUT = 500;
+export const SCROLL_TIMEOUT = 100;
 
 export const ZOOM_STEP = 0.1;
 

+ 10 - 0
src/packages/excalidraw/CHANGELOG.md

@@ -12,6 +12,16 @@ The change should be grouped under one of the below section and must contain PR
 Please add the latest change on the top under the correct section.
 -->
 
+## Unreleased
+
+## Excalidraw API
+
+### Fixes
+
+- Reduce the scroll debounce timeout to `100ms` so `offsets` gets updated faster if changed when container scrolled [#3182](https://github.com/excalidraw/excalidraw/pull/3182).
+
+---
+
 ## 0.4.1
 
 ## Excalidraw API