diff --git a/packages/stack/src/views/Header/HeaderBackButton.tsx b/packages/stack/src/views/Header/HeaderBackButton.tsx index 59dbf5ed..32b436a0 100644 --- a/packages/stack/src/views/Header/HeaderBackButton.tsx +++ b/packages/stack/src/views/Header/HeaderBackButton.tsx @@ -6,12 +6,17 @@ import { Platform, StyleSheet, LayoutChangeEvent, - MaskedViewIOS, + UIManager, } from 'react-native'; import Animated from 'react-native-reanimated'; +import MaskedView from '@react-native-community/masked-view'; import TouchableItem from '../TouchableItem'; import { HeaderBackButtonProps } from '../../types'; +const isMaskedViewAvailable = + // @ts-ignore + UIManager.getViewManagerConfig('RNCMaskedView') != null; + type Props = HeaderBackButtonProps & { tintColor: string; }; @@ -95,33 +100,43 @@ class HeaderBackButton extends React.Component { } const labelElement = ( - - {leftLabelText} - + + {leftLabelText} + + ); - if (backImage || Platform.OS !== 'ios') { + if (!isMaskedViewAvailable || backImage || Platform.OS !== 'ios') { // When a custom backimage is specified, we can't mask the label // Otherwise there might be weird effect due to our mask not being the same as the image return labelElement; } return ( - { } > - - {labelElement} - - + {labelElement} + ); }