rn-backstage 1.0.0 → 1.2.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.
Files changed (72) hide show
  1. package/README.md +74 -23
  2. package/lib/commonjs/Backstage.js +55 -5
  3. package/lib/commonjs/Backstage.js.map +1 -1
  4. package/lib/commonjs/components/BackstagePanel.js +36 -5
  5. package/lib/commonjs/components/BackstagePanel.js.map +1 -1
  6. package/lib/commonjs/components/FlagsTab.js +255 -0
  7. package/lib/commonjs/components/FlagsTab.js.map +1 -0
  8. package/lib/commonjs/components/NetworkItem.js +537 -0
  9. package/lib/commonjs/components/NetworkItem.js.map +1 -0
  10. package/lib/commonjs/components/NetworkTab.js +274 -0
  11. package/lib/commonjs/components/NetworkTab.js.map +1 -0
  12. package/lib/commonjs/constants.js +11 -3
  13. package/lib/commonjs/constants.js.map +1 -1
  14. package/lib/commonjs/index.js +6 -0
  15. package/lib/commonjs/index.js.map +1 -1
  16. package/lib/commonjs/log-interceptor.js +8 -1
  17. package/lib/commonjs/log-interceptor.js.map +1 -1
  18. package/lib/commonjs/network-interceptor.js +417 -0
  19. package/lib/commonjs/network-interceptor.js.map +1 -0
  20. package/lib/commonjs/types.js +9 -1
  21. package/lib/commonjs/types.js.map +1 -1
  22. package/lib/module/Backstage.js +56 -6
  23. package/lib/module/Backstage.js.map +1 -1
  24. package/lib/module/components/BackstagePanel.js +36 -5
  25. package/lib/module/components/BackstagePanel.js.map +1 -1
  26. package/lib/module/components/FlagsTab.js +250 -0
  27. package/lib/module/components/FlagsTab.js.map +1 -0
  28. package/lib/module/components/NetworkItem.js +532 -0
  29. package/lib/module/components/NetworkItem.js.map +1 -0
  30. package/lib/module/components/NetworkTab.js +269 -0
  31. package/lib/module/components/NetworkTab.js.map +1 -0
  32. package/lib/module/constants.js +10 -2
  33. package/lib/module/constants.js.map +1 -1
  34. package/lib/module/index.js +1 -1
  35. package/lib/module/index.js.map +1 -1
  36. package/lib/module/log-interceptor.js +8 -1
  37. package/lib/module/log-interceptor.js.map +1 -1
  38. package/lib/module/network-interceptor.js +409 -0
  39. package/lib/module/network-interceptor.js.map +1 -0
  40. package/lib/module/types.js +10 -0
  41. package/lib/module/types.js.map +1 -1
  42. package/lib/typescript/Backstage.d.ts.map +1 -1
  43. package/lib/typescript/components/BackstagePanel.d.ts +7 -1
  44. package/lib/typescript/components/BackstagePanel.d.ts.map +1 -1
  45. package/lib/typescript/components/FlagsTab.d.ts +9 -0
  46. package/lib/typescript/components/FlagsTab.d.ts.map +1 -0
  47. package/lib/typescript/components/NetworkItem.d.ts +9 -0
  48. package/lib/typescript/components/NetworkItem.d.ts.map +1 -0
  49. package/lib/typescript/components/NetworkTab.d.ts +11 -0
  50. package/lib/typescript/components/NetworkTab.d.ts.map +1 -0
  51. package/lib/typescript/constants.d.ts +8 -0
  52. package/lib/typescript/constants.d.ts.map +1 -1
  53. package/lib/typescript/index.d.ts +2 -2
  54. package/lib/typescript/index.d.ts.map +1 -1
  55. package/lib/typescript/log-interceptor.d.ts +3 -1
  56. package/lib/typescript/log-interceptor.d.ts.map +1 -1
  57. package/lib/typescript/network-interceptor.d.ts +35 -0
  58. package/lib/typescript/network-interceptor.d.ts.map +1 -0
  59. package/lib/typescript/types.d.ts +46 -0
  60. package/lib/typescript/types.d.ts.map +1 -1
  61. package/package.json +1 -1
  62. package/src/Backstage.tsx +64 -6
  63. package/src/components/BackstagePanel.tsx +46 -5
  64. package/src/components/FlagsTab.tsx +249 -0
  65. package/src/components/InfoTab.tsx +1 -1
  66. package/src/components/NetworkItem.tsx +536 -0
  67. package/src/components/NetworkTab.tsx +274 -0
  68. package/src/constants.ts +11 -2
  69. package/src/index.ts +3 -1
  70. package/src/log-interceptor.ts +12 -1
  71. package/src/network-interceptor.ts +468 -0
  72. package/src/types.ts +60 -0
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
- # react-native-backstage
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,19 @@ 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
12
+ - 🎚 **Feature flag toggle** — render switches to toggle flags in real-time without restarting
11
13
  - ⚡ **Quick actions** — add custom buttons (logout, clear cache, etc.)
