Use Dimensions
fancy/use-dimensionsFreeHook
A hook component.
Install it
npx shadcn@latest add https://www.fancycomponents.dev/r/use-dimensions.jsonSource
1import { RefObject, useEffect, useState } from "react"23interface Dimensions {4 width: number5 height: number6}78export function useDimensions(9 ref: RefObject<HTMLElement | SVGElement | null>10): Dimensions {11 const [dimensions, setDimensions] = useState<Dimensions>({12 width: 0,13 height: 0,14 })1516 useEffect(() => {17 const updateDimensions = () => {18 if (ref.current) {19 const { width, height } = ref.current.getBoundingClientRect()20 setDimensions({ width, height })21 }22 }2324 updateDimensions()25 window.addEventListener("resize", updateDimensions)2627 return () => window.removeEventListener("resize", updateDimensions)28 }, [ref])2930 return dimensions31}
Files it writes
More from fancy
All 158 items| Component | Registry | Kind | Access | Installs | Command |
|---|---|---|---|---|---|
| Use Debounced Dimensionsuse-debounced-dimensions | fancy | Hooks | Free | no deps | |
| Use Detect Browseruse-detect-browser | fancy | Hooks | Free | no deps | |
| Use Elastic Line Eventsuse-elastic-line-events | fancy | Hooks | Free | no deps | |
| Use Line Breakdownuse-line-breakdown | fancy | Hooks | Free | no deps | |
| Use Line Countuse-line-count | fancy | Hooks | Free | no deps | |
| Use Mounteduse-mounted | fancy | Hooks | Free | no deps | |
| Use Mouse Positionuse-mouse-position | fancy | Hooks | Free | no deps | |
| Use Mouse Position Refuse-mouse-position-ref | fancy | Hooks | Free | no deps |
