summaryrefslogtreecommitdiff
path: root/apps/web/src/hooks/use-container-size.ts
blob: 6f6f89be913da4d9d7f288a1e316621996a3ff12 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import { useCallback, useState } from "react";
import { useResizeObserver } from "./use-resize-observer";

export function useContainerSize({
	containerRef,
}: {
	containerRef: React.RefObject<HTMLElement | null>;
}) {
	const [size, setSize] = useState({ width: 0, height: 0 });

	const onResize = useCallback((entry: ResizeObserverEntry) => {
		const { width, height } = entry.contentRect;
		setSize({ width, height });
	}, []);

	useResizeObserver({ ref: containerRef, onResize });

	return size;
}