12
- - 🔌 **Extensible tabs** — add custom tabs for features like network inspection
14
+ - 🔌 **Extensible tabs** — add custom tabs for app-specific debugging tools
13
15
  - 🎨 **Dark glassmorphism UI** — beautiful, professional developer tool aesthetic
14
16
  - 📦 **Zero dependencies** — only peer deps are `react` and `react-native`
15
17
 
16
18
  ## Installation
17
19
 
18
20
  ```sh
19
- npm install react-native-backstage
21
+ npm install rn-backstage
20
22
  # or
21
- yarn add react-native-backstage
23
+ yarn add rn-backstage
22
24
  ```
23
25
 
24
26
  No additional native dependencies required!
@@ -26,7 +28,7 @@ No additional native dependencies required!
26
28
  ## Usage
27
29
 
28
30
  ```tsx
29
- import { Backstage } from 'react-native-backstage'
31
+ import { Backstage } from 'rn-backstage'
30
32
 
31
33
  export default function App() {
32
34
  return (
@@ -41,37 +43,86 @@ export default function App() {
41
43
  { title: 'Logout', onPress: handleLogout, destructive: true },
42
44
  { title: 'Clear Cache', onPress: clearCache },
43
45
  ]}
44
- onCopyLogs={(logs) => Clipboard.setString(logs)}
46
+ onCopyLogs={logs => Clipboard.setString(logs)}
45
47
  />
46
48
  </>
47
49
  )
48
50
  }
49
51
  ```
50
52
 
53
+ ## Network Inspector
54
+
55
+ The Network tab automatically intercepts all `fetch()` and `XMLHttpRequest` traffic — including libraries built on top of them like **Axios**, **Apisauce**, **ky**, and **Apollo Client**.
56
+
57
+ Each request shows:
58
+ - Method, URL, status code, and duration
59
+ - Request & response headers
60
+ - Request & response body (auto-parsed JSON with tree view)
61
+ - Response size
62
+ - Copy as cURL (long-press any request)
63
+
64
+ ```tsx
65
+ <Backstage
66
+ // Network inspector is enabled by default
67
+ enableNetworkInspector={true}
68
+ // Exclude noisy URLs (analytics, Sentry, etc.)
69
+ networkFilters={['sentry.io', 'analytics', 'hot-update']}
70
+ // Limit body capture size (default: 64KB)
71
+ maxNetworkBodySize={65536}
72
+ // Auto-filters console.logs from Axios interceptors / fetch .then() chains
73
+ // out of the Logs tab (they're already in the Network tab). Default: true
74
+ autoFilterNetworkLogs={true}
75
+ />
76
+ ```
77
+ ## Feature Flag Toggle
78
+
79
+ Pass feature flags to render a dedicated **Flags** tab with toggle switches. The tab only appears when at least one flag is provided. Toggling calls your callback in real-time — no app restart needed.
80
+
81
+ ```tsx
82
+ const [flags, setFlags] = useState([
83
+ { key: 'dark_mode', label: 'Dark Mode', value: true, description: 'Enable dark theme' },
84
+ { key: 'beta', label: 'Beta Features', value: false, description: 'Experimental features' },
85
+ ])
86
+
87
+ <Backstage
88
+ featureFlags={flags}
89
+ onToggleFeatureFlag={(key, value) => {
90
+ setFlags(prev => prev.map(f => (f.key === key ? { ...f, value } : f)))
91
+ }}
92
+ />
93
+ ```
94
+
51
95
  ## Props
52
96
 
