diff --git a/src/index.ts b/src/index.ts index 5fc60eb..258c7f5 100644 --- a/src/index.ts +++ b/src/index.ts @@ -17,7 +17,8 @@ function getDimensionObject(node: HTMLElement): DimensionObject { } function useDimensions({ - liveMeasure = true + liveMeasure = true, + trackScrolling = true }: UseDimensionsArgs = {}): UseDimensionsHook { const [dimensions, setDimensions] = useState({}); const [node, setNode] = useState(null); @@ -36,13 +37,19 @@ function useDimensions({ if (liveMeasure) { window.addEventListener("resize", measure); + } + if (trackScrolling) { window.addEventListener("scroll", measure); + } - return () => { + return () => { + if (liveMeasure) { window.removeEventListener("resize", measure); + } + if (trackScrolling) { window.removeEventListener("scroll", measure); - }; - } + } + }; } }, [node]); diff --git a/src/types.d.ts b/src/types.d.ts index abae2cf..5fb597a 100644 --- a/src/types.d.ts +++ b/src/types.d.ts @@ -17,4 +17,5 @@ export type UseDimensionsHook = [ export interface UseDimensionsArgs { liveMeasure?: boolean; + trackScrolling?: boolean; }