react-navigation-stack
Version:
Stack navigator component for React Navigation
2 lines • 5.87 kB
JavaScript
var _interopRequireDefault=require("@babel/runtime/helpers/interopRequireDefault");var _interopRequireWildcard=require("@babel/runtime/helpers/interopRequireWildcard");Object.defineProperty(exports,"__esModule",{value:true});exports.default=void 0;var _extends2=_interopRequireDefault(require("@babel/runtime/helpers/extends"));var _defineProperty2=_interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));var _classCallCheck2=_interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));var _createClass2=_interopRequireDefault(require("@babel/runtime/helpers/createClass"));var _possibleConstructorReturn2=_interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));var _getPrototypeOf3=_interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));var _inherits2=_interopRequireDefault(require("@babel/runtime/helpers/inherits"));var React=_interopRequireWildcard(require("react"));var _reactNative=require("react-native");var _reactNavigation=require("react-navigation");var _StackViewLayout=_interopRequireDefault(require("./StackViewLayout"));var _Transitioner=_interopRequireDefault(require("../Transitioner"));var _StackViewTransitionConfigs=_interopRequireDefault(require("./StackViewTransitionConfigs"));var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-stack/src/views/StackView/StackView.tsx";function ownKeys(object,enumerableOnly){var keys=Object.keys(object);if(Object.getOwnPropertySymbols){var symbols=Object.getOwnPropertySymbols(object);if(enumerableOnly)symbols=symbols.filter(function(sym){return Object.getOwnPropertyDescriptor(object,sym).enumerable;});keys.push.apply(keys,symbols);}return keys;}function _objectSpread(target){for(var i=1;i<arguments.length;i++){var source=arguments[i]!=null?arguments[i]:{};if(i%2){ownKeys(source,true).forEach(function(key){(0,_defineProperty2.default)(target,key,source[key]);});}else if(Object.getOwnPropertyDescriptors){Object.defineProperties(target,Object.getOwnPropertyDescriptors(source));}else{ownKeys(source).forEach(function(key){Object.defineProperty(target,key,Object.getOwnPropertyDescriptor(source,key));});}}return target;}var USE_NATIVE_DRIVER=_reactNative.Platform.OS==='android'||_reactNative.Platform.OS==='ios';var DefaultNavigationConfig={mode:'card',cardShadowEnabled:true,cardOverlayEnabled:false};var StackView=function(_React$Component){(0,_inherits2.default)(StackView,_React$Component);function StackView(){var _getPrototypeOf2;var _this;(0,_classCallCheck2.default)(this,StackView);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=(0,_possibleConstructorReturn2.default)(this,(_getPrototypeOf2=(0,_getPrototypeOf3.default)(StackView)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.configureTransition=function(transitionProps,prevTransitionProps){return _objectSpread({useNativeDriver:USE_NATIVE_DRIVER},_StackViewTransitionConfigs.default.getTransitionConfig(_this.props.navigationConfig.transitionConfig,transitionProps,prevTransitionProps,_this.props.navigationConfig.mode==='modal').transitionSpec);};_this.getShadowEnabled=function(){var navigationConfig=_this.props.navigationConfig;return navigationConfig&&navigationConfig.hasOwnProperty('cardShadowEnabled')?navigationConfig.cardShadowEnabled:DefaultNavigationConfig.cardShadowEnabled;};_this.getCardOverlayEnabled=function(){var navigationConfig=_this.props.navigationConfig;return navigationConfig&&navigationConfig.hasOwnProperty('cardOverlayEnabled')?navigationConfig.cardOverlayEnabled:DefaultNavigationConfig.cardOverlayEnabled;};_this.renderStackviewLayout=function(transitionProps,lastTransitionProps){var _this$props=_this.props,screenProps=_this$props.screenProps,navigationConfig=_this$props.navigationConfig;return React.createElement(_StackViewLayout.default,(0,_extends2.default)({},navigationConfig,{cardShadowEnabled:_this.getShadowEnabled(),cardOverlayEnabled:_this.getCardOverlayEnabled(),onGestureBegin:_this.props.onGestureBegin,onGestureCanceled:_this.props.onGestureCanceled,onGestureEnd:_this.props.onGestureEnd,screenProps:screenProps,transitionProps:transitionProps,lastTransitionProps:lastTransitionProps,__source:{fileName:_jsxFileName,lineNumber:104}}));};_this.handleTransitionEnd=function(transition,lastTransition){var _this$props2=_this.props,navigationConfig=_this$props2.navigationConfig,navigation=_this$props2.navigation,_this$props2$onTransi=_this$props2.onTransitionEnd,onTransitionEnd=_this$props2$onTransi===void 0?navigationConfig.onTransitionEnd:_this$props2$onTransi;var transitionDestKey=transition.scene.route.key;var isCurrentKey=navigation.state.routes[navigation.state.index].key===transitionDestKey;if(transition.navigation.state.isTransitioning&&isCurrentKey){navigation.dispatch(_reactNavigation.StackActions.completeTransition({key:navigation.state.key,toChildKey:transitionDestKey}));}onTransitionEnd&&onTransitionEnd(transition,lastTransition);};return _this;}(0,_createClass2.default)(StackView,[{key:"render",value:function render(){return React.createElement(_Transitioner.default,{render:this.renderStackviewLayout,configureTransition:this.configureTransition,screenProps:this.props.screenProps,navigation:this.props.navigation,descriptors:this.props.descriptors,onTransitionStart:this.props.onTransitionStart||this.props.navigationConfig.onTransitionStart,onTransitionEnd:this.handleTransitionEnd,__source:{fileName:_jsxFileName,lineNumber:41}});}},{key:"componentDidMount",value:function componentDidMount(){var navigation=this.props.navigation;if(navigation.state.isTransitioning){navigation.dispatch(_reactNavigation.StackActions.completeTransition({key:navigation.state.key}));}}}]);return StackView;}(React.Component);var _default=StackView;exports.default=_default;
//# sourceMappingURL=StackView.js.map