Appearance
useResizeObserver
Reports changes to the dimensions of an Element's content or the border-box
Demo
Usage
tsx
import { useResizeObserver } from '@reause/core'
import { useRef, useState } from 'react'
const el = useRef<HTMLTextAreaElement | null>(null)
const [text, setText] = useState('')
useResizeObserver(el, (entries) => {
const { width, height } = entries[0].contentRect
setText(`width: ${width}, height: ${height}`)
})Type Declarations
ts
export type TargetElement = HTMLElement | SVGElement | undefined | null
export type ElementTarget<T extends TargetElement = TargetElement> = RefObject<T | null>
export type ElementTargetOrArray<T extends TargetElement = TargetElement> = ElementTarget<T> | ElementTarget<T>[]
export interface UseResizeObserverOptions extends ResizeObserverOptions, ConfigurableWindow {
}
export interface UseResizeObserverReturn {
isSupported: boolean;
stop: () => void;
}
export function useResizeObserver(target: ElementTargetOrArray, callback: ResizeObserverCallback, options?: UseResizeObserverOptions): UseResizeObserverReturn