diff options
Diffstat (limited to 'src/alf/breakpoints.ts')
-rw-r--r-- | src/alf/breakpoints.ts | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/alf/breakpoints.ts b/src/alf/breakpoints.ts new file mode 100644 index 000000000..934585644 --- /dev/null +++ b/src/alf/breakpoints.ts @@ -0,0 +1,28 @@ +import {useMemo} from 'react' +import {useMediaQuery} from 'react-responsive' + +export type Breakpoint = 'gtPhone' | 'gtMobile' | 'gtTablet' + +export function useBreakpoints(): Record<Breakpoint, boolean> & { + activeBreakpoint: Breakpoint | undefined +} { + const gtPhone = useMediaQuery({minWidth: 500}) + const gtMobile = useMediaQuery({minWidth: 800}) + const gtTablet = useMediaQuery({minWidth: 1300}) + return useMemo(() => { + let active: Breakpoint | undefined + if (gtTablet) { + active = 'gtTablet' + } else if (gtMobile) { + active = 'gtMobile' + } else if (gtPhone) { + active = 'gtPhone' + } + return { + activeBreakpoint: active, + gtPhone, + gtMobile, + gtTablet, + } + }, [gtPhone, gtMobile, gtTablet]) +} |