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