6b244c3afded688c9e3fc3f77a620959.json 4.73 KB
{"ast":null,"code":"var _interopRequireDefault=require(\"@babel/runtime/helpers/interopRequireDefault\");Object.defineProperty(exports,\"__esModule\",{value:true});exports.default=void 0;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=_interopRequireDefault(require(\"react\"));var _withNavigation=_interopRequireDefault(require(\"./withNavigation\"));var EventNameToPropName={willFocus:'onWillFocus',didFocus:'onDidFocus',willBlur:'onWillBlur',didBlur:'onDidBlur'};var EventNames=Object.keys(EventNameToPropName);var NavigationEvents=function(_React$Component){(0,_inherits2.default)(NavigationEvents,_React$Component);function NavigationEvents(){var _getPrototypeOf2;var _this;(0,_classCallCheck2.default)(this,NavigationEvents);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)(NavigationEvents)).call.apply(_getPrototypeOf2,[this].concat(args)));_this.getPropListener=function(eventName){return _this.props[EventNameToPropName[eventName]];};return _this;}(0,_createClass2.default)(NavigationEvents,[{key:\"componentDidMount\",value:function componentDidMount(){var _this2=this;this.subscriptions={};EventNames.forEach(function(eventName){_this2.subscriptions[eventName]=_this2.props.navigation.addListener(eventName,function(){var propListener=_this2.getPropListener(eventName);return propListener&&propListener.apply(void 0,arguments);});});}},{key:\"componentWillUnmount\",value:function componentWillUnmount(){var _this3=this;EventNames.forEach(function(eventName){_this3.subscriptions[eventName].remove();});}},{key:\"render\",value:function render(){return null;}}]);return NavigationEvents;}(_react.default.Component);var _default=(0,_withNavigation.default)(NavigationEvents);exports.default=_default;","map":{"version":3,"sources":["NavigationEvents.js"],"names":["EventNameToPropName","willFocus","didFocus","willBlur","didBlur","EventNames","Object","NavigationEvents","React","Component","getPropListener","propListener","withNavigation"],"mappings":"6nBAAA,oDACA,wEAEA,GAAMA,CAAAA,mBAAmB,CAAG,CAC1BC,SAAS,CADiB,aAAA,CAE1BC,QAAQ,CAFkB,YAAA,CAG1BC,QAAQ,CAHkB,YAAA,CAI1BC,OAAO,CAJT,WAA4B,CAA5B,CAOA,GAAMC,CAAAA,UAAU,CAAGC,MAAM,CAANA,IAAAA,CAAnB,mBAAmBA,CAAnB,CAEMC,GAAAA,CAAAA,gB,0dACJG,e,CAAkB,SAAA,SAAA,CAAS,CAAA,MAAI,CAAA,KAAA,CAAA,KAAA,CAAWV,mBAAmB,CAAlC,SAAkC,CAA9B,CAAJ,C,uHAEP,CAAA,GAAA,CAAA,MAAA,CAAA,IAAA,CAClB,KAAA,aAAA,CAAA,EAAA,CAKAK,UAAU,CAAVA,OAAAA,CAAmB,SAAA,SAAA,CAAa,CAC9B,MAAI,CAAJ,aAAA,CAAA,SAAA,EAAgC,MAAI,CAAJ,KAAA,CAAA,UAAA,CAAA,WAAA,CAAA,SAAA,CAE9B,UAAa,CACX,GAAMM,CAAAA,YAAY,CAAG,MAAI,CAAJ,eAAA,CAArB,SAAqB,CAArB,CACA,MAAOA,CAAAA,YAAY,EAAIA,YAAY,CAAZA,KAAAA,CAAAA,IAAAA,EAAAA,CAAvB,SAAuBA,CAAvB,CAJJ,CAAgC,CAAhC,CADFN,CAAAA,E,oEAWqB,CAAA,GAAA,CAAA,MAAA,CAAA,IAAA,CACrBA,UAAU,CAAVA,OAAAA,CAAmB,SAAA,SAAA,CAAa,CAC9B,MAAI,CAAJ,aAAA,CAAA,SAAA,EAAA,MAAA,GADFA,CAAAA,E,wCAKO,CACP,MAAA,KAAA,C,+BA3B2BG,eAAMC,S,CAA/BF,C,aA+BSK,4BAAf,gBAAeA,C","sourcesContent":["import React from 'react';\nimport withNavigation from './withNavigation';\n\nconst EventNameToPropName = {\n  willFocus: 'onWillFocus',\n  didFocus: 'onDidFocus',\n  willBlur: 'onWillBlur',\n  didBlur: 'onDidBlur',\n};\n\nconst EventNames = Object.keys(EventNameToPropName);\n\nclass NavigationEvents extends React.Component {\n  getPropListener = eventName => this.props[EventNameToPropName[eventName]];\n\n  componentDidMount() {\n    this.subscriptions = {};\n\n    // We register all navigation listeners on mount to ensure listener stability across re-render\n    // A former implementation was replacing (removing/adding) listeners on all update (if prop provided)\n    // but there were issues (see https://github.com/react-navigation/react-navigation/issues/5058)\n    EventNames.forEach(eventName => {\n      this.subscriptions[eventName] = this.props.navigation.addListener(\n        eventName,\n        (...args) => {\n          const propListener = this.getPropListener(eventName);\n          return propListener && propListener(...args);\n        }\n      );\n    });\n  }\n\n  componentWillUnmount() {\n    EventNames.forEach(eventName => {\n      this.subscriptions[eventName].remove();\n    });\n  }\n\n  render() {\n    return null;\n  }\n}\n\nexport default withNavigation(NavigationEvents);\n"]},"metadata":{},"sourceType":"script"}