Im trying to create a range input that displays a tooltip right above the slider thumb.
I went through some vanilla JS examples online and it seems that I need to ha
Here is a TypeScript version of @meseern's answer that avoids unnecessary assignments on re-render:
import React, { useState, useEffect } from 'react';
export function useContainerDimensions(myRef: React.RefObject) {
const [dimensions, setDimensions] = useState({ width: 0, height: 0 });
useEffect(() => {
const getDimensions = () => ({
width: (myRef && myRef.current.offsetWidth) || 0,
height: (myRef && myRef.current.offsetHeight) || 0,
});
const handleResize = () => {
setDimensions(getDimensions());
};
if (myRef.current) {
setDimensions(getDimensions());
}
window.addEventListener('resize', handleResize);
return () => {
window.removeEventListener('resize', handleResize);
};
}, [myRef]);
return dimensions;
}