From 7772ac55eb42edd804939907a9342ec8c29267de Mon Sep 17 00:00:00 2001 From: "satyajit.happy" Date: Thu, 1 Aug 2019 02:59:46 +0200 Subject: [PATCH] fix: use MaskedView from @react-native-community/masked-view --- .../src/views/Header/HeaderBackButton.tsx | 65 ++++++++++--------- 1 file changed, 35 insertions(+), 30 deletions(-) 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} + ); }