rn-backstage 1.2.0 → 1.2.1
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 +2 -0
- package/lib/commonjs/Backstage.js +40 -33
- package/lib/commonjs/Backstage.js.map +1 -1
- package/lib/commonjs/ThemeContext.js +43 -0
- package/lib/commonjs/ThemeContext.js.map +1 -0
- package/lib/commonjs/components/BackstagePanel.js +17 -10
- package/lib/commonjs/components/BackstagePanel.js.map +1 -1
- package/lib/commonjs/components/FlagsTab.js +50 -49
- package/lib/commonjs/components/FlagsTab.js.map +1 -1
- package/lib/commonjs/components/FloatingPill.js +4 -2
- package/lib/commonjs/components/FloatingPill.js.map +1 -1
- package/lib/commonjs/components/InfoTab.js +73 -107
- package/lib/commonjs/components/InfoTab.js.map +1 -1
- package/lib/commonjs/components/JsonTreeView.js +39 -34
- package/lib/commonjs/components/JsonTreeView.js.map +1 -1
- package/lib/commonjs/components/LogItem.js +33 -29
- package/lib/commonjs/components/LogItem.js.map +1 -1
- package/lib/commonjs/components/LogsTab.js +37 -42
- package/lib/commonjs/components/LogsTab.js.map +1 -1
- package/lib/commonjs/components/NetworkItem.js +111 -135
- package/lib/commonjs/components/NetworkItem.js.map +1 -1
- package/lib/commonjs/components/NetworkTab.js +48 -49
- package/lib/commonjs/components/NetworkTab.js.map +1 -1
- package/lib/commonjs/components/TabBar.js +8 -5
- package/lib/commonjs/components/TabBar.js.map +1 -1
- package/lib/commonjs/constants.js +24 -1
- package/lib/commonjs/constants.js.map +1 -1
- package/lib/commonjs/index.js +19 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types.js.map +1 -1
- package/lib/module/Backstage.js +40 -33
- package/lib/module/Backstage.js.map +1 -1
- package/lib/module/ThemeContext.js +37 -0
- package/lib/module/ThemeContext.js.map +1 -0
- package/lib/module/components/BackstagePanel.js +19 -12
- package/lib/module/components/BackstagePanel.js.map +1 -1
- package/lib/module/components/FlagsTab.js +51 -50
- package/lib/module/components/FlagsTab.js.map +1 -1
- package/lib/module/components/FloatingPill.js +5 -3
- package/lib/module/components/FloatingPill.js.map +1 -1
- package/lib/module/components/InfoTab.js +73 -107
- package/lib/module/components/InfoTab.js.map +1 -1
- package/lib/module/components/JsonTreeView.js +42 -38
- package/lib/module/components/JsonTreeView.js.map +1 -1
- package/lib/module/components/LogItem.js +35 -31
- package/lib/module/components/LogItem.js.map +1 -1
- package/lib/module/components/LogsTab.js +38 -43
- package/lib/module/components/LogsTab.js.map +1 -1
- package/lib/module/components/NetworkItem.js +113 -137
- package/lib/module/components/NetworkItem.js.map +1 -1
- package/lib/module/components/NetworkTab.js +49 -50
- package/lib/module/components/NetworkTab.js.map +1 -1
- package/lib/module/components/TabBar.js +10 -7
- package/lib/module/components/TabBar.js.map +1 -1
- package/lib/module/constants.js +23 -0
- package/lib/module/constants.js.map +1 -1
- package/lib/module/index.js +1 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/types.js.map +1 -1
- package/lib/typescript/Backstage.d.ts.map +1 -1
- package/lib/typescript/ThemeContext.d.ts +11 -0
- package/lib/typescript/ThemeContext.d.ts.map +1 -0
- package/lib/typescript/components/BackstagePanel.d.ts +1 -0
- package/lib/typescript/components/BackstagePanel.d.ts.map +1 -1
- package/lib/typescript/components/FlagsTab.d.ts.map +1 -1
- package/lib/typescript/components/FloatingPill.d.ts.map +1 -1
- package/lib/typescript/components/InfoTab.d.ts +1 -0
- package/lib/typescript/components/InfoTab.d.ts.map +1 -1
- package/lib/typescript/components/JsonTreeView.d.ts.map +1 -1
- package/lib/typescript/components/LogItem.d.ts +1 -0
- package/lib/typescript/components/LogItem.d.ts.map +1 -1
- package/lib/typescript/components/LogsTab.d.ts +1 -0
- package/lib/typescript/components/LogsTab.d.ts.map +1 -1
- package/lib/typescript/components/NetworkItem.d.ts +1 -0
- package/lib/typescript/components/NetworkItem.d.ts.map +1 -1
- package/lib/typescript/components/NetworkTab.d.ts +1 -0
- package/lib/typescript/components/NetworkTab.d.ts.map +1 -1
- package/lib/typescript/components/TabBar.d.ts.map +1 -1
- package/lib/typescript/constants.d.ts +1 -0
- package/lib/typescript/constants.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +2 -0
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +4 -0
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/Backstage.tsx +39 -33
- package/src/ThemeContext.tsx +38 -0
- package/src/components/BackstagePanel.tsx +66 -57
- package/src/components/FlagsTab.tsx +123 -174
- package/src/components/FloatingPill.tsx +6 -3
- package/src/components/InfoTab.tsx +152 -186
- package/src/components/JsonTreeView.tsx +53 -73
- package/src/components/LogItem.tsx +55 -100
- package/src/components/LogsTab.tsx +110 -132
- package/src/components/NetworkItem.tsx +306 -417
- package/src/components/NetworkTab.tsx +129 -163
- package/src/components/TabBar.tsx +51 -47
- package/src/constants.ts +23 -0
- package/src/index.ts +2 -0
- package/src/types.ts +6 -0
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
import React, { useCallback, useState } from 'react';
|
|
3
|
+
import React, { useCallback, useMemo, useState } from 'react';
|
|
4
4
|
import { StyleSheet, Text, TouchableOpacity, View } from 'react-native';
|
|
5
|
-
import {
|
|
5
|
+
import { MonospaceFont } from '../constants';
|
|
6
|
+
import { useBackstageTheme } from '../ThemeContext';
|
|
6
7
|
import { LogLevel } from '../types';
|
|
7
8
|
import { formatTimestamp } from '../utils/formatTimestamp';
|
|
8
9
|
import { JsonTreeView } from './JsonTreeView';
|
|
@@ -11,40 +12,40 @@ import { JsonTreeView } from './JsonTreeView';
|
|
|
11
12
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
12
13
|
// ─── Badge Colors ────────────────────────────────────────────────────────────
|
|
13
14
|
|
|
14
|
-
function getBadgeConfig(level) {
|
|
15
|
+
function getBadgeConfig(level, t) {
|
|
15
16
|
switch (level) {
|
|
16
17
|
case LogLevel.error:
|
|
17
18
|
return {
|
|
18
19
|
label: 'ERROR',
|
|
19
|
-
color:
|
|
20
|
-
bgColor:
|
|
20
|
+
color: t.error,
|
|
21
|
+
bgColor: t.errorDim,
|
|
21
22
|
rowBg: 'rgba(255, 77, 106, 0.06)'
|
|
22
23
|
};
|
|
23
24
|
case LogLevel.warn:
|
|
24
25
|
return {
|
|
25
26
|
label: 'WARN',
|
|
26
|
-
color:
|
|
27
|
-
bgColor:
|
|
27
|
+
color: t.warning,
|
|
28
|
+
bgColor: t.warningDim,
|
|
28
29
|
rowBg: 'rgba(255, 178, 36, 0.06)'
|
|
29
30
|
};
|
|
30
31
|
case LogLevel.info:
|
|
31
32
|
return {
|
|
32
33
|
label: 'INFO',
|
|
33
|
-
color:
|
|
34
|
-
bgColor:
|
|
34
|
+
color: t.info,
|
|
35
|
+
bgColor: t.infoDim,
|
|
35
36
|
rowBg: 'transparent'
|
|
36
37
|
};
|
|
37
38
|
case LogLevel.debug:
|
|
38
39
|
return {
|
|
39
40
|
label: 'DEBUG',
|
|
40
|
-
color:
|
|
41
|
-
bgColor:
|
|
41
|
+
color: t.debugColor,
|
|
42
|
+
bgColor: t.debugDim,
|
|
42
43
|
rowBg: 'transparent'
|
|
43
44
|
};
|
|
44
45
|
default:
|
|
45
46
|
return {
|
|
46
47
|
label: 'LOG',
|
|
47
|
-
color:
|
|
48
|
+
color: t.textSecondary,
|
|
48
49
|
bgColor: 'rgba(160, 160, 176, 0.1)',
|
|
49
50
|
rowBg: 'transparent'
|
|
50
51
|
};
|
|
@@ -56,10 +57,13 @@ function getBadgeConfig(level) {
|
|
|
56
57
|
export const LogItem = /*#__PURE__*/React.memo(({
|
|
57
58
|
item,
|
|
58
59
|
onCopy,
|
|
60
|
+
jsonMaxDepth,
|
|
59
61
|
styles: propStyles
|
|
60
62
|
}) => {
|
|
63
|
+
const theme = useBackstageTheme();
|
|
64
|
+
const s = useMemo(() => createStyles(theme), [theme]);
|
|
61
65
|
const [expanded, setExpanded] = useState(false);
|
|
62
|
-
const badge = getBadgeConfig(item.level);
|
|
66
|
+
const badge = getBadgeConfig(item.level, theme);
|
|
63
67
|
const hasData = item.data !== undefined;
|
|
64
68
|
const toggleExpand = useCallback(() => {
|
|
65
69
|
setExpanded(prev => !prev);
|
|
@@ -71,29 +75,29 @@ export const LogItem = /*#__PURE__*/React.memo(({
|
|
|
71
75
|
}
|
|
72
76
|
}, [item, badge.label, onCopy]);
|
|
73
77
|
return /*#__PURE__*/_jsxs(TouchableOpacity, {
|
|
74
|
-
style: [
|
|
78
|
+
style: [s.container, {
|
|
75
79
|
backgroundColor: badge.rowBg
|
|
76
80
|
}],
|
|
77
81
|
onPress: hasData ? toggleExpand : undefined,
|
|
78
82
|
onLongPress: handleCopy,
|
|
79
83
|
activeOpacity: hasData ? 0.7 : 1,
|
|
80
84
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
81
|
-
style:
|
|
85
|
+
style: s.headerRow,
|
|
82
86
|
children: [/*#__PURE__*/_jsx(View, {
|
|
83
|
-
style: [
|
|
87
|
+
style: [s.badge, {
|
|
84
88
|
backgroundColor: badge.bgColor
|
|
85
89
|
}],
|
|
86
90
|
children: /*#__PURE__*/_jsx(Text, {
|
|
87
|
-
style: [
|
|
91
|
+
style: [s.badgeText, {
|
|
88
92
|
color: badge.color
|
|
89
93
|
}],
|
|
90
94
|
children: badge.label
|
|
91
95
|
})
|
|
92
96
|
}), /*#__PURE__*/_jsx(Text, {
|
|
93
|
-
style: [
|
|
97
|
+
style: [s.timestamp, propStyles?.logTimestampStyle],
|
|
94
98
|
children: formatTimestamp(item.timestamp)
|
|
95
99
|
}), onCopy && /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
96
|
-
style:
|
|
100
|
+
style: s.copyButton,
|
|
97
101
|
onPress: handleCopy,
|
|
98
102
|
hitSlop: {
|
|
99
103
|
top: 8,
|
|
@@ -102,23 +106,23 @@ export const LogItem = /*#__PURE__*/React.memo(({
|
|
|
102
106
|
right: 8
|
|
103
107
|
},
|
|
104
108
|
children: /*#__PURE__*/_jsx(Text, {
|
|
105
|
-
style:
|
|
109
|
+
style: s.copyButtonText,
|
|
106
110
|
children: "\u29C9"
|
|
107
111
|
})
|
|
108
112
|
})]
|
|
109
113
|
}), /*#__PURE__*/_jsx(Text, {
|
|
110
|
-
style: [
|
|
114
|
+
style: [s.message, propStyles?.logMessageStyle],
|
|
111
115
|
numberOfLines: expanded ? undefined : 3,
|
|
112
116
|
children: item.message
|
|
113
117
|
}), expanded && hasData && /*#__PURE__*/_jsx(View, {
|
|
114
|
-
style:
|
|
118
|
+
style: s.dataContainer,
|
|
115
119
|
children: /*#__PURE__*/_jsx(JsonTreeView, {
|
|
116
120
|
data: item.data,
|
|
117
121
|
hideRoot: true,
|
|
118
|
-
maxDepth:
|
|
122
|
+
maxDepth: jsonMaxDepth
|
|
119
123
|
})
|
|
120
124
|
}), hasData && !expanded && /*#__PURE__*/_jsx(Text, {
|
|
121
|
-
style:
|
|
125
|
+
style: s.expandHint,
|
|
122
126
|
children: "tap to expand \u25BE"
|
|
123
127
|
})]
|
|
124
128
|
});
|
|
@@ -126,12 +130,12 @@ export const LogItem = /*#__PURE__*/React.memo(({
|
|
|
126
130
|
|
|
127
131
|
// ─── Styles ──────────────────────────────────────────────────────────────────
|
|
128
132
|
|
|
129
|
-
const
|
|
133
|
+
const createStyles = t => StyleSheet.create({
|
|
130
134
|
container: {
|
|
131
135
|
paddingHorizontal: 14,
|
|
132
136
|
paddingVertical: 10,
|
|
133
137
|
borderBottomWidth: 1,
|
|
134
|
-
borderBottomColor:
|
|
138
|
+
borderBottomColor: t.border
|
|
135
139
|
},
|
|
136
140
|
headerRow: {
|
|
137
141
|
flexDirection: 'row',
|
|
@@ -153,7 +157,7 @@ const styles = StyleSheet.create({
|
|
|
153
157
|
timestamp: {
|
|
154
158
|
fontFamily: MonospaceFont,
|
|
155
159
|
fontSize: 11,
|
|
156
|
-
color:
|
|
160
|
+
color: t.textMuted,
|
|
157
161
|
flex: 1
|
|
158
162
|
},
|
|
159
163
|
copyButton: {
|
|
@@ -161,24 +165,24 @@ const styles = StyleSheet.create({
|
|
|
161
165
|
},
|
|
162
166
|
copyButtonText: {
|
|
163
167
|
fontSize: 16,
|
|
164
|
-
color:
|
|
168
|
+
color: t.textMuted
|
|
165
169
|
},
|
|
166
170
|
message: {
|
|
167
171
|
fontFamily: MonospaceFont,
|
|
168
172
|
fontSize: 12,
|
|
169
|
-
color:
|
|
173
|
+
color: t.text,
|
|
170
174
|
lineHeight: 18
|
|
171
175
|
},
|
|
172
176
|
dataContainer: {
|
|
173
177
|
marginTop: 8,
|
|
174
178
|
paddingTop: 8,
|
|
175
179
|
borderTopWidth: 1,
|
|
176
|
-
borderTopColor:
|
|
180
|
+
borderTopColor: t.border
|
|
177
181
|
},
|
|
178
182
|
expandHint: {
|
|
179
183
|
fontFamily: MonospaceFont,
|
|
180
184
|
fontSize: 10,
|
|
181
|
-
color:
|
|
185
|
+
color: t.textMuted,
|
|
182
186
|
marginTop: 4,
|
|
183
187
|
fontStyle: 'italic'
|
|
184
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useState","StyleSheet","Text","TouchableOpacity","View","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","useState","StyleSheet","Text","TouchableOpacity","View","MonospaceFont","useBackstageTheme","LogLevel","formatTimestamp","JsonTreeView","jsx","_jsx","jsxs","_jsxs","getBadgeConfig","level","t","error","label","color","bgColor","errorDim","rowBg","warn","warning","warningDim","info","infoDim","debug","debugColor","debugDim","textSecondary","LogItem","memo","item","onCopy","jsonMaxDepth","styles","propStyles","theme","s","createStyles","expanded","setExpanded","badge","hasData","data","undefined","toggleExpand","prev","handleCopy","text","timestamp","message","style","container","backgroundColor","onPress","onLongPress","activeOpacity","children","headerRow","badgeText","logTimestampStyle","copyButton","hitSlop","top","bottom","left","right","copyButtonText","logMessageStyle","numberOfLines","dataContainer","hideRoot","maxDepth","expandHint","create","paddingHorizontal","paddingVertical","borderBottomWidth","borderBottomColor","border","flexDirection","alignItems","marginBottom","borderRadius","marginRight","fontFamily","fontSize","fontWeight","letterSpacing","textMuted","flex","padding","lineHeight","marginTop","paddingTop","borderTopWidth","borderTopColor","fontStyle"],"sourceRoot":"../../../src","sources":["components/LogItem.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
import React, { useCallback, useMemo, useState } from 'react';
|
|
4
4
|
import { FlatList, StyleSheet, Text, TextInput, TouchableOpacity, View } from 'react-native';
|
|
5
|
-
import {
|
|
5
|
+
import { MonospaceFont, TestIDs } from '../constants';
|
|
6
|
+
import { useBackstageTheme } from '../ThemeContext';
|
|
6
7
|
import { LogItem } from './LogItem';
|
|
7
8
|
import { formatTimestamp } from '../utils/formatTimestamp';
|
|
8
9
|
|
|
@@ -14,11 +15,12 @@ export const LogsTab = ({
|
|
|
14
15
|
logs,
|
|
15
16
|
onRefresh,
|
|
16
17
|
onCopyLogs,
|
|
18
|
+
jsonMaxDepth,
|
|
17
19
|
styles: propStyles
|
|
18
20
|
}) => {
|
|
21
|
+
const theme = useBackstageTheme();
|
|
22
|
+
const s = useMemo(() => createStyles(theme), [theme]);
|
|
19
23
|
const [searchText, setSearchText] = useState('');
|
|
20
|
-
|
|
21
|
-
// Filter logs based on search text
|
|
22
24
|
const filteredLogs = useMemo(() => {
|
|
23
25
|
if (!searchText.trim()) return logs;
|
|
24
26
|
const query = searchText.toLowerCase();
|
|
@@ -26,44 +28,39 @@ export const LogsTab = ({
|
|
|
26
28
|
return log.message.toLowerCase().includes(query) || log.level.toLowerCase().includes(query);
|
|
27
29
|
});
|
|
28
30
|
}, [logs, searchText]);
|
|
29
|
-
|
|
30
|
-
// Copy all visible logs to text
|
|
31
31
|
const handleCopyAll = useCallback(() => {
|
|
32
32
|
if (!onCopyLogs) return;
|
|
33
33
|
const text = filteredLogs.map(log => `[${log.level.toUpperCase()}] ${formatTimestamp(log.timestamp)} ${log.message}`).join('\n');
|
|
34
34
|
onCopyLogs(text);
|
|
35
35
|
}, [filteredLogs, onCopyLogs]);
|
|
36
|
-
|
|
37
|
-
// Copy individual log
|
|
38
36
|
const handleCopyItem = useCallback(text => {
|
|
39
37
|
if (onCopyLogs) {
|
|
40
38
|
onCopyLogs(text);
|
|
41
39
|
}
|
|
42
40
|
}, [onCopyLogs]);
|
|
43
|
-
|
|
44
|
-
// Render log item
|
|
45
41
|
const renderItem = useCallback(({
|
|
46
42
|
item
|
|
47
43
|
}) => /*#__PURE__*/_jsx(LogItem, {
|
|
48
44
|
item: item,
|
|
49
45
|
onCopy: onCopyLogs ? handleCopyItem : undefined,
|
|
46
|
+
jsonMaxDepth: jsonMaxDepth,
|
|
50
47
|
styles: propStyles
|
|
51
48
|
}), [handleCopyItem, onCopyLogs, propStyles]);
|
|
52
49
|
const keyExtractor = useCallback(item => item.id, []);
|
|
53
50
|
return /*#__PURE__*/_jsxs(View, {
|
|
54
|
-
style:
|
|
51
|
+
style: s.container,
|
|
55
52
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
56
|
-
style:
|
|
53
|
+
style: s.searchContainer,
|
|
57
54
|
children: [/*#__PURE__*/_jsxs(View, {
|
|
58
|
-
style:
|
|
55
|
+
style: s.searchInputWrapper,
|
|
59
56
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
60
|
-
style:
|
|
57
|
+
style: s.searchIcon,
|
|
61
58
|
children: "\u2315"
|
|
62
59
|
}), /*#__PURE__*/_jsx(TextInput, {
|
|
63
60
|
testID: TestIDs.logsTab.searchInput,
|
|
64
|
-
style:
|
|
61
|
+
style: s.searchInput,
|
|
65
62
|
placeholder: "Filter logs...",
|
|
66
|
-
placeholderTextColor:
|
|
63
|
+
placeholderTextColor: theme.textMuted,
|
|
67
64
|
value: searchText,
|
|
68
65
|
onChangeText: setSearchText,
|
|
69
66
|
autoCapitalize: "none",
|
|
@@ -73,21 +70,21 @@ export const LogsTab = ({
|
|
|
73
70
|
})]
|
|
74
71
|
}), onCopyLogs && /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
75
72
|
testID: TestIDs.logsTab.copyButton,
|
|
76
|
-
style:
|
|
73
|
+
style: s.copyAllButton,
|
|
77
74
|
onPress: handleCopyAll,
|
|
78
75
|
activeOpacity: 0.7,
|
|
79
76
|
children: /*#__PURE__*/_jsx(Text, {
|
|
80
|
-
style:
|
|
77
|
+
style: s.copyAllText,
|
|
81
78
|
children: "Copy All"
|
|
82
79
|
})
|
|
83
80
|
})]
|
|
84
81
|
}), /*#__PURE__*/_jsxs(View, {
|
|
85
|
-
style:
|
|
82
|
+
style: s.countBar,
|
|
86
83
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
87
|
-
style:
|
|
84
|
+
style: s.countText,
|
|
88
85
|
children: filteredLogs.length === logs.length ? `${logs.length} log${logs.length !== 1 ? 's' : ''}` : `${filteredLogs.length} of ${logs.length} logs`
|
|
89
86
|
}), /*#__PURE__*/_jsx(Text, {
|
|
90
|
-
style:
|
|
87
|
+
style: s.pullHint,
|
|
91
88
|
children: "\u2193 pull to refresh"
|
|
92
89
|
})]
|
|
93
90
|
}), /*#__PURE__*/_jsx(FlatList, {
|
|
@@ -97,23 +94,21 @@ export const LogsTab = ({
|
|
|
97
94
|
keyExtractor: keyExtractor,
|
|
98
95
|
refreshing: false,
|
|
99
96
|
onRefresh: onRefresh,
|
|
100
|
-
style:
|
|
101
|
-
contentContainerStyle: filteredLogs.length === 0 ?
|
|
97
|
+
style: s.list,
|
|
98
|
+
contentContainerStyle: filteredLogs.length === 0 ? s.emptyContainer : undefined,
|
|
102
99
|
ListEmptyComponent: /*#__PURE__*/_jsxs(View, {
|
|
103
|
-
style:
|
|
100
|
+
style: s.emptyState,
|
|
104
101
|
children: [/*#__PURE__*/_jsx(Text, {
|
|
105
|
-
style:
|
|
102
|
+
style: s.emptyIcon,
|
|
106
103
|
children: "\uD83D\uDCCB"
|
|
107
104
|
}), /*#__PURE__*/_jsx(Text, {
|
|
108
|
-
style:
|
|
105
|
+
style: s.emptyTitle,
|
|
109
106
|
children: "No logs yet"
|
|
110
107
|
}), /*#__PURE__*/_jsx(Text, {
|
|
111
|
-
style:
|
|
108
|
+
style: s.emptySubtitle,
|
|
112
109
|
children: "Console output will appear here"
|
|
113
110
|
})]
|
|
114
|
-
})
|
|
115
|
-
// Perf optimizations
|
|
116
|
-
,
|
|
111
|
+
}),
|
|
117
112
|
maxToRenderPerBatch: 20,
|
|
118
113
|
windowSize: 10,
|
|
119
114
|
initialNumToRender: 20,
|
|
@@ -125,7 +120,7 @@ export const LogsTab = ({
|
|
|
125
120
|
|
|
126
121
|
// ─── Styles ──────────────────────────────────────────────────────────────────
|
|
127
122
|
|
|
128
|
-
const
|
|
123
|
+
const createStyles = t => StyleSheet.create({
|
|
129
124
|
container: {
|
|
130
125
|
flex: 1
|
|
131
126
|
},
|
|
@@ -136,36 +131,36 @@ const styles = StyleSheet.create({
|
|
|
136
131
|
paddingVertical: 10,
|
|
137
132
|
gap: 10,
|
|
138
133
|
borderBottomWidth: 1,
|
|
139
|
-
borderBottomColor:
|
|
134
|
+
borderBottomColor: t.border
|
|
140
135
|
},
|
|
141
136
|
searchInputWrapper: {
|
|
142
137
|
flex: 1,
|
|
143
138
|
flexDirection: 'row',
|
|
144
139
|
alignItems: 'center',
|
|
145
|
-
backgroundColor:
|
|
140
|
+
backgroundColor: t.surfaceElevated,
|
|
146
141
|
borderRadius: 10,
|
|
147
142
|
borderWidth: 1,
|
|
148
|
-
borderColor:
|
|
143
|
+
borderColor: t.border,
|
|
149
144
|
paddingHorizontal: 12,
|
|
150
145
|
height: 38
|
|
151
146
|
},
|
|
152
147
|
searchIcon: {
|
|
153
148
|
fontSize: 16,
|
|
154
|
-
color:
|
|
149
|
+
color: t.textMuted,
|
|
155
150
|
marginRight: 8
|
|
156
151
|
},
|
|
157
152
|
searchInput: {
|
|
158
153
|
flex: 1,
|
|
159
154
|
fontFamily: MonospaceFont,
|
|
160
155
|
fontSize: 13,
|
|
161
|
-
color:
|
|
156
|
+
color: t.text,
|
|
162
157
|
padding: 0
|
|
163
158
|
},
|
|
164
159
|
copyAllButton: {
|
|
165
|
-
backgroundColor:
|
|
160
|
+
backgroundColor: t.accentDim,
|
|
166
161
|
borderRadius: 8,
|
|
167
162
|
borderWidth: 1,
|
|
168
|
-
borderColor:
|
|
163
|
+
borderColor: t.accent,
|
|
169
164
|
paddingHorizontal: 14,
|
|
170
165
|
height: 38,
|
|
171
166
|
justifyContent: 'center'
|
|
@@ -174,7 +169,7 @@ const styles = StyleSheet.create({
|
|
|
174
169
|
fontFamily: MonospaceFont,
|
|
175
170
|
fontSize: 12,
|
|
176
171
|
fontWeight: '700',
|
|
177
|
-
color:
|
|
172
|
+
color: t.accent,
|
|
178
173
|
letterSpacing: 0.5
|
|
179
174
|
},
|
|
180
175
|
countBar: {
|
|
@@ -183,17 +178,17 @@ const styles = StyleSheet.create({
|
|
|
183
178
|
alignItems: 'center',
|
|
184
179
|
paddingHorizontal: 16,
|
|
185
180
|
paddingVertical: 6,
|
|
186
|
-
backgroundColor:
|
|
181
|
+
backgroundColor: t.surface
|
|
187
182
|
},
|
|
188
183
|
countText: {
|
|
189
184
|
fontFamily: MonospaceFont,
|
|
190
185
|
fontSize: 11,
|
|
191
|
-
color:
|
|
186
|
+
color: t.textMuted
|
|
192
187
|
},
|
|
193
188
|
pullHint: {
|
|
194
189
|
fontFamily: MonospaceFont,
|
|
195
190
|
fontSize: 10,
|
|
196
|
-
color:
|
|
191
|
+
color: t.textMuted,
|
|
197
192
|
fontStyle: 'italic'
|
|
198
193
|
},
|
|
199
194
|
list: {
|
|
@@ -217,13 +212,13 @@ const styles = StyleSheet.create({
|
|
|
217
212
|
fontFamily: MonospaceFont,
|
|
218
213
|
fontSize: 16,
|
|
219
214
|
fontWeight: '700',
|
|
220
|
-
color:
|
|
215
|
+
color: t.textSecondary,
|
|
221
216
|
marginBottom: 8
|
|
222
217
|
},
|
|
223
218
|
emptySubtitle: {
|
|
224
219
|
fontFamily: MonospaceFont,
|
|
225
220
|
fontSize: 13,
|
|
226
|
-
color:
|
|
221
|
+
color: t.textMuted,
|
|
227
222
|
textAlign: 'center'
|
|
228
223
|
}
|
|
229
224
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["React","useCallback","useMemo","useState","FlatList","StyleSheet","Text","TextInput","TouchableOpacity","View","
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","useState","FlatList","StyleSheet","Text","TextInput","TouchableOpacity","View","MonospaceFont","TestIDs","useBackstageTheme","LogItem","formatTimestamp","jsx","_jsx","jsxs","_jsxs","LogsTab","logs","onRefresh","onCopyLogs","jsonMaxDepth","styles","propStyles","theme","s","createStyles","searchText","setSearchText","filteredLogs","trim","query","toLowerCase","filter","log","message","includes","level","handleCopyAll","text","map","toUpperCase","timestamp","join","handleCopyItem","renderItem","item","onCopy","undefined","keyExtractor","id","style","container","children","searchContainer","searchInputWrapper","searchIcon","testID","logsTab","searchInput","placeholder","placeholderTextColor","textMuted","value","onChangeText","autoCapitalize","autoCorrect","clearButtonMode","returnKeyType","copyButton","copyAllButton","onPress","activeOpacity","copyAllText","countBar","countText","length","pullHint","list","data","refreshing","contentContainerStyle","emptyContainer","ListEmptyComponent","emptyState","emptyIcon","emptyTitle","emptySubtitle","maxToRenderPerBatch","windowSize","initialNumToRender","removeClippedSubviews","getItemLayout","t","create","flex","flexDirection","alignItems","paddingHorizontal","paddingVertical","gap","borderBottomWidth","borderBottomColor","border","backgroundColor","surfaceElevated","borderRadius","borderWidth","borderColor","height","fontSize","color","marginRight","fontFamily","padding","accentDim","accent","justifyContent","fontWeight","letterSpacing","surface","fontStyle","marginBottom","opacity","textSecondary","textAlign"],"sourceRoot":"../../../src","sources":["components/LogsTab.tsx"],"mappings":"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","ignoreList":[]}
|