| 'use client' | |
| import React from 'react' | |
| export enum MediaType { | |
| mobile = 'mobile', | |
| tablet = 'tablet', | |
| pc = 'pc', | |
| } | |
| const useBreakpoints = () => { | |
| const [width, setWidth] = React.useState(globalThis.innerWidth); | |
| const media = (() => { | |
| if (width <= 640) return MediaType.mobile; | |
| if (width <= 768) return MediaType.tablet; | |
| return MediaType.pc; | |
| })(); | |
| React.useEffect(() => { | |
| const handleWindowResize = () => setWidth(window.innerWidth); | |
| window.addEventListener("resize", handleWindowResize); | |
| return () => window.removeEventListener("resize", handleWindowResize); | |
| }, []); | |
| return media; | |
| } | |
| export default useBreakpoints |