Files
gpustack-ui/src/components/logs-viewer/use-size.ts
T
2024-12-02 17:00:26 +08:00

28 lines
599 B
TypeScript

import { useEffect, useState } from 'react';
const useResizeObserver = (ref: React.RefObject<HTMLElement>) => {
const [size, setSize] = useState({ width: 0, height: 0 });
useEffect(() => {
const element = ref.current;
if (!element) return;
const observer = new ResizeObserver((entries) => {
if (entries[0]) {
const { width, height } = entries[0].contentRect;
setSize({ width, height });
}
});
observer.observe(element);
return () => {
observer.disconnect();
};
}, [ref]);
return size;
};
export default useResizeObserver;