Files
frontend/src/hooks/responsive/useScreenSize.ts

35 lines
735 B
TypeScript
Raw Normal View History

/**
* Hook
*/
import { useMemo } from 'react';
import { useWindowDimensions } from './useWindowDimensions';
import { useBreakpoint } from './useBreakpoint';
export interface ScreenSizeInfo {
width: number;
height: number;
isMobile: boolean;
isTablet: boolean;
isDesktop: boolean;
isWide: boolean;
}
/**
* Hook
*
*/
export function useScreenSize(): ScreenSizeInfo {
const { width, height } = useWindowDimensions();
const { isMobile, isTablet, isDesktop, isWide } = useBreakpoint();
return useMemo(() => ({
width,
height,
isMobile,
isTablet,
isDesktop,
isWide,
}), [width, height, isMobile, isTablet, isDesktop, isWide]);
}