Skip to content

Commit 42c503f

Browse files
authored
Merge pull request #65 from codeacme17/fix
fix: update `useResizeObserver` hook to fix issue(#64)
2 parents 1022154 + 92c57fe commit 42c503f

2 files changed

Lines changed: 15 additions & 7 deletions

File tree

packages/components/controller/Envelope/Envelope.tsx

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -67,11 +67,18 @@ export const Envelope = forwardRef<EnvelopeRef, EnvelopeProps>((props, ref) => {
6767
return res
6868
}, [_limits])
6969

70-
const dimensions = useResizeObserver<EnvelopeRef>(envelopeRef, WIDTH, HEIGHT, () => {
71-
generateScales()
72-
generateLine()
73-
generateNodes()
74-
})
70+
const dimensions = useResizeObserver<EnvelopeRef>(
71+
envelopeRef,
72+
WIDTH,
73+
HEIGHT,
74+
() => {
75+
generateScales()
76+
generateLine()
77+
generateNodes()
78+
},
79+
true,
80+
data,
81+
)
7582

7683
useEffect(() => {
7784
updateData()

packages/lib/hooks/useResizeObserver.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { useEffect, RefObject, useRef } from 'react'
88
* @param {number} defaultHeight - The default height to return if the ref is not yet defined.
99
* @param {() => void} callback - The callback function to run when the dimensions change.
1010
* @param {boolean} toggleThrottle - Whether to throttle the callback function.
11+
* @param {any} data - The data to watch for changes.
1112
* @returns {{ width: number, height: number }} - The dimensions of the element.
1213
*
1314
* @example
@@ -20,6 +21,7 @@ export const useResizeObserver = <T extends HTMLElement | SVGSVGElement>(
2021
defaultHeight: number,
2122
callback: () => void,
2223
toggleThrottle: boolean = true,
24+
data: any = null,
2325
) => {
2426
const dimensions = useRef({ width: defaultWidth, height: defaultHeight })
2527

@@ -33,10 +35,9 @@ export const useResizeObserver = <T extends HTMLElement | SVGSVGElement>(
3335
toggleThrottle ? throttledCallback() : callback()
3436
}
3537
})
36-
3738
if (ref.current) observer.observe(ref.current)
3839
return () => observer.disconnect()
39-
}, [ref, toggleThrottle, defaultWidth, defaultHeight])
40+
}, [ref, toggleThrottle, defaultWidth, defaultHeight, data])
4041

4142
return dimensions
4243
}

0 commit comments

Comments
 (0)