native-base
Version:
Essential cross-platform UI components for React Native
22 lines (20 loc) • 645 B
text/typescript
import { useSafeAreaInsets } from 'react-native-safe-area-context';
import { getSortedProps, calculatePaddingProps } from './utils';
import { useTheme } from './../useTheme';
export function useSafeArea(props: any) {
const insets = useSafeAreaInsets();
const sizes = useTheme().sizes;
const { safeAreaProps, paddingProps, sansPaddingProps } = getSortedProps(
props
);
if (!Object.keys(safeAreaProps).length) {
return props;
}
let calcualtedPaddingProps = calculatePaddingProps(
safeAreaProps,
paddingProps,
insets,
sizes
);
return { ...sansPaddingProps, ...paddingProps, ...calcualtedPaddingProps };
}