From 11c0f41dfb821579ba6eda0b6938fe89fe4e4744 Mon Sep 17 00:00:00 2001 From: Maciej Pyrc Date: Mon, 23 Oct 2023 17:09:30 +0200 Subject: [PATCH] =?UTF-8?q?fix:=20=F0=9F=90=9B=20Performance=20and=20regre?= =?UTF-8?q?ssion?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transform-component/transform-component.tsx | 7 +++++-- .../transform-wrapper/transform-wrapper.tsx | 3 --- src/core/bounds/bounds.utils.ts | 15 ++------------- src/core/instance.core.ts | 6 +++--- 4 files changed, 10 insertions(+), 21 deletions(-) diff --git a/src/components/transform-component/transform-component.tsx b/src/components/transform-component/transform-component.tsx index 94fc5a8d..ea5422b1 100644 --- a/src/components/transform-component/transform-component.tsx +++ b/src/components/transform-component/transform-component.tsx @@ -24,7 +24,7 @@ export const TransformComponent: React.FC = ({ wrapperProps = {}, contentProps = {}, }: Props) => { - const { init } = useContext(Context); + const { init, cleanupWindowEvents } = useContext(Context); const wrapperRef = useRef(null); const contentRef = useRef(null); @@ -33,9 +33,12 @@ export const TransformComponent: React.FC = ({ const wrapper = wrapperRef.current; const content = contentRef.current; if (wrapper !== null && content !== null && init) { - init(wrapper, content); + init?.(wrapper, content); } // eslint-disable-next-line react-hooks/exhaustive-deps + return () => { + cleanupWindowEvents?.(); + }; }, []); return ( diff --git a/src/components/transform-wrapper/transform-wrapper.tsx b/src/components/transform-wrapper/transform-wrapper.tsx index ac1bf6e4..bdada8af 100644 --- a/src/components/transform-wrapper/transform-wrapper.tsx +++ b/src/components/transform-wrapper/transform-wrapper.tsx @@ -32,9 +32,6 @@ export const TransformWrapper = React.forwardRef( useEffect(() => { instance.update(props); - return () => { - instance.cleanupWindowEvents(); - }; }, [instance, props]); return {content}; diff --git a/src/core/bounds/bounds.utils.ts b/src/core/bounds/bounds.utils.ts index 6f2a9e36..aa4e2b9a 100644 --- a/src/core/bounds/bounds.utils.ts +++ b/src/core/bounds/bounds.utils.ts @@ -170,26 +170,15 @@ export function getMouseBoundedPosition( paddingY = paddingValueY; } - const rubberbandX = rubberbandIfOutOfBounds( - positionX, - minPositionX, - maxPositionX, - ); - const rubberbandY = rubberbandIfOutOfBounds( - positionY, - minPositionY, - maxPositionY, - ); - const x = boundLimiter( - rubberbandX, + positionX, minPositionX - paddingX, maxPositionX + paddingX, limitToBounds, ); const y = boundLimiter( - rubberbandY, + positionY, minPositionY - paddingY, maxPositionY + paddingY, limitToBounds, diff --git a/src/core/instance.core.ts b/src/core/instance.core.ts index d3f16c56..5a3042c1 100644 --- a/src/core/instance.core.ts +++ b/src/core/instance.core.ts @@ -208,9 +208,9 @@ export class ZoomPanPinch { const keysPressed = this.isPressingKeys(this.setup.panning.activationKeys); if (!keysPressed) return; - if(event.button == 0 && !this.setup.panning.allowLeftClickPan) return; - if(event.button == 1 && !this.setup.panning.allowMiddleClickPan) return; - if(event.button == 2 && !this.setup.panning.allowRightClickPan) return; + if (event.button === 0 && !this.setup.panning.allowLeftClickPan) return; + if (event.button === 1 && !this.setup.panning.allowMiddleClickPan) return; + if (event.button === 2 && !this.setup.panning.allowRightClickPan) return; event.preventDefault(); event.stopPropagation();