| '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 |