rn-backstage 1.0.0 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +54 -23
- package/lib/commonjs/Backstage.js +51 -5
- package/lib/commonjs/Backstage.js.map +1 -1
- package/lib/commonjs/components/BackstagePanel.js +16 -0
- package/lib/commonjs/components/BackstagePanel.js.map +1 -1
- package/lib/commonjs/components/NetworkItem.js +537 -0
- package/lib/commonjs/components/NetworkItem.js.map +1 -0
- package/lib/commonjs/components/NetworkTab.js +274 -0
- package/lib/commonjs/components/NetworkTab.js.map +1 -0
- package/lib/commonjs/constants.js +11 -3
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/index.js +6 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/log-interceptor.js +8 -1
- package/lib/commonjs/log-interceptor.js.map +1 -1
- package/lib/commonjs/network-interceptor.js +417 -0
- package/lib/commonjs/network-interceptor.js.map +1 -0
- package/lib/commonjs/types.js +8 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/Backstage.js +52 -6
- package/lib/module/Backstage.js.map +1 -1
- package/lib/module/components/BackstagePanel.js +16 -0
- package/lib/module/components/BackstagePanel.js.map +1 -1
- package/lib/module/components/NetworkItem.js +532 -0
- package/lib/module/components/NetworkItem.js.map +1 -0
- package/lib/module/components/NetworkTab.js +269 -0
- package/lib/module/components/NetworkTab.js.map +1 -0
- package/lib/module/constants.js +10 -2
- package/lib/module/constants.js.map +1 -1
- package/lib/module/index.js +1 -1
- package/lib/module/index.js.map +1 -1
- package/lib/module/log-interceptor.js +8 -1
- package/lib/module/log-interceptor.js.map +1 -1
- package/lib/module/network-interceptor.js +409 -0
- package/lib/module/network-interceptor.js.map +1 -0
- package/lib/module/types.js +8 -0
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/Backstage.d.ts.map +1 -1
- package/lib/typescript/components/BackstagePanel.d.ts +5 -1
- package/lib/typescript/components/BackstagePanel.d.ts.map +1 -1
- package/lib/typescript/components/NetworkItem.d.ts +9 -0
- package/lib/typescript/components/NetworkItem.d.ts.map +1 -0
- package/lib/typescript/components/NetworkTab.d.ts +11 -0
- package/lib/typescript/components/NetworkTab.d.ts.map +1 -0
- package/lib/typescript/constants.d.ts +8 -0
- package/lib/typescript/constants.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +2 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/log-interceptor.d.ts +3 -1
- package/lib/typescript/log-interceptor.d.ts.map +1 -1
- package/lib/typescript/network-interceptor.d.ts +35 -0
- package/lib/typescript/network-interceptor.d.ts.map +1 -0
- package/lib/typescript/types.d.ts +32 -0
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Backstage.tsx +60 -6
- package/src/components/BackstagePanel.tsx +22 -0
- package/src/components/NetworkItem.tsx +536 -0
- package/src/components/NetworkTab.tsx +274 -0
- package/src/constants.ts +11 -2
- package/src/index.ts +2 -1
- package/src/log-interceptor.ts +12 -1
- package/src/network-interceptor.ts +468 -0
- package/src/types.ts +41 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
#
|
|
1
|
+
# rn-backstage
|
|
2
2
|
|
|
3
|
-
A zero-dependency developer/QA debug panel for React Native apps. Inspect device info, view state trees, monitor console logs, and trigger custom actions — all from a sleek in-app panel.
|
|
3
|
+
A zero-dependency developer/QA debug panel for React Native apps. Inspect device info, view state trees, monitor console logs, inspect network requests, and trigger custom actions — all from a sleek in-app panel.
|
|
4
4
|
|
|
5
5
|
## Features
|
|
6
6
|
|
|
@@ -8,17 +8,18 @@ A zero-dependency developer/QA debug panel for React Native apps. Inspect device
|
|
|
8
8
|
- 📱 **Device & build info** — OS version, app version, build number, and custom data
|
|
9
9
|
- 🌳 **State tree inspector** — visualize Redux, Zustand, or any store state
|
|
10
10
|
- 📋 **Console log viewer** — intercepts all console methods with search & filtering
|
|
11
|
+
- 🌐 **Network inspector** — intercepts fetch & XMLHttpRequest with request/response details, headers, body, timing, and copy-as-cURL
|
|
11
12
|
- ⚡ **Quick actions** — add custom buttons (logout, clear cache, etc.)
|
|
12
|
-
- 🔌 **Extensible tabs** — add custom tabs for
|
|
13
|
+
- 🔌 **Extensible tabs** — add custom tabs for app-specific debugging tools
|
|
13
14
|
- 🎨 **Dark glassmorphism UI** — beautiful, professional developer tool aesthetic
|
|
14
15
|
- 📦 **Zero dependencies** — only peer deps are `react` and `react-native`
|
|
15
16
|
|
|
16
17
|
## Installation
|
|
17
18
|
|
|
18
19
|
```sh
|
|
19
|
-
npm install
|
|
20
|
+
npm install rn-backstage
|
|
20
21
|
# or
|
|
21
|
-
yarn add
|
|
22
|
+
yarn add rn-backstage
|
|
22
23
|
```
|
|
23
24
|
|
|
24
25
|
No additional native dependencies required!
|
|
@@ -26,7 +27,7 @@ No additional native dependencies required!
|
|
|
26
27
|
## Usage
|
|
27
28
|
|
|
28
29
|
```tsx
|
|
29
|
-
import { Backstage } from '
|
|
30
|
+
import { Backstage } from 'rn-backstage'
|
|
30
31
|
|
|
31
32
|
export default function App() {
|
|
32
33
|
return (
|
|
@@ -41,37 +42,67 @@ export default function App() {
|
|
|
41
42
|
{ title: 'Logout', onPress: handleLogout, destructive: true },
|
|
42
43
|
{ title: 'Clear Cache', onPress: clearCache },
|
|
43
44
|
]}
|
|
44
|
-
onCopyLogs={
|
|
45
|
+
onCopyLogs={logs => Clipboard.setString(logs)}
|
|
45
46
|
/>
|
|
46
47
|
</>
|
|
47
48
|
)
|
|
48
49
|
}
|
|
49
50
|
```
|
|
50
51
|
|
|
52
|
+
## Network Inspector
|
|
53
|
+
|
|
54
|
+
The Network tab automatically intercepts all `fetch()` and `XMLHttpRequest` traffic — including libraries built on top of them like **Axios**, **Apisauce**, **ky**, and **Apollo Client**.
|
|
55
|
+
|
|
56
|
+
Each request shows:
|
|
57
|
+
- Method, URL, status code, and duration
|
|
58
|
+
- Request & response headers
|
|
59
|
+
- Request & response body (auto-parsed JSON with tree view)
|
|
60
|
+
- Response size
|
|
61
|
+
- Copy as cURL (long-press any request)
|
|
62
|
+
|
|
63
|
+
```tsx
|
|
64
|
+
<Backstage
|
|
65
|
+
// Network inspector is enabled by default
|
|
66
|
+
enableNetworkInspector={true}
|
|
67
|
+
// Exclude noisy URLs (analytics, Sentry, etc.)
|
|
68
|
+
networkFilters={['sentry.io', 'analytics', 'hot-update']}
|
|
69
|
+
// Limit body capture size (default: 64KB)
|
|
70
|
+
maxNetworkBodySize={65536}
|
|
71
|
+
// Auto-filters console.logs from Axios interceptors / fetch .then() chains
|
|
72
|
+
// out of the Logs tab (they're already in the Network tab). Default: true
|
|
73
|
+
autoFilterNetworkLogs={true}
|
|
74
|
+
/>
|
|
75
|
+
```
|
|
76
|
+
|
|
51
77
|
## Props
|
|
52
78
|
|
|
53
|
-
| Prop
|
|
54
|
-
|
|
55
|
-
| `visible`
|
|
56
|
-
| `appVersion`
|
|
57
|
-
| `buildNumber`
|
|
58
|
-
| `bundleId`
|
|
59
|
-
| `deviceInfo`
|
|
60
|
-
| `state`
|
|
61
|
-
| `quickActions`
|
|
62
|
-
| `maxLogs`
|
|
63
|
-
| `logFilters`
|
|
64
|
-
| `onCopyLogs`
|
|
65
|
-
| `
|
|
66
|
-
| `
|
|
79
|
+
| Prop | Type | Default | Description |
|
|
80
|
+
| ------------------------ | ------------------------ | ----------- | ----------------------------------------------- |
|
|
81
|
+
| `visible` | `boolean` | `true` | Show/hide the floating pill |
|
|
82
|
+
| `appVersion` | `string` | `undefined` | App version to display |
|
|
83
|
+
| `buildNumber` | `string` | `undefined` | Build number |
|
|
84
|
+
| `bundleId` | `string` | `undefined` | Bundle identifier |
|
|
85
|
+
| `deviceInfo` | `AppInfoItem[]` | `[]` | Additional device/app info rows |
|
|
86
|
+
| `state` | `object` | `undefined` | State tree to inspect |
|
|
87
|
+
| `quickActions` | `QuickAction[]` | `[]` | Custom action buttons |
|
|
88
|
+
| `maxLogs` | `number` | `500` | Maximum logs to retain |
|
|
89
|
+
| `logFilters` | `string[]` | `[]` | Messages to exclude from logs |
|
|
90
|
+
| `onCopyLogs` | `(logs: string) => void` | `undefined` | Callback when copying logs |
|
|
91
|
+
| `enableNetworkInspector` | `boolean` | `true` | Enable/disable network request interception |
|
|
92
|
+
| `maxNetworkEntries` | `number` | `500` | Maximum network entries to retain |
|
|
93
|
+
| `maxNetworkBodySize` | `number` | `65536` | Max body size (bytes) to capture per request |
|
|
94
|
+
| `networkFilters` | `string[]` | `[]` | URL substrings to exclude from capture |
|
|
95
|
+
| `autoFilterNetworkLogs` | `boolean` | `true` | Auto-filter network callback logs from Logs tab |
|
|
96
|
+
| `extraTabs` | `BackstageTab[]` | `[]` | Additional custom tabs |
|
|
97
|
+
| `children` | `ReactNode` | `undefined` | Extra content in InfoTab |
|
|
67
98
|
|
|
68
99
|
## Ref Methods
|
|
69
100
|
|
|
70
101
|
```tsx
|
|
71
102
|
const ref = useRef<BackstageRef>(null)
|
|
72
103
|
|
|
73
|
-
ref.current?.open()
|
|
74
|
-
ref.current?.close()
|
|
104
|
+
ref.current?.open() // Open the panel
|
|
105
|
+
ref.current?.close() // Close the panel
|
|
75
106
|
ref.current?.clearLogs() // Clear all captured logs
|
|
76
107
|
```
|
|
77
108
|
|
|
@@ -8,6 +8,7 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
8
8
|
var _reactNative = require("react-native");
|
|
9
9
|
var _constants = require("./constants");
|
|
10
10
|
var _logInterceptor = require("./log-interceptor");
|
|
11
|
+
var _networkInterceptor = require("./network-interceptor");
|
|
11
12
|
var _FloatingPill = require("./components/FloatingPill");
|
|
12
13
|
var _BackstagePanel = require("./components/BackstagePanel");
|
|
13
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
@@ -30,19 +31,27 @@ const Backstage = exports.Backstage = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
30
31
|
styles: propStyles,
|
|
31
32
|
initialX,
|
|
32
33
|
initialY,
|
|
33
|
-
pillText
|
|
34
|
+
pillText,
|
|
35
|
+
enableNetworkInspector = true,
|
|
36
|
+
maxNetworkEntries = _constants.DEFAULT_MAX_NETWORK_ENTRIES,
|
|
37
|
+
maxNetworkBodySize,
|
|
38
|
+
networkFilters,
|
|
39
|
+
autoFilterNetworkLogs = true
|
|
34
40
|
}, ref) => {
|
|
35
41
|
const [panelVisible, setPanelVisible] = (0, _react.useState)(false);
|
|
36
42
|
const [hasError, setHasError] = (0, _react.useState)(false);
|
|
37
43
|
const [logs, setLogs] = (0, _react.useState)([]);
|
|
44
|
+
const [networkEntries, setNetworkEntries] = (0, _react.useState)([]);
|
|
38
45
|
const logBuffer = (0, _react.useRef)(new _logInterceptor.LogBuffer(maxLogs));
|
|
46
|
+
const networkBuffer = (0, _react.useRef)(new _networkInterceptor.NetworkBuffer(maxNetworkEntries));
|
|
39
47
|
|
|
40
48
|
// ── Panel controls ────────────────────────────────────────
|
|
41
49
|
|
|
42
50
|
const openPanel = (0, _react.useCallback)(() => {
|
|
43
51
|
setPanelVisible(true);
|
|
44
|
-
// Sync logs when opening panel
|
|
52
|
+
// Sync logs and network entries when opening panel
|
|
45
53
|
setLogs(logBuffer.current.getAll());
|
|
54
|
+
setNetworkEntries(networkBuffer.current.getAll());
|
|
46
55
|
}, []);
|
|
47
56
|
const closePanel = (0, _react.useCallback)(() => {
|
|
48
57
|
setPanelVisible(false);
|
|
@@ -53,12 +62,22 @@ const Backstage = exports.Backstage = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
53
62
|
setHasError(false);
|
|
54
63
|
}, []);
|
|
55
64
|
|
|
56
|
-
// ── Refresh logs
|
|
65
|
+
// ── Refresh logs ──────────────────────────────────────────────────
|
|
57
66
|
|
|
58
67
|
const refreshLogs = (0, _react.useCallback)(() => {
|
|
59
68
|
setLogs(logBuffer.current.getAll());
|
|
60
69
|
}, []);
|
|
61
70
|
|
|
71
|
+
// ── Network controls ──────────────────────────────────────────────
|
|
72
|
+
|
|
73
|
+
const refreshNetwork = (0, _react.useCallback)(() => {
|
|
74
|
+
setNetworkEntries(networkBuffer.current.getAll());
|
|
75
|
+
}, []);
|
|
76
|
+
const clearNetwork = (0, _react.useCallback)(() => {
|
|
77
|
+
networkBuffer.current.clear();
|
|
78
|
+
setNetworkEntries([]);
|
|
79
|
+
}, []);
|
|
80
|
+
|
|
62
81
|
// ── Install console interceptor ───────────────────────────
|
|
63
82
|
|
|
64
83
|
(0, _react.useEffect)(() => {
|
|
@@ -70,11 +89,34 @@ const Backstage = exports.Backstage = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
70
89
|
setHasError(true);
|
|
71
90
|
}
|
|
72
91
|
};
|
|
73
|
-
(0, _logInterceptor.installInterceptor)(handleLogEntry, logFilters
|
|
92
|
+
(0, _logInterceptor.installInterceptor)(handleLogEntry, logFilters, {
|
|
93
|
+
autoFilterNetworkLogs: enableNetworkInspector && autoFilterNetworkLogs
|
|
94
|
+
});
|
|
74
95
|
return () => {
|
|
75
96
|
(0, _logInterceptor.uninstallInterceptor)();
|
|
76
97
|
};
|
|
77
|
-
}, [logFilters]);
|
|
98
|
+
}, [logFilters, enableNetworkInspector, autoFilterNetworkLogs]);
|
|
99
|
+
|
|
100
|
+
// ── Install network interceptor ───────────────────────────────
|
|
101
|
+
|
|
102
|
+
(0, _react.useEffect)(() => {
|
|
103
|
+
if (!enableNetworkInspector) return;
|
|
104
|
+
const handleNetworkEntry = entry => {
|
|
105
|
+
networkBuffer.current.upsert(entry);
|
|
106
|
+
|
|
107
|
+
// Auto-refresh if panel is open
|
|
108
|
+
if (panelVisible) {
|
|
109
|
+
setNetworkEntries(networkBuffer.current.getAll());
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
(0, _networkInterceptor.installNetworkInterceptor)(handleNetworkEntry, {
|
|
113
|
+
filters: networkFilters,
|
|
114
|
+
maxBodySize: maxNetworkBodySize
|
|
115
|
+
});
|
|
116
|
+
return () => {
|
|
117
|
+
(0, _networkInterceptor.uninstallNetworkInterceptor)();
|
|
118
|
+
};
|
|
119
|
+
}, [enableNetworkInspector, networkFilters, maxNetworkBodySize, panelVisible]);
|
|
78
120
|
|
|
79
121
|
// ── Expose ref methods ────────────────────────────────────
|
|
80
122
|
|
|
@@ -110,6 +152,10 @@ const Backstage = exports.Backstage = /*#__PURE__*/(0, _react.forwardRef)(({
|
|
|
110
152
|
logs: logs,
|
|
111
153
|
onRefreshLogs: refreshLogs,
|
|
112
154
|
onCopyLogs: onCopyLogs,
|
|
155
|
+
networkEntries: networkEntries,
|
|
156
|
+
onRefreshNetwork: refreshNetwork,
|
|
157
|
+
onClearNetwork: clearNetwork,
|
|
158
|
+
onCopyNetwork: onCopyLogs,
|
|
113
159
|
extraTabs: extraTabs,
|
|
114
160
|
styles: propStyles,
|
|
115
161
|
children: children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_constants","_logInterceptor","_FloatingPill","_BackstagePanel","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Backstage","exports","forwardRef","visible","appVersion","buildNumber","bundleId","deviceInfo","state","quickActions","maxLogs","DEFAULT_MAX_LOGS","logFilters","onCopyLogs","extraTabs","children","styles","propStyles","initialX","initialY","pillText","ref","panelVisible","setPanelVisible","useState","hasError","setHasError","logs","setLogs","logBuffer","useRef","LogBuffer","openPanel","useCallback","current","getAll","closePanel","clearLogs","clear","refreshLogs","useEffect","handleLogEntry","entry","push","level","installInterceptor","uninstallInterceptor","useImperativeHandle","open","close","displayText","jsxs","View","style","container","pointerEvents","jsx","FloatingPill","text","onPress","BackstagePanel","onClose","onRefreshLogs","displayName","StyleSheet","create","absoluteFillObject","zIndex","elevation"],"sourceRoot":"../../src","sources":["Backstage.tsx"],"mappings":";;;;;;AAAA,IAAAA,MAAA,GAAAC,uBAAA,CAAAC,OAAA;AAQA,IAAAC,YAAA,GAAAD,OAAA;AACA,IAAAE,UAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAH,OAAA;AACA,IAAAI,
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_constants","_logInterceptor","_networkInterceptor","_FloatingPill","_BackstagePanel","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","Backstage","exports","forwardRef","visible","appVersion","buildNumber","bundleId","deviceInfo","state","quickActions","maxLogs","DEFAULT_MAX_LOGS","logFilters","onCopyLogs","extraTabs","children","styles","propStyles","initialX","initialY","pillText","enableNetworkInspector","maxNetworkEntries","DEFAULT_MAX_NETWORK_ENTRIES","maxNetworkBodySize","networkFilters","autoFilterNetworkLogs","ref","panelVisible","setPanelVisible","useState","hasError","setHasError","logs","setLogs","networkEntries","setNetworkEntries","logBuffer","useRef","LogBuffer","networkBuffer","NetworkBuffer","openPanel","useCallback","current","getAll","closePanel","clearLogs","clear","refreshLogs","refreshNetwork","clearNetwork","useEffect","handleLogEntry","entry","push","level","installInterceptor","uninstallInterceptor","handleNetworkEntry","upsert","installNetworkInterceptor","filters","maxBodySize","uninstallNetworkInterceptor","useImperativeHandle","open","close","displayText","jsxs","View","style","container","pointerEvents","jsx","FloatingPill","text","onPress","BackstagePanel","onClose","onRefreshLogs","onRefreshNetwork","onClearNetwork","onCopyNetwork","displayName","StyleSheet","create","absoluteFillObject","zIndex","elevation"],"sourceRoot":"../../src","sources":["Backstage.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -10,6 +10,7 @@ var _constants = require("../constants");
|
|
|
10
10
|
var _TabBar = require("./TabBar");
|
|
11
11
|
var _InfoTab = require("./InfoTab");
|
|
12
12
|
var _LogsTab = require("./LogsTab");
|
|
13
|
+
var _NetworkTab = require("./NetworkTab");
|
|
13
14
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
14
15
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
15
16
|
// ─── Types ───────────────────────────────────────────────────────────────────
|
|
@@ -20,6 +21,10 @@ const BUILT_IN_TABS = [{
|
|
|
20
21
|
key: 'info',
|
|
21
22
|
title: 'Info',
|
|
22
23
|
icon: 'ℹ️'
|
|
24
|
+
}, {
|
|
25
|
+
key: 'network',
|
|
26
|
+
title: 'Network',
|
|
27
|
+
icon: '🌐'
|
|
23
28
|
}, {
|
|
24
29
|
key: 'logs',
|
|
25
30
|
title: 'Logs',
|
|
@@ -40,6 +45,10 @@ const BackstagePanel = ({
|
|
|
40
45
|
logs,
|
|
41
46
|
onRefreshLogs,
|
|
42
47
|
onCopyLogs,
|
|
48
|
+
networkEntries,
|
|
49
|
+
onRefreshNetwork,
|
|
50
|
+
onClearNetwork,
|
|
51
|
+
onCopyNetwork,
|
|
43
52
|
extraTabs = [],
|
|
44
53
|
styles: propStyles,
|
|
45
54
|
children
|
|
@@ -68,6 +77,13 @@ const BackstagePanel = ({
|
|
|
68
77
|
styles: propStyles,
|
|
69
78
|
children: children
|
|
70
79
|
});
|
|
80
|
+
case 'network':
|
|
81
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_NetworkTab.NetworkTab, {
|
|
82
|
+
entries: networkEntries,
|
|
83
|
+
onRefresh: onRefreshNetwork,
|
|
84
|
+
onClear: onClearNetwork,
|
|
85
|
+
onCopy: onCopyNetwork
|
|
86
|
+
});
|
|
71
87
|
case 'logs':
|
|
72
88
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_LogsTab.LogsTab, {
|
|
73
89
|
logs: logs,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_constants","_TabBar","_InfoTab","_LogsTab","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BUILT_IN_TABS","key","title","icon","BackstagePanel","visible","onClose","appVersion","buildNumber","bundleId","deviceInfo","state","quickActions","logs","onRefreshLogs","onCopyLogs","extraTabs","styles","propStyles","children","activeTab","setActiveTab","useState","allTabs","map","renderTabContent","jsx","InfoTab","onClosePanel","
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_constants","_TabBar","_InfoTab","_LogsTab","_NetworkTab","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","BUILT_IN_TABS","key","title","icon","BackstagePanel","visible","onClose","appVersion","buildNumber","bundleId","deviceInfo","state","quickActions","logs","onRefreshLogs","onCopyLogs","networkEntries","onRefreshNetwork","onClearNetwork","onCopyNetwork","extraTabs","styles","propStyles","children","activeTab","setActiveTab","useState","allTabs","map","renderTabContent","jsx","InfoTab","onClosePanel","NetworkTab","entries","onRefresh","onClear","onCopy","LogsTab","extraTab","find","Fragment","render","jsxs","Modal","testID","TestIDs","panel","animationType","transparent","onRequestClose","statusBarTranslucent","StatusBar","barStyle","backgroundColor","DarkTheme","background","SafeAreaView","style","safeArea","panelStyle","View","header","headerLeft","Text","headerBrand","headerTitle","headerTitleStyle","TouchableOpacity","closeButton","onPress","activeOpacity","hitSlop","top","bottom","left","right","closeButtonText","TabBar","tabs","onTabChange","content","exports","StyleSheet","create","flex","flexDirection","alignItems","justifyContent","paddingHorizontal","paddingVertical","borderBottomWidth","borderBottomColor","border","fontSize","marginRight","fontFamily","MonospaceFont","fontWeight","color","text","letterSpacing","width","height","borderRadius","surfaceElevated","borderWidth","borderColor","textSecondary"],"sourceRoot":"../../../src","sources":["components/BackstagePanel.tsx"],"mappings":"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","ignoreList":[]}
|