Skip to content
This repository has been archived by the owner on Dec 6, 2023. It is now read-only.

TypeError: o is not a function. (In 'o()', 'o' is undefined) #768

Open
noway opened this issue Mar 22, 2021 · 13 comments
Open

TypeError: o is not a function. (In 'o()', 'o' is undefined) #768

noway opened this issue Mar 22, 2021 · 13 comments
Labels
bug Something isn't working

Comments

@noway
Copy link

noway commented Mar 22, 2021

Encountering this error straight after Getting Started installation. No connections are going through, I don't see my device in Reactotron Mac App:
IMG_9E9138262D87-1

TypeError: o is not a function. (In 'o()', 'o' is undefined)
r
    index.js:1:13042
d
    index.js:1:13222
EventTarget.prototype.dispatchEvent
    event-target-shim.js:818:39
_setReadyState
    FileReader.js:80:25
NativeFileReaderModule.readAsText.then$argument_0
    FileReader.js:118:28
tryCallOne
    core.js:37:14
setImmediate$argument_0
    core.js:123:25

reactotron config:

import Reactotron from 'reactotron-react-native'
import AsyncStorage from '@react-native-community/async-storage'

Reactotron
  .setAsyncStorageHandler(AsyncStorage) // AsyncStorage would either come from `react-native` or `@react-native-community/async-storage` depending on where you get it from
  .configure({
    name: "React Native Demo"
  }) // controls connection & communication settings
  .useReactNative() // add all built-in react native plugins
  .connect() // let's connect!

App.tsx:

if(__DEV__) {
  import('./ReactotronConfig').then(() => console.log('Reactotron Configured'))
}
import React from 'react'
import { StatusBar, Platform } from 'react-native'
// ... etc

react native info:

warn Your project is using deprecated "rnpm" config that will stop working from next release. Please use a "react-native.config.js" file to configure the React Native CLI. Migration guide: https://github.com/react-native-community/cli/blob/master/docs/configuration.md
warn The following packages use deprecated "rnpm" config that will stop working from next release:
  - react-native-comparison-slider: https://npmjs.com/package/react-native-comparison-slider
  - react-native-fetch-blob: https://npmjs.com/package/react-native-fetch-blob
  - react-native-music-control: https://npmjs.com/package/react-native-music-control
  - react-native-orientation: https://github.com/yamill/react-native-orientation#readme
  - react-native-vector-icons: https://github.com/oblador/react-native-vector-icons
  - react-native-video: https://npmjs.com/package/react-native-video
  - react-native-zip-archive: https://github.com/mockingbot/react-native-zip-archive
Please notify their maintainers about it. You can find more details at https://github.com/react-native-community/cli/blob/master/docs/configuration.md#migration-guide.
info Fetching system and libraries information...
System:
    OS: macOS 11.2.2
    CPU: (8) x64 Intel(R) Core(TM) i7-4980HQ CPU @ 2.80GHz
    Memory: 157.16 MB / 16.00 GB
    Shell: 5.8 - /bin/zsh
  Binaries:
    Node: 14.7.0 - /usr/local/bin/node
    Yarn: 1.22.4 - /usr/local/bin/yarn
    npm: 6.14.8 - /usr/local/bin/npm
    Watchman: 4.9.0 - /usr/local/bin/watchman
  SDKs:
    iOS SDK:
      Platforms: iOS 14.4, DriverKit 20.2, macOS 11.1, tvOS 14.3, watchOS 7.2
  IDEs:
    Android Studio: 3.6 AI-192.7142.36.36.6308749
    Xcode: 12.4/12D4e - /usr/bin/xcodebuild
  npmPackages:
    react: 16.9.0 => 16.9.0
    react-native: 0.61.5 => 0.61.5

This is the minified snippet of where the error happens. I don't know where that relates to the unminified code, pretty hard to debug a minified version.

            function d(a, c, d, e, g, i) {
                if (!i._skipReactotron) {
                    var j = null,
                        k = e ? e.indexOf("?") : -1; - 1 < k && (j = queryString.parse(e.substr(k)));
                    var l = i._trackingName,
                        m = h[l] || {};
                    h[l] = null;
                    var n = m.data,
                        o = m.stopTimer,
                        p = {
                            url: e || m.xhr._url,
                            method: i._method || null,
                            data: n,
                            headers: i._headers || null,
                            params: j
                        },
                        q = i.responseHeaders && i.responseHeaders["content-type"] || i.responseHeaders && i.responseHeaders["Content-Type"] || "",
                        r = function(c) {
                            var e = "~~~ skipped ~~~";
                            if (c) try {
                                e = JSON.parse(c)
                            } catch (a) {
                                e = d
                            }
                            var f = {
                                body: e,
                                status: a,
                                headers: i.responseHeaders || null
                            };
                            b.apiResponse(p, f, o())
                        },
                        s = ("string" == typeof d || "object" === _typeof(d)) && !f.test(q || "");
                    if (!s) r("");
                    else if ("blob" === g && "undefined" != typeof FileReader && d) {
                        var t = new FileReader,
                            u = function a() {
                                r(t.result), t.removeEventListener("loadend", a)
                            };
                        t.addEventListener("loadend", u), t.readAsText(d)
                    } else r(d)
                }
            }

This is where the error is coming from: https://github.com/infinitered/reactotron-react-native/blob/master/src/plugins/networking.ts#L115

@aluferraz
Copy link

+1

@pascal-mormin
Copy link

Any solution ?

@Tj3n
Copy link

Tj3n commented May 7, 2021

Any fixed yet...? this is getting really annoying when developing..

@stearruda
Copy link

I've experienced that a couple of times.
The only fixes were to reload the bundler or rebuild the app.
I would love to know what to fix this once and for all.

@mcarcaso
Copy link

mcarcaso commented Jun 3, 2021

This was annoying me too so I did a little digging and found that removing lines 22-26 from here did the trick for me: https://github.com/infinitered/ignite/blob/master/boilerplate/storybook/storybook.tsx#L22
I figured this wouldn't break reactotron because I noticed that reactotron is already set up here: https://github.com/infinitered/ignite/blob/master/boilerplate/app/models/environment.ts#L26
So my hunch is that the setup in storybook.tsx is conflicting with the setup in environment.ts but I'm not 100% sure about that. Can anybody confirm if this makes sense?
Reactotron still seems to work for me with that code removed but I'm not a heavy user of it so maybe there's something broken that I'm not seeing.

