plebdevs/src/hooks/useWindowWidth.js
2024-03-18 19:32:43 -05:00

27 lines
744 B
JavaScript

import { useState, useEffect } from 'react';
const useWindowWidth = () => {
const [windowWidth, setWindowWidth] = useState(undefined);
useEffect(() => {
// Handler to call on window resize
function handleResize() {
// Set window width to state
setWindowWidth(window.innerWidth);
}
// Add event listener
window.addEventListener('resize', handleResize);
// Call handler right away so state gets updated with initial window size
handleResize();
// Remove event listener on cleanup
return () => window.removeEventListener('resize', handleResize);
}, []); // Empty array ensures that effect is only run on mount and unmount
return windowWidth;
};
export default useWindowWidth;