react-native-screens
Version:
Native navigation primitives for your React Native app.
29 lines • 1.15 kB
JavaScript
import { Platform } from 'react-native';
const formSheetModalHeight = 56;
export default function getDefaultHeaderHeight(layout, statusBarHeight, stackPresentation, isLargeHeader = false) {
// default header heights
let headerHeight = Platform.OS === 'android' ? 56 : 64;
if (Platform.OS === 'ios') {
const isLandscape = layout.width > layout.height;
const isFormSheetModal = stackPresentation === 'modal' || stackPresentation === 'formSheet' || stackPresentation === 'pageSheet';
if (isFormSheetModal && !isLandscape) {
// `modal`, `formSheet` and `pageSheet` presentations do not take whole screen, so should not take the inset.
statusBarHeight = 0;
}
if (Platform.isPad || Platform.isTV) {
headerHeight = isFormSheetModal ? formSheetModalHeight : 50;
} else {
if (isLandscape) {
headerHeight = 32;
} else {
if (isFormSheetModal) {
headerHeight = formSheetModalHeight;
} else {
headerHeight = isLargeHeader ? 96 : 44;
}
}
}
}
return headerHeight + statusBarHeight;
}
//# sourceMappingURL=getDefaultHeaderHeight.js.map