2026-03-25 16:47:22 +01:00
|
|
|
import { useCallback, useState } from "react";
|
|
|
|
|
import { useResizeObserver } from "./use-resize-observer";
|
2026-02-10 16:28:21 +01:00
|
|
|
|
|
|
|
|
export function useContainerSize({
|
|
|
|
|
containerRef,
|
|
|
|
|
}: {
|
|
|
|
|
containerRef: React.RefObject<HTMLElement | null>;
|
|
|
|
|
}) {
|
|
|
|
|
const [size, setSize] = useState({ width: 0, height: 0 });
|
|
|
|
|
|
2026-03-25 16:47:22 +01:00
|
|
|
const onResize = useCallback((entry: ResizeObserverEntry) => {
|
|
|
|
|
const { width, height } = entry.contentRect;
|
|
|
|
|
setSize({ width, height });
|
|
|
|
|
}, []);
|
2026-02-10 16:28:21 +01:00
|
|
|
|
2026-03-25 16:47:22 +01:00
|
|
|
useResizeObserver({ ref: containerRef, onResize });
|
2026-02-10 16:28:21 +01:00
|
|
|
|
|
|
|
|
return size;
|
|
|
|
|
}
|