@Tj3n
Copy link

Tj3n commented Jun 14, 2021

This was annoying me too so I did a little digging and found that removing lines 22-26 from here did the trick for me: https://github.com/infinitered/ignite/blob/master/boilerplate/storybook/storybook.tsx#L22
I figured this wouldn't break reactotron because I noticed that reactotron is already set up here: https://github.com/infinitered/ignite/blob/master/boilerplate/app/models/environment.ts#L26
So my hunch is that the setup in storybook.tsx is conflicting with the setup in environment.ts but I'm not 100% sure about that. Can anybody confirm if this makes sense?
Reactotron still seems to work for me with that code removed but I'm not a heavy user of it so maybe there's something broken that I'm not seeing.

I'm still having this problem after commenting out that code, just simply save a model then problem appear again.

@casamia918
Copy link

I've been following this tutorial : https://shift.infinite.red/creating-a-trivia-app-with-ignite-bowser-part-ii-a286a978d0c8

I got this error message when I edit my react native code (question-screen) while fast refresh . I assume that this comes from memory garbage issue. Because fast refresh is well working on static data screen (demo-screen). But have problem in flatList which the item data comes from api source and saved in mobx store.

@jamonholmgren
Copy link
Member

Still looking into this -- it does look like it's an issue with Reactotron.

@jamonholmgren jamonholmgren added the bug Something isn't working label Jul 14, 2021
@aclement-rally
Copy link

FWIW @jamonholmgren, I did some very preliminary investigation from the minified code the issue seems to come from this specific code:

;(reactotron as any).apiResponse(tronRequest, tronResponse, stopTimer()) // TODO: Fix

Specifically, the case where a cached request is an empty object at:

const cachedRequest = requestCache[rid] || {}

Then stopTimer would be undefined

odjhey added a commit to odjhey/reactotron-react-native that referenced this issue Jan 23, 2022
@odjhey
Copy link
Contributor

odjhey commented Jan 23, 2022

our team was also having similar problems, we were not able to identify why the cache is getting cleared on hot-reload.

so we patched with below

diff --git a/src/plugins/networking.ts b/src/plugins/networking.ts
index 9a0c943..1923af8 100644
--- a/src/plugins/networking.ts
+++ b/src/plugins/networking.ts
@@ -112,7 +112,7 @@ export default <ReactotronSubtype = ReactotronCore>(pluginConfig: NetworkingOpti
       }

       // send this off to Reactotron
-      ;(reactotron as any).apiResponse(tronRequest, tronResponse, stopTimer()) // TODO: Fix
+      ;(reactotron as any).apiResponse(tronRequest, tronResponse, stopTimer ? stopTimer() : null) // TODO: Fix
     }

     // can we use the real response?

working fine so far. if you're using patch-package you may use below file patches/reactotron-react-native+5.0.1.patch to patch with the approach above

