import React from 'react'; import { StyleSheet, Text } from 'react-native'; import { StackRouter, SceneView, StackActions, NavigationActions, createNavigator, } from '@react-navigation/core'; import { createKeyboardAwareNavigator } from '@react-navigation/native'; import { HeaderBackButton } from 'react-navigation-stack'; import { ScreenStack, Screen, ScreenStackHeaderConfig, ScreenStackHeaderLeftView, ScreenStackHeaderRightView, ScreenStackHeaderTitleView, } from 'react-native-screens'; class StackView extends React.Component { _removeScene = route => { const { navigation } = this.props; navigation.dispatch( NavigationActions.back({ key: route.key, immediate: true, }) ); navigation.dispatch(StackActions.completeTransition()); }; _renderHeaderConfig = (index, route, descriptor) => { const { navigationConfig } = this.props; const { options } = descriptor; const { headerMode } = navigationConfig; const { title, headerStyle, headerTitleStyle, headerBackTitleStyle, headerBackTitle, headerTintColor, gestureEnabled, largeTitle, headerLargeTitleStyle, translucent, hideShadow, } = options; const scene = { index, key: route.key, route, descriptor, }; const headerOptions = { translucent: translucent === undefined ? false : translucent, title, titleFontFamily: headerTitleStyle && headerTitleStyle.fontFamily, titleColor: headerTintColor, titleFontSize: headerTitleStyle && headerTitleStyle.fontSize, backTitle: headerBackTitle, backTitleFontFamily: headerBackTitleStyle && headerBackTitleStyle.fontFamily, backTitleFontSize: headerBackTitleStyle && headerBackTitleStyle.fontSize, color: headerTintColor, gestureEnabled: gestureEnabled === undefined ? true : gestureEnabled, largeTitle, largeTitleFontFamily: headerLargeTitleStyle && headerLargeTitleStyle.fontFamily, largeTitleFontSize: headerLargeTitleStyle && headerLargeTitleStyle.fontSize, hideShadow, }; const hasHeader = headerMode !== 'none' && options.header !== null; if (!hasHeader) { return