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 { ScenesReducer, HeaderBackButton } from 'react-navigation-stack'; import { ScreenStack, Screen, ScreenStackHeaderConfig, ScreenStackHeaderLeftView, ScreenStackHeaderRightView, ScreenStackHeaderTitleView, } from 'react-native-screens'; class StackView extends React.Component { _removeScene = scene => { const { navigation } = this.props; navigation.dispatch( NavigationActions.back({ key: scene.route.key, immediate: true, }) ); navigation.dispatch(StackActions.completeTransition()); }; _renderHeaderConfig = (scene, scenes) => { const { navigationConfig } = this.props; const { options } = scene.descriptor; const { headerMode } = navigationConfig; const { title, headerStyle, headerTitleStyle, headerBackTitleStyle, headerBackTitle, headerTintColor, gestureEnabled, largeTitle, translucent, } = options; 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, }; const hasHeader = headerMode !== 'none' && options.header !== null; if (!hasHeader) { return