diff --git a/node_modules/reactotron-react-native/dist/index.js b/node_modules/reactotron-react-native/dist/index.js
index 8cb06db..c8af221 100644
--- a/node_modules/reactotron-react-native/dist/index.js
+++ b/node_modules/reactotron-react-native/dist/index.js
@@ -1 +1 @@
-'use strict';Object.defineProperty(exports,"__esModule",{value:!0});var reactNative=require("react-native"),reactotronCoreClient=require("reactotron-core-client"),getHost=require("rn-host-detect"),React=require("react"),XHRInterceptor=require("react-native/Libraries/Network/XHRInterceptor"),queryString=require("query-string");function _interopDefaultLegacy(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var getHost__default=_interopDefaultLegacy(getHost),React__default=_interopDefaultLegacy(React),XHRInterceptor__default=_interopDefaultLegacy(XHRInterceptor),queryString__default=_interopDefaultLegacy(queryString);function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread2(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function asyncGeneratorStep(a,b,c,d,e,f,g){try{var h=a[f](g),i=h.value}catch(a){return void c(a)}h.done?b(i):Promise.resolve(i).then(d,e)}function _asyncToGenerator(a){return function(){var b=this,c=arguments;return new Promise(function(d,e){function f(a){asyncGeneratorStep(h,d,e,f,g,"next",a)}function g(a){asyncGeneratorStep(h,d,e,f,g,"throw",a)}var h=a.apply(b,c);f(void 0)})}}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,c.key,c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),a}function _defineProperty(a,b,c){return b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _inherits(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function");a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),b&&_setPrototypeOf(a,b)}function _getPrototypeOf(a){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(a){return a.__proto__||Object.getPrototypeOf(a)},_getPrototypeOf(a)}function _setPrototypeOf(a,b){return _setPrototypeOf=Object.setPrototypeOf||function(a,b){return a.__proto__=b,a},_setPrototypeOf(a,b)}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(a){return!1}}function _assertThisInitialized(a){if(void 0===a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return a}function _possibleConstructorReturn(a,b){if(b&&("object"==typeof b||"function"==typeof b))return b;if(void 0!==b)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(a)}function _createSuper(a){var b=_isNativeReflectConstruct();return function(){var c,d=_getPrototypeOf(a);if(b){var e=_getPrototypeOf(this).constructor;c=Reflect.construct(d,arguments,e)}else c=d.apply(this,arguments);return _possibleConstructorReturn(this,c)}}function getReactNativeVersionWithModules(a){try{if(!a.PlatformConstants)return null;if(!a.PlatformConstants.reactNativeVersion)return null;var b=a.PlatformConstants.reactNativeVersion.major,c=a.PlatformConstants.reactNativeVersion.minor,d=a.PlatformConstants.reactNativeVersion.patch,e=a.PlatformConstants.reactNativeVersion.prerelease;if("number"!=typeof b)return null;var f=[];return f.push("".concat(b,".").concat(c,".").concat(d)),e&&f.push("-".concat(e)),f.join("")}catch(a){}return null}function getReactNativeVersion(){return getReactNativeVersionWithModules(reactNative.NativeModules)}function getReactNativeDimensionsWithDimensions(a,b){var c=Math.ceil;try{var d={},e={};return a&&(d={screenWidth:c(a.width),screenHeight:c(a.height),screenScale:a.scale,screenFontScale:a.fontScale}),b&&(e={windowWidth:c(b.width),windowHeight:c(b.height),windowScale:b.scale,windowFontScale:b.fontScale}),_objectSpread2(_objectSpread2({},d),e)}catch(a){}return null}function getReactNativeDimensions(){var a=null,b=null;try{a=reactNative.Dimensions.get("screen")}catch(a){}try{b=reactNative.Dimensions.get("window")}catch(a){}return getReactNativeDimensionsWithDimensions(a,b)}var PLUGIN_DEFAULTS$1={ignore:[]},asyncStorage=function(a){return function(b){var c,d,e,f,g,h,i,j=Object.assign({},PLUGIN_DEFAULTS$1,a||{}),k=j.ignore||PLUGIN_DEFAULTS$1.ignore,l=!1,m=function(a,c){b.send("asyncStorage.mutation",{action:a,data:c})},n=function(){var a=_asyncToGenerator(regeneratorRuntime.mark(function a(b,d,e){return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:try{0>k.indexOf(b)&&m("setItem",{key:b,value:d})}catch(a){}return a.abrupt("return",c(b,d,e));case 2:case"end":return a.stop();}},a)}));return function(){return a.apply(this,arguments)}}(),o=function(){var a=_asyncToGenerator(regeneratorRuntime.mark(function a(b,c){return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:try{0>k.indexOf(b)&&m("removeItem",{key:b})}catch(a){}return a.abrupt("return",d(b,c));case 2:case"end":return a.stop();}},a)}));return function(){return a.apply(this,arguments)}}(),p=function(){var a=_asyncToGenerator(regeneratorRuntime.mark(function a(b,c,d){return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:try{0>k.indexOf(b)&&m("mergeItem",{key:b,value:c})}catch(a){}return a.abrupt("return",e(b,c,d));case 2:case"end":return a.stop();}},a)}));return function(){return a.apply(this,arguments)}}(),q=function(){var a=_asyncToGenerator(regeneratorRuntime.mark(function a(b){return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:try{m("clear")}catch(a){}return a.abrupt("return",f(b));case 2:case"end":return a.stop();}},a)}));return function(){return a.apply(this,arguments)}}(),r=function(){var a=_asyncToGenerator(regeneratorRuntime.mark(function a(b,c){var d;return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:try{d=(b||[]).filter(function(a){return a&&a[0]&&0>k.indexOf(a[0])}),0<d.length&&m("multiSet",{pairs:d})}catch(a){}return a.abrupt("return",g(b,c));case 2:case"end":return a.stop();}},a)}));return function(){return a.apply(this,arguments)}}(),s=function(){var a=_asyncToGenerator(regeneratorRuntime.mark(function a(b,c){var d;return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:try{d=(b||[]).filter(function(a){return 0>k.indexOf(a)}),0<d.length&&m("multiRemove",{keys:d})}catch(a){}return a.abrupt("return",h(b,c));case 2:case"end":return a.stop();}},a)}));return function(){return a.apply(this,arguments)}}(),t=function(){var a=_asyncToGenerator(regeneratorRuntime.mark(function a(b,c){var d;return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:try{d=(b||[]).filter(function(a){return a&&a[0]&&0>k.indexOf(a[0])}),0<d.length&&m("multiMerge",{pairs:d})}catch(a){}return a.abrupt("return",i(b,c));case 2:case"end":return a.stop();}},a)}));return function(){return a.apply(this,arguments)}}(),u=function(){l||(c=b.asyncStorageHandler.setItem,b.asyncStorageHandler.setItem=n,d=b.asyncStorageHandler.removeItem,b.asyncStorageHandler.removeItem=o,e=b.asyncStorageHandler.mergeItem,b.asyncStorageHandler.mergeItem=p,f=b.asyncStorageHandler.clear,b.asyncStorageHandler.clear=q,g=b.asyncStorageHandler.multiSet,b.asyncStorageHandler.multiSet=r,h=b.asyncStorageHandler.multiRemove,b.asyncStorageHandler.multiRemove=s,i=b.asyncStorageHandler.multiMerge,b.asyncStorageHandler.multiMerge=t,l=!0)},v=function(){l&&(b.asyncStorageHandler.setItem=c,b.asyncStorageHandler.removeItem=d,b.asyncStorageHandler.mergeItem=e,b.asyncStorageHandler.clear=f,b.asyncStorageHandler.multiSet=g,b.asyncStorageHandler.multiRemove=h,b.asyncStorageHandler.multiMerge=i,l=!1)};return b.asyncStorageHandler&&u(),{features:{trackAsyncStorage:u,untrackAsyncStorage:v}}}};function mitt(a){return a=a||Object.create(null),{on:function(b,c){(a[b]||(a[b]=[])).push(c)},off:function(b,c){a[b]&&a[b].splice(a[b].indexOf(c)>>>0,1)},emit:function(b,c){(a[b]||[]).slice().map(function(a){a(c)}),(a["*"]||[]).slice().map(function(a){a(b,c)})}}}var parseErrorStack,symbolicateStackTrace,Styles={container:{position:"absolute",left:0,top:0,right:0,bottom:0,zIndex:1e3,opacity:.25}},FullScreenOverlay=function(a){function b(a){var d;return _classCallCheck(this,b),d=c.call(this,a),d.state={opacity:Styles.container.opacity,uri:null,justifyContent:"center",alignItems:"center"},a.emitter.on("overlay",function(a){d.setState(_objectSpread2(_objectSpread2({},d.state),a))}),d}_inherits(b,a);var c=_createSuper(b);return _createClass(b,[{key:"createContainerStyle",value:function(){var a=this.state,b=a.opacity,c=a.justifyContent,d=a.alignItems,e=reactNative.Dimensions.get("window"),f=e.width,g=e.height,h=_objectSpread2(_objectSpread2({},Styles.container),{},{opacity:b,width:f,height:g,justifyContent:c,alignItems:d});return h}},{key:"render",value:function(){var a=this.state,b=a.uri,c=a.width,d=a.height,e=a.growToWindow,f=a.resizeMode,g=a.marginLeft,h=void 0===g?0:g,i=a.marginRight,j=void 0===i?0:i,k=a.marginTop,l=void 0===k?0:k,m=a.marginBottom,n=void 0===m?0:m,o={width:c,height:d,marginTop:l,marginRight:j,marginBottom:n,marginLeft:h};if(e){var p=reactNative.Dimensions.get("window");o.width=p.width,o.height=p.height}var q=b?React__default["default"].createElement(reactNative.Image,{source:{uri:b},style:o,resizeMode:e?f:null}):React__default["default"].createElement(reactNative.View,null);return React__default["default"].createElement(reactNative.View,{style:this.createContainerStyle(),pointerEvents:"none"},q)}}]),b}(React.Component),overlay=function(){return function(){var a=new mitt;return{onCommand:function(b){"overlay"!==b.type||a.emit("overlay",b.payload)},features:{overlay:function(b){return function(c){return React__default["default"].createElement(reactNative.View,{style:{flex:1}},React__default["default"].createElement(b,c),React__default["default"].createElement(FullScreenOverlay,{emitter:a}))}}}}}},DEFAULTS$2={url:"http://localhost:8081"},openInEditor=function(){var a=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return function(){var b=Object.assign({},DEFAULTS$2,a);return{onCommand:function(a){if("editor.open"===a.type){var c=a.payload,d=c.file,e=c.lineNumber,f="".concat(b.url,"/open-stack-frame");fetch(f,{method:"POST",body:JSON.stringify({file:d,lineNumber:e||1})})}}}}},PLUGIN_DEFAULTS={veto:null},trackGlobalErrors=function(a){return function(b){function c(a,c,d){h(a,c,d);try{var e=c.map(function(a){return{functionName:"<unknown>"===a.methodName?null:a.methodName,lineNumber:a.lineNumber,columnNumber:a.column,fileName:a.file}});g.veto&&(e=e.filter(function(a){return g.veto(a)})),b.error(a,e)}catch(a){}}function d(){i||!reactNative.NativeModules.ExceptionsManager||(h=reactNative.NativeModules.ExceptionsManager.updateExceptionMessage,reactNative.NativeModules.ExceptionsManager.updateExceptionMessage=c,i=!0)}function e(){h&&reactNative.NativeModules.ExceptionsManager&&(reactNative.NativeModules.ExceptionsManager.updateExceptionMessage=h,i=!1)}function f(a){try{if(parseErrorStack=parseErrorStack||require("react-native/Libraries/Core/Devtools/parseErrorStack"),symbolicateStackTrace=symbolicateStackTrace||require("react-native/Libraries/Core/Devtools/symbolicateStackTrace"),parseErrorStack&&symbolicateStackTrace){var c=parseErrorStack(a);symbolicateStackTrace(c).then(function(c){var d=c.map(function(a){return{fileName:a.file,functionName:a.methodName,lineNumber:a.lineNumber}});g.veto&&(d=d.filter(function(a){return g.veto(a)})),b.error(a.message,d)})}}catch(a){}}var g=Object.assign({},PLUGIN_DEFAULTS,a||{}),h=null,i=!1;return d(),{features:{reportError:f,trackGlobalErrors:d,untrackGlobalErrors:e}}}},DEFAULT_CONTENT_TYPES_RX=/^(image)\/.*$/i,DEFAULTS$1={},networking=function(){var a=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return function(b){function c(a,c){return e.ignoreUrls&&e.ignoreUrls.test(c._url)?void(c._skipReactotron=!0):void(g++,c._trackingName=g,h[g]={data:a,xhr:c,stopTimer:b.startTimer()})}function d(a,c,d,e,g,i){if(!i._skipReactotron){var j=null,k=e?e.indexOf("?"):-1;-1<k&&(j=queryString__default["default"].parse(e.substr(k)));var l=i._trackingName,m=h[l]||{};h[l]=null;var n=m.data,o=m.stopTimer,p={url:e||m.xhr._url,method:i._method||null,data:n,headers:i._headers||null,params:j},q=i.responseHeaders&&i.responseHeaders["content-type"]||i.responseHeaders&&i.responseHeaders["Content-Type"]||"",r=function(c){var e="~~~ skipped ~~~";if(c)try{e=JSON.parse(c)}catch(a){e=d}var f={body:e,status:a,headers:i.responseHeaders||null};b.apiResponse(p,f,o())},s=("string"==typeof d||"object"===_typeof(d))&&!f.test(q||"");if(!s)r("");else if("blob"===g&&"undefined"!=typeof FileReader&&d){var t=new FileReader,u=function a(){r(t.result),t.removeEventListener("loadend",a)};t.addEventListener("loadend",u),t.readAsText(d)}else r(d)}}var e=Object.assign({},DEFAULTS$1,a),f=e.ignoreContentTypes||DEFAULT_CONTENT_TYPES_RX,g=1e3,h={};return XHRInterceptor__default["default"].setSendCallback(c),XHRInterceptor__default["default"].setResponseCallback(d),XHRInterceptor__default["default"].enableInterception(),{}}},StorybookSwitcher=function(a){function b(a){var d;return _classCallCheck(this,b),d=c.call(this,a),d.state={showStorybook:!1},a.emitter.on("storybook",function(a){d.setState({showStorybook:a})}),d}_inherits(b,a);var c=_createSuper(b);return _createClass(b,[{key:"render",value:function(){var a=this.state.showStorybook,b=this.props,c=b.storybookUi,d=b.children;return React__default["default"].createElement(reactNative.View,{style:{flex:1}},a?React__default["default"].createElement(c,null):d)}}]),b}(React.Component),storybook=function(){return function(){var a=new mitt;return{onCommand:function(b){"storybook"!==b.type||a.emit("storybook",b.payload)},features:{storybookSwitcher:function(b){return function(c){return function(d){return React__default["default"].createElement(StorybookSwitcher,{storybookUi:b,emitter:a},React__default["default"].createElement(c,d))}}}}}}},devTools=function(){return function(){return{onCommand:function(a){"devtools.open"!==a.type&&"devtools.reload"!==a.type||("devtools.open"===a.type&&reactNative.NativeModules.DevMenu.show(),"devtools.reload"===a.type&&reactNative.NativeModules.DevMenu.reload())}}}},ConnectionManager=function(){function a(b){_classCallCheck(this,a),_defineProperty(this,"webSocket",void 0),this.webSocket=new WebSocket(b)}return _createClass(a,[{key:"send",value:function(a){1===this.webSocket.readyState&&this.webSocket.send(a)}},{key:"on",value:function(a,b){"open"===a?this.webSocket.onopen=b:"message"==a&&(this.webSocket.onmessage=function(a){return b(a.data)})}},{key:"close",value:function(){this.webSocket.close()}}]),a}(),constants=reactNative.NativeModules.PlatformConstants||{},REACTOTRON_ASYNC_CLIENT_ID="@REACTOTRON/clientId",tempClientId=null,DEFAULTS={createSocket:function(a){return new ConnectionManager(a)},host:getHost__default["default"]("localhost"),port:9090,name:"React Native App",environment:process.env.NODE_ENV||(__DEV__?"development":"production"),client:_objectSpread2({reactotronLibraryName:"reactotron-react-native",reactotronLibraryVersion:"REACTOTRON_REACT_NATIVE_VERSION",platform:reactNative.Platform.OS,platformVersion:reactNative.Platform.Version,osRelease:constants.Release,model:constants.Model,serverHost:constants.ServerHost,forceTouch:constants.forceTouchAvailable||!1,interfaceIdiom:constants.interfaceIdiom,systemName:constants.systemName,uiMode:constants.uiMode,serial:constants.Serial,androidId:constants.androidID,reactNativeVersion:getReactNativeVersion()},getReactNativeDimensions()),getClientId:function(){return reactotron.asyncStorageHandler?reactotron.asyncStorageHandler.getItem(REACTOTRON_ASYNC_CLIENT_ID):new Promise(function(a){return a(tempClientId)})},setClientId:function(a){return reactotron.asyncStorageHandler?reactotron.asyncStorageHandler.setItem(REACTOTRON_ASYNC_CLIENT_ID,a):(tempClientId=a,Promise.resolve())},proxyHack:!0},reactotron=reactotronCoreClient.createClient(DEFAULTS);function getPluginOptions(a){return"object"===_typeof(a)?a:null}reactotron.useReactNative=function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return!1!==a.errors&&reactotron.use(trackGlobalErrors(getPluginOptions(a.errors))),!1!==a.editor&&reactotron.use(openInEditor(getPluginOptions(a.editor))),!1!==a.overlay&&reactotron.use(overlay()),!1!==a.asyncStorage&&reactotron.use(asyncStorage(getPluginOptions(a.asyncStorage))),!1!==a.networking&&reactotron.use(networking(getPluginOptions(a.networking))),!1!==a.storybook&&reactotron.use(storybook()),!1!==a.devTools&&reactotron.use(devTools()),reactotron},reactotron.setAsyncStorageHandler=function(a){return reactotron.asyncStorageHandler=a,reactotron},exports.asyncStorage=asyncStorage,exports["default"]=reactotron,exports.devTools=devTools,exports.networking=networking,exports.openInEditor=openInEditor,exports.overlay=overlay,exports.storybook=storybook,exports.trackGlobalErrors=trackGlobalErrors;
+'use strict';Object.defineProperty(exports,"__esModule",{value:!0});var reactNative=require("react-native"),reactotronCoreClient=require("reactotron-core-client"),getHost=require("rn-host-detect"),React=require("react"),XHRInterceptor=require("react-native/Libraries/Network/XHRInterceptor"),queryString=require("query-string");function _interopDefaultLegacy(a){return a&&"object"==typeof a&&"default"in a?a:{default:a}}var getHost__default=_interopDefaultLegacy(getHost),React__default=_interopDefaultLegacy(React),XHRInterceptor__default=_interopDefaultLegacy(XHRInterceptor),queryString__default=_interopDefaultLegacy(queryString);function ownKeys(a,b){var c=Object.keys(a);if(Object.getOwnPropertySymbols){var d=Object.getOwnPropertySymbols(a);b&&(d=d.filter(function(b){return Object.getOwnPropertyDescriptor(a,b).enumerable})),c.push.apply(c,d)}return c}function _objectSpread2(a){for(var b,c=1;c<arguments.length;c++)b=null==arguments[c]?{}:arguments[c],c%2?ownKeys(Object(b),!0).forEach(function(c){_defineProperty(a,c,b[c])}):Object.getOwnPropertyDescriptors?Object.defineProperties(a,Object.getOwnPropertyDescriptors(b)):ownKeys(Object(b)).forEach(function(c){Object.defineProperty(a,c,Object.getOwnPropertyDescriptor(b,c))});return a}function _typeof(a){"@babel/helpers - typeof";return _typeof="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(a){return typeof a}:function(a){return a&&"function"==typeof Symbol&&a.constructor===Symbol&&a!==Symbol.prototype?"symbol":typeof a},_typeof(a)}function asyncGeneratorStep(a,b,c,d,e,f,g){try{var h=a[f](g),i=h.value}catch(a){return void c(a)}h.done?b(i):Promise.resolve(i).then(d,e)}function _asyncToGenerator(a){return function(){var b=this,c=arguments;return new Promise(function(d,e){function f(a){asyncGeneratorStep(h,d,e,f,g,"next",a)}function g(a){asyncGeneratorStep(h,d,e,f,g,"throw",a)}var h=a.apply(b,c);f(void 0)})}}function _classCallCheck(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function _defineProperties(a,b){for(var c,d=0;d<b.length;d++)c=b[d],c.enumerable=c.enumerable||!1,c.configurable=!0,"value"in c&&(c.writable=!0),Object.defineProperty(a,c.key,c)}function _createClass(a,b,c){return b&&_defineProperties(a.prototype,b),c&&_defineProperties(a,c),a}function _defineProperty(a,b,c){return b in a?Object.defineProperty(a,b,{value:c,enumerable:!0,configurable:!0,writable:!0}):a[b]=c,a}function _inherits(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function");a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,writable:!0,configurable:!0}}),b&&_setPrototypeOf(a,b)}function _getPrototypeOf(a){return _getPrototypeOf=Object.setPrototypeOf?Object.getPrototypeOf:function(a){return a.__proto__||Object.getPrototypeOf(a)},_getPrototypeOf(a)}function _setPrototypeOf(a,b){return _setPrototypeOf=Object.setPrototypeOf||function(a,b){return a.__proto__=b,a},_setPrototypeOf(a,b)}function _isNativeReflectConstruct(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch(a){return!1}}function _assertThisInitialized(a){if(void 0===a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return a}function _possibleConstructorReturn(a,b){if(b&&("object"==typeof b||"function"==typeof b))return b;if(void 0!==b)throw new TypeError("Derived constructors may only return object or undefined");return _assertThisInitialized(a)}function _createSuper(a){var b=_isNativeReflectConstruct();return function(){var c,d=_getPrototypeOf(a);if(b){var e=_getPrototypeOf(this).constructor;c=Reflect.construct(d,arguments,e)}else c=d.apply(this,arguments);return _possibleConstructorReturn(this,c)}}function getReactNativeVersionWithModules(a){try{if(!a.PlatformConstants)return null;if(!a.PlatformConstants.reactNativeVersion)return null;var b=a.PlatformConstants.reactNativeVersion.major,c=a.PlatformConstants.reactNativeVersion.minor,d=a.PlatformConstants.reactNativeVersion.patch,e=a.PlatformConstants.reactNativeVersion.prerelease;if("number"!=typeof b)return null;var f=[];return f.push("".concat(b,".").concat(c,".").concat(d)),e&&f.push("-".concat(e)),f.join("")}catch(a){}return null}function getReactNativeVersion(){return getReactNativeVersionWithModules(reactNative.NativeModules)}function getReactNativeDimensionsWithDimensions(a,b){var c=Math.ceil;try{var d={},e={};return a&&(d={screenWidth:c(a.width),screenHeight:c(a.height),screenScale:a.scale,screenFontScale:a.fontScale}),b&&(e={windowWidth:c(b.width),windowHeight:c(b.height),windowScale:b.scale,windowFontScale:b.fontScale}),_objectSpread2(_objectSpread2({},d),e)}catch(a){}return null}function getReactNativeDimensions(){var a=null,b=null;try{a=reactNative.Dimensions.get("screen")}catch(a){}try{b=reactNative.Dimensions.get("window")}catch(a){}return getReactNativeDimensionsWithDimensions(a,b)}var PLUGIN_DEFAULTS$1={ignore:[]},asyncStorage=function(a){return function(b){var c,d,e,f,g,h,i,j=Object.assign({},PLUGIN_DEFAULTS$1,a||{}),k=j.ignore||PLUGIN_DEFAULTS$1.ignore,l=!1,m=function(a,c){b.send("asyncStorage.mutation",{action:a,data:c})},n=function(){var a=_asyncToGenerator(regeneratorRuntime.mark(function a(b,d,e){return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:try{0>k.indexOf(b)&&m("setItem",{key:b,value:d})}catch(a){}return a.abrupt("return",c(b,d,e));case 2:case"end":return a.stop();}},a)}));return function(){return a.apply(this,arguments)}}(),o=function(){var a=_asyncToGenerator(regeneratorRuntime.mark(function a(b,c){return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:try{0>k.indexOf(b)&&m("removeItem",{key:b})}catch(a){}return a.abrupt("return",d(b,c));case 2:case"end":return a.stop();}},a)}));return function(){return a.apply(this,arguments)}}(),p=function(){var a=_asyncToGenerator(regeneratorRuntime.mark(function a(b,c,d){return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:try{0>k.indexOf(b)&&m("mergeItem",{key:b,value:c})}catch(a){}return a.abrupt("return",e(b,c,d));case 2:case"end":return a.stop();}},a)}));return function(){return a.apply(this,arguments)}}(),q=function(){var a=_asyncToGenerator(regeneratorRuntime.mark(function a(b){return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:try{m("clear")}catch(a){}return a.abrupt("return",f(b));case 2:case"end":return a.stop();}},a)}));return function(){return a.apply(this,arguments)}}(),r=function(){var a=_asyncToGenerator(regeneratorRuntime.mark(function a(b,c){var d;return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:try{d=(b||[]).filter(function(a){return a&&a[0]&&0>k.indexOf(a[0])}),0<d.length&&m("multiSet",{pairs:d})}catch(a){}return a.abrupt("return",g(b,c));case 2:case"end":return a.stop();}},a)}));return function(){return a.apply(this,arguments)}}(),s=function(){var a=_asyncToGenerator(regeneratorRuntime.mark(function a(b,c){var d;return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:try{d=(b||[]).filter(function(a){return 0>k.indexOf(a)}),0<d.length&&m("multiRemove",{keys:d})}catch(a){}return a.abrupt("return",h(b,c));case 2:case"end":return a.stop();}},a)}));return function(){return a.apply(this,arguments)}}(),t=function(){var a=_asyncToGenerator(regeneratorRuntime.mark(function a(b,c){var d;return regeneratorRuntime.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:try{d=(b||[]).filter(function(a){return a&&a[0]&&0>k.indexOf(a[0])}),0<d.length&&m("multiMerge",{pairs:d})}catch(a){}return a.abrupt("return",i(b,c));case 2:case"end":return a.stop();}},a)}));return function(){return a.apply(this,arguments)}}(),u=function(){l||(c=b.asyncStorageHandler.setItem,b.asyncStorageHandler.setItem=n,d=b.asyncStorageHandler.removeItem,b.asyncStorageHandler.removeItem=o,e=b.asyncStorageHandler.mergeItem,b.asyncStorageHandler.mergeItem=p,f=b.asyncStorageHandler.clear,b.asyncStorageHandler.clear=q,g=b.asyncStorageHandler.multiSet,b.asyncStorageHandler.multiSet=r,h=b.asyncStorageHandler.multiRemove,b.asyncStorageHandler.multiRemove=s,i=b.asyncStorageHandler.multiMerge,b.asyncStorageHandler.multiMerge=t,l=!0)},v=function(){l&&(b.asyncStorageHandler.setItem=c,b.asyncStorageHandler.removeItem=d,b.asyncStorageHandler.mergeItem=e,b.asyncStorageHandler.clear=f,b.asyncStorageHandler.multiSet=g,b.asyncStorageHandler.multiRemove=h,b.asyncStorageHandler.multiMerge=i,l=!1)};return b.asyncStorageHandler&&u(),{features:{trackAsyncStorage:u,untrackAsyncStorage:v}}}};function mitt(a){return a=a||Object.create(null),{on:function(b,c){(a[b]||(a[b]=[])).push(c)},off:function(b,c){a[b]&&a[b].splice(a[b].indexOf(c)>>>0,1)},emit:function(b,c){(a[b]||[]).slice().map(function(a){a(c)}),(a["*"]||[]).slice().map(function(a){a(b,c)})}}}var parseErrorStack,symbolicateStackTrace,Styles={container:{position:"absolute",left:0,top:0,right:0,bottom:0,zIndex:1e3,opacity:.25}},FullScreenOverlay=function(a){function b(a){var d;return _classCallCheck(this,b),d=c.call(this,a),d.state={opacity:Styles.container.opacity,uri:null,justifyContent:"center",alignItems:"center"},a.emitter.on("overlay",function(a){d.setState(_objectSpread2(_objectSpread2({},d.state),a))}),d}_inherits(b,a);var c=_createSuper(b);return _createClass(b,[{key:"createContainerStyle",value:function(){var a=this.state,b=a.opacity,c=a.justifyContent,d=a.alignItems,e=reactNative.Dimensions.get("window"),f=e.width,g=e.height,h=_objectSpread2(_objectSpread2({},Styles.container),{},{opacity:b,width:f,height:g,justifyContent:c,alignItems:d});return h}},{key:"render",value:function(){var a=this.state,b=a.uri,c=a.width,d=a.height,e=a.growToWindow,f=a.resizeMode,g=a.marginLeft,h=void 0===g?0:g,i=a.marginRight,j=void 0===i?0:i,k=a.marginTop,l=void 0===k?0:k,m=a.marginBottom,n=void 0===m?0:m,o={width:c,height:d,marginTop:l,marginRight:j,marginBottom:n,marginLeft:h};if(e){var p=reactNative.Dimensions.get("window");o.width=p.width,o.height=p.height}var q=b?React__default["default"].createElement(reactNative.Image,{source:{uri:b},style:o,resizeMode:e?f:null}):React__default["default"].createElement(reactNative.View,null);return React__default["default"].createElement(reactNative.View,{style:this.createContainerStyle(),pointerEvents:"none"},q)}}]),b}(React.Component),overlay=function(){return function(){var a=new mitt;return{onCommand:function(b){"overlay"!==b.type||a.emit("overlay",b.payload)},features:{overlay:function(b){return function(c){return React__default["default"].createElement(reactNative.View,{style:{flex:1}},React__default["default"].createElement(b,c),React__default["default"].createElement(FullScreenOverlay,{emitter:a}))}}}}}},DEFAULTS$2={url:"http://localhost:8081"},openInEditor=function(){var a=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return function(){var b=Object.assign({},DEFAULTS$2,a);return{onCommand:function(a){if("editor.open"===a.type){var c=a.payload,d=c.file,e=c.lineNumber,f="".concat(b.url,"/open-stack-frame");fetch(f,{method:"POST",body:JSON.stringify({file:d,lineNumber:e||1})})}}}}},PLUGIN_DEFAULTS={veto:null},trackGlobalErrors=function(a){return function(b){function c(a,c,d){h(a,c,d);try{var e=c.map(function(a){return{functionName:"<unknown>"===a.methodName?null:a.methodName,lineNumber:a.lineNumber,columnNumber:a.column,fileName:a.file}});g.veto&&(e=e.filter(function(a){return g.veto(a)})),b.error(a,e)}catch(a){}}function d(){i||!reactNative.NativeModules.ExceptionsManager||(h=reactNative.NativeModules.ExceptionsManager.updateExceptionMessage,reactNative.NativeModules.ExceptionsManager.updateExceptionMessage=c,i=!0)}function e(){h&&reactNative.NativeModules.ExceptionsManager&&(reactNative.NativeModules.ExceptionsManager.updateExceptionMessage=h,i=!1)}function f(a){try{if(parseErrorStack=parseErrorStack||require("react-native/Libraries/Core/Devtools/parseErrorStack"),symbolicateStackTrace=symbolicateStackTrace||require("react-native/Libraries/Core/Devtools/symbolicateStackTrace"),parseErrorStack&&symbolicateStackTrace){var c=parseErrorStack(a);symbolicateStackTrace(c).then(function(c){var d=c.map(function(a){return{fileName:a.file,functionName:a.methodName,lineNumber:a.lineNumber}});g.veto&&(d=d.filter(function(a){return g.veto(a)})),b.error(a.message,d)})}}catch(a){}}var g=Object.assign({},PLUGIN_DEFAULTS,a||{}),h=null,i=!1;return d(),{features:{reportError:f,trackGlobalErrors:d,untrackGlobalErrors:e}}}},DEFAULT_CONTENT_TYPES_RX=/^(image)\/.*$/i,DEFAULTS$1={},networking=function(){var a=0<arguments.length&&arguments[0]!==void 0?arguments[0]:{};return function(b){function c(a,c){return e.ignoreUrls&&e.ignoreUrls.test(c._url)?void(c._skipReactotron=!0):void(g++,c._trackingName=g,h[g]={data:a,xhr:c,stopTimer:b.startTimer()})}function d(a,c,d,e,g,i){if(!i._skipReactotron){var j=null,k=e?e.indexOf("?"):-1;-1<k&&(j=queryString__default["default"].parse(e.substr(k)));var l=i._trackingName,m=h[l]||{};h[l]=null;var n=m.data,o=m.stopTimer,p={url:e||m.xhr._url,method:i._method||null,data:n,headers:i._headers||null,params:j},q=i.responseHeaders&&i.responseHeaders["content-type"]||i.responseHeaders&&i.responseHeaders["Content-Type"]||"",r=function(c){var e="~~~ skipped ~~~";if(c)try{e=JSON.parse(c)}catch(a){e=d}var f={body:e,status:a,headers:i.responseHeaders||null};b.apiResponse(p,f,o?o():null)},s=("string"==typeof d||"object"===_typeof(d))&&!f.test(q||"");if(!s)r("");else if("blob"===g&&"undefined"!=typeof FileReader&&d){var t=new FileReader,u=function a(){r(t.result),t.removeEventListener("loadend",a)};t.addEventListener("loadend",u),t.readAsText(d)}else r(d)}}var e=Object.assign({},DEFAULTS$1,a),f=e.ignoreContentTypes||DEFAULT_CONTENT_TYPES_RX,g=1e3,h={};return XHRInterceptor__default["default"].setSendCallback(c),XHRInterceptor__default["default"].setResponseCallback(d),XHRInterceptor__default["default"].enableInterception(),{}}},StorybookSwitcher=function(a){function b(a){var d;return _classCallCheck(this,b),d=c.call(this,a),d.state={showStorybook:!1},a.emitter.on("storybook",function(a){d.setState({showStorybook:a})}),d}_inherits(b,a);var c=_createSuper(b);return _createClass(b,[{key:"render",value:function(){var a=this.state.showStorybook,b=this.props,c=b.storybookUi,d=b.children;return React__default["default"].createElement(reactNative.View,{style:{flex:1}},a?React__default["default"].createElement(c,null):d)}}]),b}(React.Component),storybook=function(){return function(){var a=new mitt;return{onCommand:function(b){"storybook"!==b.type||a.emit("storybook",b.payload)},features:{storybookSwitcher:function(b){return function(c){return function(d){return React__default["default"].createElement(StorybookSwitcher,{storybookUi:b,emitter:a},React__default["default"].createElement(c,d))}}}}}}},devTools=function(){return function(){return{onCommand:function(a){"devtools.open"!==a.type&&"devtools.reload"!==a.type||("devtools.open"===a.type&&reactNative.NativeModules.DevMenu.show(),"devtools.reload"===a.type&&reactNative.NativeModules.DevMenu.reload())}}}},ConnectionManager=function(){function a(b){_classCallCheck(this,a),_defineProperty(this,"webSocket",void 0),this.webSocket=new WebSocket(b)}return _createClass(a,[{key:"send",value:function(a){1===this.webSocket.readyState&&this.webSocket.send(a)}},{key:"on",value:function(a,b){"open"===a?this.webSocket.onopen=b:"message"==a&&(this.webSocket.onmessage=function(a){return b(a.data)})}},{key:"close",value:function(){this.webSocket.close()}}]),a}(),constants=reactNative.NativeModules.PlatformConstants||{},REACTOTRON_ASYNC_CLIENT_ID="@REACTOTRON/clientId",tempClientId=null,DEFAULTS={createSocket:function(a){return new ConnectionManager(a)},host:getHost__default["default"]("localhost"),port:9090,name:"React Native App",environment:process.env.NODE_ENV||(__DEV__?"development":"production"),client:_objectSpread2({reactotronLibraryName:"reactotron-react-native",reactotronLibraryVersion:"REACTOTRON_REACT_NATIVE_VERSION",platform:reactNative.Platform.OS,platformVersion:reactNative.Platform.Version,osRelease:constants.Release,model:constants.Model,serverHost:constants.ServerHost,forceTouch:constants.forceTouchAvailable||!1,interfaceIdiom:constants.interfaceIdiom,systemName:constants.systemName,uiMode:constants.uiMode,serial:constants.Serial,androidId:constants.androidID,reactNativeVersion:getReactNativeVersion()},getReactNativeDimensions()),getClientId:function(){return reactotron.asyncStorageHandler?reactotron.asyncStorageHandler.getItem(REACTOTRON_ASYNC_CLIENT_ID):new Promise(function(a){return a(tempClientId)})},setClientId:function(a){return reactotron.asyncStorageHandler?reactotron.asyncStorageHandler.setItem(REACTOTRON_ASYNC_CLIENT_ID,a):(tempClientId=a,Promise.resolve())},proxyHack:!0},reactotron=reactotronCoreClient.createClient(DEFAULTS);function getPluginOptions(a){return"object"===_typeof(a)?a:null}reactotron.useReactNative=function(){var a=0<arguments.length&&void 0!==arguments[0]?arguments[0]:{};return!1!==a.errors&&reactotron.use(trackGlobalErrors(getPluginOptions(a.errors))),!1!==a.editor&&reactotron.use(openInEditor(getPluginOptions(a.editor))),!1!==a.overlay&&reactotron.use(overlay()),!1!==a.asyncStorage&&reactotron.use(asyncStorage(getPluginOptions(a.asyncStorage))),!1!==a.networking&&reactotron.use(networking(getPluginOptions(a.networking))),!1!==a.storybook&&reactotron.use(storybook()),!1!==a.devTools&&reactotron.use(devTools()),reactotron},reactotron.setAsyncStorageHandler=function(a){return reactotron.asyncStorageHandler=a,reactotron},exports.asyncStorage=asyncStorage,exports["default"]=reactotron,exports.devTools=devTools,exports.networking=networking,exports.openInEditor=openInEditor,exports.overlay=overlay,exports.storybook=storybook,exports.trackGlobalErrors=trackGlobalErrors;

we also tried doing below options, they worked, we just decided above is better.

@@ -76,7 +76,8 @@ export default <ReactotronSubtype = ReactotronCore>(pluginConfig: NetworkingOpti
 
     // fetch and clear the request data from the cache
     const rid = xhr._trackingName
-    const cachedRequest = requestCache[rid] || {}
+    const cachedRequest = requestCache[rid] || {stopTimer: () => {}} 
+    // OR below
+    // const cachedRequest = requestCache[rid] || {stopTimer: reactotron.startTimer()}
     requestCache[rid] = null
 
     // assemble the request object

@jamonholmgren
Copy link
Member

Just merged the PR: #1039

Should be able to upgrade to reactotron-react-native 5.0.2 to fix this issue going forward, once CI finishes.

@jamonholmgren
Copy link
Member

(Anyone want to submit a PR to Ignite to bump the dep on Ignite? I can do it, but if someone else wants the credit...it's an easy one!)

@officialomkarjadhav
Copy link

(0,n.usePreventRemoveContext) is not a function. (In '(0,n.usePreventRemoveContext)()', '(0,n.usePreventRemoveContext)' is undefined)

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests