UNPKG

react-navigation-stack

Version:
2 lines 5.73 kB
import _defineProperty from"@babel/runtime/helpers/defineProperty";import _classCallCheck from"@babel/runtime/helpers/classCallCheck";import _createClass from"@babel/runtime/helpers/createClass";import _possibleConstructorReturn from"@babel/runtime/helpers/possibleConstructorReturn";import _getPrototypeOf from"@babel/runtime/helpers/getPrototypeOf";import _inherits from"@babel/runtime/helpers/inherits";var _jsxFileName="/Users/satya/Workspace/Callstack/react-navigation-stack/src/views/Header/HeaderBackButton.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){_defineProperty(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;}import*as React from'react';import{I18nManager,Image,Text,View,Platform,StyleSheet}from'react-native';import TouchableItem from'../TouchableItem';import defaultBackImage from'../assets/back-icon.png';import BackButtonWeb from'./BackButtonWeb';var HeaderBackButton=function(_React$PureComponent){_inherits(HeaderBackButton,_React$PureComponent);function HeaderBackButton(){var _getPrototypeOf2;var _this;_classCallCheck(this,HeaderBackButton);for(var _len=arguments.length,args=new Array(_len),_key=0;_key<_len;_key++){args[_key]=arguments[_key];}_this=_possibleConstructorReturn(this,(_getPrototypeOf2=_getPrototypeOf(HeaderBackButton)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.state={};_this.handleTextLayout=function(e){if(_this.state.initialTextWidth){return;}_this.setState({initialTextWidth:e.nativeEvent.layout.x+e.nativeEvent.layout.width});};_this.getTitleText=function(){var _this$props=_this.props,width=_this$props.width,title=_this$props.title,truncatedTitle=_this$props.truncatedTitle;var initialTextWidth=_this.state.initialTextWidth;if(title===null){return null;}else if(!title){return truncatedTitle;}else if(initialTextWidth&&width&&initialTextWidth>width){return truncatedTitle;}else{return title;}};return _this;}_createClass(HeaderBackButton,[{key:"renderBackImage",value:function renderBackImage(){var _this$props2=this.props,backImage=_this$props2.backImage,backTitleVisible=_this$props2.backTitleVisible,tintColor=_this$props2.tintColor;var title=this.getTitleText();if(React.isValidElement(backImage)){return backImage;}else if(backImage){return backImage({tintColor:tintColor,title:title});}else{return React.createElement(Image,{style:[styles.icon,!!backTitleVisible&&styles.iconWithTitle,!!tintColor&&{tintColor:tintColor}],source:defaultBackImage,fadeDuration:0,__source:{fileName:_jsxFileName,lineNumber:62}});}}},{key:"maybeRenderTitle",value:function maybeRenderTitle(){var _this$props3=this.props,allowFontScaling=_this$props3.allowFontScaling,backTitleVisible=_this$props3.backTitleVisible,titleStyle=_this$props3.titleStyle,tintColor=_this$props3.tintColor;var backTitleText=this.getTitleText();if(!backTitleVisible||backTitleText===null){return null;}return React.createElement(Text,{accessible:false,onLayout:this.handleTextLayout,style:[styles.title,!!tintColor&&{color:tintColor},titleStyle],numberOfLines:1,allowFontScaling:!!allowFontScaling,__source:{fileName:_jsxFileName,lineNumber:105}},this.getTitleText());}},{key:"render",value:function render(){var _this$props4=this.props,onPress=_this$props4.onPress,pressColorAndroid=_this$props4.pressColorAndroid,title=_this$props4.title,disabled=_this$props4.disabled;var button=React.createElement(TouchableItem,{disabled:disabled,accessible:true,accessibilityRole:"button",accessibilityComponentType:"button",accessibilityLabel:title?title+", back":'Go back',accessibilityTraits:"button",testID:"header-back",delayPressIn:0,onPress:disabled?undefined:onPress,pressColor:pressColorAndroid,style:[styles.container,disabled&&styles.disabled],borderless:true,__source:{fileName:_jsxFileName,lineNumber:121}},React.createElement(View,{style:styles.container,__source:{fileName:_jsxFileName,lineNumber:135}},this.renderBackImage(),this.maybeRenderTitle()));if(Platform.OS==='ios'){return button;}else{return React.createElement(View,{style:styles.androidButtonWrapper,__source:{fileName:_jsxFileName,lineNumber:145}},button);}}}]);return HeaderBackButton;}(React.PureComponent);HeaderBackButton.defaultProps={pressColorAndroid:'rgba(0, 0, 0, .32)',tintColor:Platform.select({ios:'#037aff',web:'#5f6368'}),truncatedTitle:'Back',backImage:Platform.select({web:BackButtonWeb})};var styles=StyleSheet.create({disabled:{opacity:0.5},androidButtonWrapper:_objectSpread({margin:13,backgroundColor:'transparent'},Platform.select({web:{marginLeft:21},default:{}})),container:{alignItems:'center',flexDirection:'row',backgroundColor:'transparent'},title:{fontSize:17,paddingRight:10},icon:Platform.select({ios:{backgroundColor:'transparent',height:21,width:13,marginLeft:9,marginRight:22,marginVertical:12,resizeMode:'contain',transform:[{scaleX:I18nManager.isRTL?-1:1}]},default:{height:24,width:24,margin:3,resizeMode:'contain',backgroundColor:'transparent',transform:[{scaleX:I18nManager.isRTL?-1:1}]}}),iconWithTitle:Platform.OS==='ios'?{marginRight:6}:{}});export default HeaderBackButton; //# sourceMappingURL=HeaderBackButton.js.map