53
- | Prop | Type | Default | Description |
54
- |---|---|---|---|
55
- | `visible` | `boolean` | `true` | Show/hide the floating pill |
56
- | `appVersion` | `string` | `undefined` | App version to display |
57
- | `buildNumber` | `string` | `undefined` | Build number |
58
- | `bundleId` | `string` | `undefined` | Bundle identifier |
59
- | `deviceInfo` | `AppInfoItem[]` | `[]` | Additional device/app info rows |
60
- | `state` | `object` | `undefined` | State tree to inspect |
61
- | `quickActions` | `QuickAction[]` | `[]` | Custom action buttons |
62
- | `maxLogs` | `number` | `500` | Maximum logs to retain |
63
- | `logFilters` | `string[]` | `[]` | Messages to exclude from logs |
64
- | `onCopyLogs` | `(logs: string) => void` | `undefined` | Callback when copying logs |
65
- | `extraTabs` | `BackstageTab[]` | `[]` | Additional custom tabs |
66
- | `children` | `ReactNode` | `undefined` | Extra content in InfoTab |
97
+ | Prop | Type | Default | Description |
98
+ | ------------------------ | ----------------------------- | ----------- | ----------------------------------------------- |
99
+ | `visible` | `boolean` | `true` | Show/hide the floating pill |
100
+ | `appVersion` | `string` | `undefined` | App version to display |
101
+ | `buildNumber` | `string` | `undefined` | Build number |
102
+ | `bundleId` | `string` | `undefined` | Bundle identifier |
103
+ | `deviceInfo` | `AppInfoItem[]` | `[]` | Additional device/app info rows |
104
+ | `state` | `object` | `undefined` | State tree to inspect |
105
+ | `quickActions` | `QuickAction[]` | `[]` | Custom action buttons |
106
+ | `featureFlags` | `FeatureFlag[]` | `[]` | Feature flags with toggle switches |
107
+ | `onToggleFeatureFlag` | `(key, val: boolean) => void` | `undefined` | Callback when a flag is toggled |
108
+ | `maxLogs` | `number` | `500` | Maximum logs to retain |
109
+ | `logFilters` | `string[]` | `[]` | Messages to exclude from logs |
110
+ | `onCopyLogs` | `(logs: string) => void` | `undefined` | Callback when copying logs |
111
+ | `enableNetworkInspector` | `boolean` | `true` | Enable/disable network request interception |
112
+ | `maxNetworkEntries` | `number` | `500` | Maximum network entries to retain |
113
+ | `maxNetworkBodySize` | `number` | `65536` | Max body size (bytes) to capture per request |
114
+ | `networkFilters` | `string[]` | `[]` | URL substrings to exclude from capture |
115
+ | `autoFilterNetworkLogs` | `boolean` | `true` | Auto-filter network callback logs from Logs tab |
116
+ | `extraTabs` | `BackstageTab[]` | `[]` | Additional custom tabs |
117
+ | `children` | `ReactNode` | `undefined` | Extra content in InfoTab |
67
118
 
68
119
  ## Ref Methods
69
120
 
70
121
  ```tsx
71
122
  const ref = useRef<BackstageRef>(null)
72
123
 
73
- ref.current?.open() // Open the panel
74
- ref.current?.close() // Close the panel
124
+ ref.current?.open() // Open the panel
125
+ ref.current?.close() // Close the panel
75
126
  ref.current?.clearLogs() // Clear all captured logs
76
127
  ```
77
128
 
