first commit

This commit is contained in:
2025-04-24 13:11:28 +08:00
commit ff9c54d5e4
5960 changed files with 834111 additions and 0 deletions

View File

@@ -0,0 +1,42 @@
import { useLayoutEffect, useRef, useCallback, RefObject } from 'react'
function useResizeObserver(
observedElement: RefObject<HTMLElement>,
observedData: any,
callback: (observedElement: ResizeObserverEntry) => void
) {
const resizeObserver = useRef<ResizeObserver>()
const observe = useCallback(() => {
resizeObserver.current = new ResizeObserver(function (elementsObserved) {
callback(elementsObserved[0])
})
}, [callback])
function unobserve(observedCurrent: HTMLElement) {
if (resizeObserver.current) {
resizeObserver.current.unobserve(observedCurrent)
}
}
useLayoutEffect(() => {
if ('ResizeObserver' in window) {
const observedCurrent = observedElement && observedElement.current
if (observedCurrent) {
observe()
}
if (resizeObserver.current && observedCurrent) {
resizeObserver.current.observe(observedCurrent)
}
return () => {
if (observedCurrent) {
unobserve(observedCurrent)
}
}
}
}, [observedElement, observedData, observe])
}
export default useResizeObserver