supermemory/apps/web/hooks/use-resize-observer.ts
2025-08-21 08:40:44 -07:00

23 lines
524 B
TypeScript

import { useEffect, useState } from "react";
export default function useResizeObserver<T extends HTMLElement>(
ref: React.RefObject<T | null>,
) {
const [size, setSize] = useState({ width: 0, height: 0 });
useEffect(() => {
if (!ref.current) return;
const observer = new ResizeObserver(([entry]) => {
setSize({
width: entry?.contentRect.width ?? 0,
height: entry?.contentRect.height ?? 0,
});
});
observer.observe(ref.current);
return () => observer.disconnect();
}, [ref]);
return size;
}