import React from 'react'; import { NativeModules } from 'react-native'; import StackViewLayout from './StackViewLayout'; import Transitioner from '../Transitioner'; import StackActions from '../../routers/StackActions'; import TransitionConfigs from './StackViewTransitionConfigs'; const NativeAnimatedModule = NativeModules && NativeModules.NativeAnimatedModule; class StackView extends React.Component { static defaultProps = { navigationConfig: { mode: 'card', }, }; render() { return ( { const { navigationConfig, navigation } = this.props; const onTransitionEnd = this.props.onTransitionEnd || navigationConfig.onTransitionEnd; if (transition.navigation.state.isTransitioning) { navigation.dispatch( StackActions.completeTransition({ key: navigation.state.key, }) ); } onTransitionEnd && onTransitionEnd(transition, lastTransition); }} /> ); } _configureTransition = (transitionProps, prevTransitionProps) => { return { ...TransitionConfigs.getTransitionConfig( this.props.navigationConfig.transitionConfig, transitionProps, prevTransitionProps, this.props.navigationConfig.mode === 'modal' ).transitionSpec, useNativeDriver: !!NativeAnimatedModule, }; }; _render = (transitionProps, lastTransitionProps) => { const { screenProps, navigationConfig } = this.props; return ( ); }; } export default StackView;