@@ -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");
@@ -22,6 +23,8 @@ const Backstage = exports.Backstage = /*#__PURE__*/(0, _react.forwardRef)(({
22
23
  deviceInfo,
23
24
  state,
24
25
  quickActions,
26
+ featureFlags,
27
+ onToggleFeatureFlag,
25
28
  maxLogs = _constants.DEFAULT_MAX_LOGS,
26
29
  logFilters,
27
30
  onCopyLogs,
@@ -30,19 +33,27 @@ const Backstage = exports.Backstage = /*#__PURE__*/(0, _react.forwardRef)(({
30
33
  styles: propStyles,
31
34
  initialX,
32
35
  initialY,
33
- pillText
36
+ pillText,
37
+ enableNetworkInspector = true,
38
+ maxNetworkEntries = _constants.DEFAULT_MAX_NETWORK_ENTRIES,
39
+ maxNetworkBodySize,
40
+ networkFilters,
41
+ autoFilterNetworkLogs = true
34
42
  }, ref) => {
35
43
  const [panelVisible, setPanelVisible] = (0, _react.useState)(false);
36
44
  const [hasError, setHasError] = (0, _react.useState)(false);
37
45
  const [logs, setLogs] = (0, _react.useState)([]);
46
+ const [networkEntries, setNetworkEntries] = (0, _react.useState)([]);
38
47
  const logBuffer = (0, _react.useRef)(new _logInterceptor.LogBuffer(maxLogs));
48
+ const networkBuffer = (0, _react.useRef)(new _networkInterceptor.NetworkBuffer(maxNetworkEntries));
39
49
 
40
50
  // ── Panel controls ────────────────────────────────────────
41
51
 
42
52
  const openPanel = (0, _react.useCallback)(() => {
43
53
  setPanelVisible(true);
44
- // Sync logs when opening panel
54
+ // Sync logs and network entries when opening panel
45
55
  setLogs(logBuffer.current.getAll());
56
+ setNetworkEntries(networkBuffer.current.getAll());
46
57
  }, []);
47
58
  const closePanel = (0, _react.useCallback)(() => {
48
59
  setPanelVisible(false);
@@ -53,12 +64,22 @@ const Backstage = exports.Backstage = /*#__PURE__*/(0, _react.forwardRef)(({
53
64
  setHasError(false);
54
65
  }, []);
55
66
 
56
- // ── Refresh logs ──────────────────────────────────────────
67
+ // ── Refresh logs ──────────────────────────────────────────────────
57
68
 
58
69
  const refreshLogs = (0, _react.useCallback)(() => {
59
70
  setLogs(logBuffer.current.getAll());
60
71
  }, []);
61
72
 
73
+ // ── Network controls ──────────────────────────────────────────────
74
+
75
+ const refreshNetwork = (0, _react.useCallback)(() => {
76
+ setNetworkEntries(networkBuffer.current.getAll());
77
+ }, []);
78
+ const clearNetwork = (0, _react.useCallback)(() => {
79
+ networkBuffer.current.clear();
80
+ setNetworkEntries([]);
81
+ }, []);
82
+
62
83
  // ── Install console interceptor ───────────────────────────
63
84
 
64
85
  (0, _react.useEffect)(() => {
@@ -70,11 +91,34 @@ const Backstage = exports.Backstage = /*#__PURE__*/(0, _react.forwardRef)(({
70
91
  setHasError(true);
71
92
  }
72
93
  };
73
- (0, _logInterceptor.installInterceptor)(handleLogEntry, logFilters);
94
+ (0, _logInterceptor.installInterceptor)(handleLogEntry, logFilters, {
95
+ autoFilterNetworkLogs: enableNetworkInspector && autoFilterNetworkLogs
96
+ });
74
97
  return () => {
75
98
  (0, _logInterceptor.uninstallInterceptor)();
76
99
  };
77
- }, [logFilters]);
100
+ }, [logFilters, enableNetworkInspector, autoFilterNetworkLogs]);
101
+
102
+ // ── Install network interceptor ───────────────────────────────
103
+
104
+ (0, _react.useEffect)(() => {
105
+ if (!enableNetworkInspector) return;
106
+ const handleNetworkEntry = entry => {
107
+ networkBuffer.current.upsert(entry);
108
+
109
+ // Auto-refresh if panel is open
110
+ if (panelVisible) {
111
+ setNetworkEntries(networkBuffer.current.getAll());
112
+ }
113
+ };
114
+ (0, _networkInterceptor.installNetworkInterceptor)(handleNetworkEntry, {
115
+ filters: networkFilters,
116
+ maxBodySize: maxNetworkBodySize
117
+ });
118
+ return () => {
119
+ (0, _networkInterceptor.uninstallNetworkInterceptor)();
120
+ };
121
+ }, [enableNetworkInspector, networkFilters, maxNetworkBodySize, panelVisible]);
78
122
 
79
123
  // ── Expose ref methods ────────────────────────────────────
80
124
 
@@ -107,9 +151,15 @@ const Backstage = exports.Backstage = /*#__PURE__*/(0, _react.forwardRef)(({
107
151
  deviceInfo: deviceInfo,
108
152
  state: state,
109
153
  quickActions: quickActions,
154
+ featureFlags: featureFlags,
155
+ onToggleFeatureFlag: onToggleFeatureFlag,
110
156
  logs: logs,
111
157
  onRefreshLogs: refreshLogs,
112
158
  onCopyLogs: onCopyLogs,
159
+ networkEntries: networkEntries,
160
+ onRefreshNetwork: refreshNetwork,
161
+ onClearNetwork: clearNetwork,
162
+ onCopyNetwork: onCopyLogs,
113
163
  extraTabs: extraTabs,
114
164
  styles: propStyles,
115
165
  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":"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","ignoreList":[]}
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","featureFlags","onToggleFeatureFlag","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,21 +10,33 @@ 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");
14
+ var _FlagsTab = require("./FlagsTab");
13
15
  var _jsxRuntime = require("react/jsx-runtime");
14
16
  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
17
  // ─── Types ───────────────────────────────────────────────────────────────────
16
18
 
17
- // ─── Built-in Tab Definitions ────────────────────────────────────────────────
19
+ // ─── Built-in Tab Definitions ────────────────────────────────────────────
18
20
 
19
- const BUILT_IN_TABS = [{
21
+ const ALWAYS_ON_TABS = [{
20
22
  key: 'info',
21
23
  title: 'Info',
22
24
  icon: 'ℹ️'
23
25
  }, {
26
+ key: 'network',
27
+ title: 'Network',
28
+ icon: '🌐'
29
+ }];
30
+ const FLAGS_TAB = {
31
+ key: 'flags',
32
+ title: 'Flags',
33
+ icon: '🎚'
34
+ };
35
+ const LOGS_TAB = {
24
36
  key: 'logs',
25
37
  title: 'Logs',
26
38
  icon: '📋'
27
- }];
39
+ };
28
40
 
29
41
  // ─── Component ───────────────────────────────────────────────────────────────
30
42
 
@@ -37,17 +49,24 @@ const BackstagePanel = ({
37
49
  deviceInfo,
38
50
  state,
39
51
  quickActions,
52
+ featureFlags,
53
+ onToggleFeatureFlag,
40
54
  logs,
41
55
  onRefreshLogs,
42
56
  onCopyLogs,
57
+ networkEntries,
58
+ onRefreshNetwork,
59
+ onClearNetwork,
60
+ onCopyNetwork,
43
61
  extraTabs = [],
44
62
  styles: propStyles,
45
63
  children
46
64
  }) => {
47
65
  const [activeTab, setActiveTab] = (0, _react.useState)('info');
48
66
 
49
- // Compose all tabs: built-in + extra
50
- const allTabs = [...BUILT_IN_TABS, ...extraTabs.map(t => ({
67
+ // Compose all tabs: built-in (conditionally including Flags) + extra
68
+ const hasFlags = featureFlags && featureFlags.length > 0;
69
+ const allTabs = [...ALWAYS_ON_TABS, ...(hasFlags ? [FLAGS_TAB] : []), LOGS_TAB, ...extraTabs.map(t => ({
51
70
  key: t.key,
52
71
  title: t.title,
53
72
  icon: t.icon
@@ -68,6 +87,18 @@ const BackstagePanel = ({
68
87
  styles: propStyles,
69
88
  children: children
70
89
  });
90
+ case 'flags':
91
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_FlagsTab.FlagsTab, {
92
+ flags: featureFlags ?? [],
93
+ onToggle: onToggleFeatureFlag
94
+ });
95
+ case 'network':
96
+ return /*#__PURE__*/(0, _jsxRuntime.jsx)(_NetworkTab.NetworkTab, {
97
+ entries: networkEntries,
98
+ onRefresh: onRefreshNetwork,
99
+ onClear: onClearNetwork,
100
+ onCopy: onCopyNetwork
101
+ });
71
102
  case 'logs':
72
103
  return /*#__PURE__*/(0, _jsxRuntime.jsx)(_LogsTab.LogsTab, {
73
104
  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","LogsTab","onRefresh","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":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_constants","_TabBar","_InfoTab","_LogsTab","_NetworkTab","_FlagsTab","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ALWAYS_ON_TABS","key","title","icon","FLAGS_TAB","LOGS_TAB","BackstagePanel","visible","onClose","appVersion","buildNumber","bundleId","deviceInfo","state","quickActions","featureFlags","onToggleFeatureFlag","logs","onRefreshLogs","onCopyLogs","networkEntries","onRefreshNetwork","onClearNetwork","onCopyNetwork","extraTabs","styles","propStyles","children","activeTab","setActiveTab","useState","hasFlags","length","allTabs","map","renderTabContent","jsx","InfoTab","onClosePanel","FlagsTab","flags","onToggle","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":[]}