mirror of
https://github.com/AustinKelsay/plebdevs.git
synced 2025-06-06 18:31:00 +00:00
27 lines
744 B
JavaScript
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;
|