native-base
Version:
Essential cross-platform UI components for React Native
26 lines (22 loc) • 745 B
text/typescript
import type {
UseResponsiveQueryParams,
UseResponsiveQueryReturnType,
} from './types';
import { useWindowDimensions } from 'react-native';
import { useStableMemo } from './useStableMemo';
import { getResponsiveStylesImpl } from './common';
export const useResponsiveQuery = (
queries?: UseResponsiveQueryParams
): UseResponsiveQueryReturnType => {
const windowWidth = useWindowDimensions().width;
const values = useStableMemo(() => {
const getResponsiveStyles = getResponsiveStylesImpl(windowWidth);
if (queries) {
const { styles } = getResponsiveStyles(queries);
return { styles, getResponsiveStyles };
} else {
return { getResponsiveStyles };
}
}, [queries, windowWidth]);
return values;
};