A library to help you design your react-native app for the android or iPhone X, XS, XS Max & XR
This App forked from react-native-iphone-x-helper and add some helpers to fit my need
npm i react-native-platform-helper --save
this method it for creating stylesheets with the iPhone X in mind
iphoneXStyle - the style to apply if you're on iPhone X
regularStyle (optional) - the style to apply if you're not on iPhone X
// in style.js
import { StyleSheet } from 'react-native';
import { ifIphoneX } from 'react-native-platform-helper'
export default StyleSheet.create({
header:{
position: 'absolute',
top: 0,
left: 0,
right: 0,
padding:10,
height: 60,
backgroundColor: 'transparent',
...ifIphoneX({
paddingTop: 50
}, {
paddingTop: 20
})
},
});
same as ifIphoneX but for the android
returns - true
if you running on an iPhone X.
import { isIphoneX } from 'react-native-platform-helper'
// ...
if (isIphoneX()) {
// do this...
} else {
// do that...
}
returns - true
if you running on android.
safe - whether you want for get safe area height or not
returns - the height of the status bar: 44
for safe iPhoneX, 30
for unsafe iPhoneX, 20
for other iOS devices and StatusBar.currentHeight
for Android.
// in style.js
import { StyleSheet } from 'react-native';
import { getStatusBarHeight } from 'react-native-platform-helper'
export default StyleSheet.create({
header:{
position: 'absolute',
top: 0,
left: 0,
right: 0,
padding:10,
height: 60,
backgroundColor: 'transparent',
paddingTop: getStatusBarHeight()
},
});
NOTE: If your using the the unsafe statusbar height, make sure to add 14dp of padding to your content, otherwise it's going to be flush against the notch
returns - the height of the bottom to fit the safe area: 34
for iPhone X and 0
for other devices.
// in style.js
import { StyleSheet } from 'react-native';
import { getBottomSpace } from 'react-native-platform-helper'
export default StyleSheet.create({
totalview: {
flex: 1,
backgroundColor: 'transparent',
marginBottom: getBottomSpace()
},
});
MIT