react-native-inapp-inspector 1.1.34 → 1.1.36
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/dist/commonjs/components/ConsoleLogCard.js +57 -56
- package/dist/commonjs/components/CopyButton.js +7 -1
- package/dist/commonjs/components/Inspector/BundleTab.js +19 -19
- package/dist/commonjs/components/Inspector/CrashDetail.js +16 -12
- package/dist/commonjs/components/Inspector/InspectorHeader.js +16 -16
- package/dist/commonjs/components/Inspector/MainScreen.js +6 -2
- package/dist/commonjs/components/Inspector/NetworkTab.js +97 -1
- package/dist/commonjs/components/Inspector/ReduxDetail.js +24 -19
- package/dist/commonjs/components/Inspector/ReduxTab.js +12 -8
- package/dist/commonjs/components/Inspector/SettingsPanel.js +1243 -673
- package/dist/commonjs/components/LogCard.js +27 -9
- package/dist/commonjs/components/MetaAccordion.js +42 -0
- package/dist/commonjs/components/NetworkIcons.d.ts +9 -0
- package/dist/commonjs/components/NetworkIcons.js +48 -1
- package/dist/commonjs/components/Toast.js +3 -3
- package/dist/commonjs/components/TouchableScale.d.ts +4 -2
- package/dist/commonjs/components/TouchableScale.js +4 -4
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/analyticsLogger.d.ts +2 -0
- package/dist/commonjs/customHooks/analyticsLogger.js +10 -1
- package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +2 -0
- package/dist/commonjs/customHooks/bundleAnalyzer.js +26 -17
- package/dist/commonjs/customHooks/consoleLogger.d.ts +2 -0
- package/dist/commonjs/customHooks/consoleLogger.js +10 -1
- package/dist/commonjs/customHooks/crashHandler.d.ts +2 -0
- package/dist/commonjs/customHooks/crashHandler.js +10 -1
- package/dist/commonjs/customHooks/networkLogger.d.ts +2 -0
- package/dist/commonjs/customHooks/networkLogger.js +12 -1
- package/dist/commonjs/customHooks/performanceTracker.d.ts +3 -1
- package/dist/commonjs/customHooks/performanceTracker.js +18 -4
- package/dist/commonjs/customHooks/reduxLogger.d.ts +2 -0
- package/dist/commonjs/customHooks/reduxLogger.js +10 -1
- package/dist/commonjs/i18n/locales/en.json +96 -28
- package/dist/commonjs/index.js +78 -34
- package/dist/commonjs/styles/AppColors.d.ts +28 -0
- package/dist/commonjs/styles/AppColors.js +30 -0
- package/dist/esm/components/ConsoleLogCard.js +58 -57
- package/dist/esm/components/CopyButton.js +7 -1
- package/dist/esm/components/Inspector/BundleTab.js +19 -19
- package/dist/esm/components/Inspector/CrashDetail.js +16 -12
- package/dist/esm/components/Inspector/InspectorHeader.js +16 -16
- package/dist/esm/components/Inspector/MainScreen.js +6 -2
- package/dist/esm/components/Inspector/NetworkTab.js +99 -3
- package/dist/esm/components/Inspector/ReduxDetail.js +24 -19
- package/dist/esm/components/Inspector/ReduxTab.js +12 -8
- package/dist/esm/components/Inspector/SettingsPanel.js +1246 -676
- package/dist/esm/components/LogCard.js +27 -9
- package/dist/esm/components/MetaAccordion.js +42 -0
- package/dist/esm/components/NetworkIcons.d.ts +9 -0
- package/dist/esm/components/NetworkIcons.js +38 -0
- package/dist/esm/components/Toast.js +3 -3
- package/dist/esm/components/TouchableScale.d.ts +4 -2
- package/dist/esm/components/TouchableScale.js +4 -4
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/analyticsLogger.d.ts +2 -0
- package/dist/esm/customHooks/analyticsLogger.js +7 -0
- package/dist/esm/customHooks/bundleAnalyzer.d.ts +2 -0
- package/dist/esm/customHooks/bundleAnalyzer.js +23 -16
- package/dist/esm/customHooks/consoleLogger.d.ts +2 -0
- package/dist/esm/customHooks/consoleLogger.js +7 -0
- package/dist/esm/customHooks/crashHandler.d.ts +2 -0
- package/dist/esm/customHooks/crashHandler.js +7 -0
- package/dist/esm/customHooks/networkLogger.d.ts +2 -0
- package/dist/esm/customHooks/networkLogger.js +9 -0
- package/dist/esm/customHooks/performanceTracker.d.ts +3 -1
- package/dist/esm/customHooks/performanceTracker.js +15 -3
- package/dist/esm/customHooks/reduxLogger.d.ts +2 -0
- package/dist/esm/customHooks/reduxLogger.js +7 -0
- package/dist/esm/i18n/locales/en.json +96 -28
- package/dist/esm/index.js +64 -20
- package/dist/esm/styles/AppColors.d.ts +28 -0
- package/dist/esm/styles/AppColors.js +30 -0
- package/package.json +3 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { useCallback, useRef } from 'react';
|
|
1
|
+
import React, { useCallback, useMemo, useRef } from 'react';
|
|
2
2
|
import { Animated, FlatList, Pressable, ScrollView, Text, TextInput, View, } from 'react-native';
|
|
3
3
|
import { animateNextLayout, useInspector } from './InspectorContext';
|
|
4
4
|
import useAccordion from '../../customHooks/useAccordion';
|
|
@@ -12,7 +12,8 @@ import styles from '../../styles';
|
|
|
12
12
|
import { AppColors } from '../../styles/AppColors';
|
|
13
13
|
import { AppFonts } from '../../styles/AppFonts';
|
|
14
14
|
import { STATUS_FILTERS, METHOD_COLORS } from '../../constants';
|
|
15
|
-
import {
|
|
15
|
+
import { useTranslation } from '../../i18n';
|
|
16
|
+
import { SearchIcon, ClearIcon, TrashIcon, SortArrowIcon, FilterIcon, ChevronIcon, CheckIcon, CircleCheckIcon, CircleXIcon, CircleAlertIcon, LayersIcon, HeaderPauseIcon, ClockIcon, } from '../NetworkIcons';
|
|
16
17
|
const STATUS_META = {
|
|
17
18
|
ALL: { color: AppColors.grayText, Icon: LayersIcon },
|
|
18
19
|
'2xx': { color: AppColors.greenColor, Icon: CircleCheckIcon },
|
|
@@ -58,8 +59,43 @@ const FilterChip = React.memo(({ label, color, Icon, badge, active, onPress, })
|
|
|
58
59
|
});
|
|
59
60
|
const NetworkTab = React.memo(() => {
|
|
60
61
|
const { groupedData, search, setSearch, handleDelete, selectedLogs, sortOrder, setSortOrder, statusFilters, setStatusFilters, methodFilters, setMethodFilters, availableMethods, filteredLogs, logs, toggleSectionFilter, toggleSectionCollapse, minStart, totalRange, newLogIds, toggleSelect, setSelected, isNetworkPaused, setIsNetworkPaused, } = useInspector();
|
|
62
|
+
const { t } = useTranslation();
|
|
61
63
|
const filtersAccordion = useAccordion(false, 300, 260);
|
|
62
64
|
const apisListRef = useRef(null);
|
|
65
|
+
const networkMetrics = useMemo(() => {
|
|
66
|
+
if (!logs || logs.length === 0)
|
|
67
|
+
return null;
|
|
68
|
+
let successCount = 0;
|
|
69
|
+
let completedCount = 0;
|
|
70
|
+
let totalDuration = 0;
|
|
71
|
+
let totalBytes = 0;
|
|
72
|
+
const durations = [];
|
|
73
|
+
logs.forEach(log => {
|
|
74
|
+
if (log.status != null) {
|
|
75
|
+
completedCount++;
|
|
76
|
+
const s = typeof log.status === 'number' ? log.status : parseInt(String(log.status), 10);
|
|
77
|
+
if (!isNaN(s)) {
|
|
78
|
+
if (s >= 200 && s < 400) {
|
|
79
|
+
successCount++;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (typeof log.duration === 'number' && log.duration > 0) {
|
|
84
|
+
durations.push(log.duration);
|
|
85
|
+
totalDuration += log.duration;
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
durations.sort((a, b) => a - b);
|
|
89
|
+
const avgDuration = durations.length > 0 ? Math.round(totalDuration / durations.length) : 0;
|
|
90
|
+
const p95 = durations.length > 0 ? durations[Math.floor(durations.length * 0.95)] : 0;
|
|
91
|
+
const successRate = completedCount > 0 ? Math.round((successCount / completedCount) * 100) : 100;
|
|
92
|
+
return {
|
|
93
|
+
successRate,
|
|
94
|
+
avgDuration,
|
|
95
|
+
p95,
|
|
96
|
+
totalCount: logs.length,
|
|
97
|
+
};
|
|
98
|
+
}, [logs]);
|
|
63
99
|
const renderItem = useCallback(({ item, index }) => {
|
|
64
100
|
if (item.type === 'header') {
|
|
65
101
|
return (<AnimatedEntrance index={index} distance={8}>
|
|
@@ -98,7 +134,67 @@ const NetworkTab = React.memo(() => {
|
|
|
98
134
|
setSelected,
|
|
99
135
|
]);
|
|
100
136
|
return (<View style={{ flex: 1 }}>
|
|
101
|
-
<FlatList ref={apisListRef} data={groupedData} keyExtractor={item => item?.id?.toString()} renderItem={renderItem} initialNumToRender={10} maxToRenderPerBatch={10} windowSize={5} removeClippedSubviews={true} ListHeaderComponent={<View style={{ marginTop:
|
|
137
|
+
<FlatList ref={apisListRef} data={groupedData} keyExtractor={item => item?.id?.toString()} renderItem={renderItem} initialNumToRender={10} maxToRenderPerBatch={10} windowSize={5} removeClippedSubviews={true} ListHeaderComponent={<View style={{ marginTop: 6 }}>
|
|
138
|
+
{/* Network Health & Telemetry Strip */}
|
|
139
|
+
{networkMetrics != null && networkMetrics.totalCount > 0 && (<View style={{
|
|
140
|
+
flexDirection: 'row',
|
|
141
|
+
alignItems: 'center',
|
|
142
|
+
justifyContent: 'space-between',
|
|
143
|
+
backgroundColor: AppColors.grayBackground,
|
|
144
|
+
borderRadius: 8,
|
|
145
|
+
paddingHorizontal: 10,
|
|
146
|
+
paddingVertical: 5.5,
|
|
147
|
+
marginHorizontal: 12,
|
|
148
|
+
marginBottom: 6,
|
|
149
|
+
borderWidth: 1,
|
|
150
|
+
borderColor: AppColors.dividerColor,
|
|
151
|
+
}}>
|
|
152
|
+
{/* Success Rate */}
|
|
153
|
+
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 4.5 }}>
|
|
154
|
+
<View style={{
|
|
155
|
+
width: 6,
|
|
156
|
+
height: 6,
|
|
157
|
+
borderRadius: 3,
|
|
158
|
+
backgroundColor: networkMetrics.successRate >= 95
|
|
159
|
+
? AppColors.greenColor
|
|
160
|
+
: networkMetrics.successRate >= 80
|
|
161
|
+
? AppColors.amber500
|
|
162
|
+
: AppColors.errorColor,
|
|
163
|
+
}}/>
|
|
164
|
+
<Text style={{ fontFamily: AppFonts.interBold, fontSize: 10.5, color: AppColors.primaryBlack }}>
|
|
165
|
+
{networkMetrics.successRate}%
|
|
166
|
+
</Text>
|
|
167
|
+
<Text style={{ fontFamily: AppFonts.interRegular, fontSize: 10, color: AppColors.grayTextWeak }}>
|
|
168
|
+
{t('network.successRate')}
|
|
169
|
+
</Text>
|
|
170
|
+
</View>
|
|
171
|
+
|
|
172
|
+
<View style={{ width: 1, height: 11, backgroundColor: AppColors.dividerColor }}/>
|
|
173
|
+
|
|
174
|
+
{/* Avg Latency */}
|
|
175
|
+
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 4 }}>
|
|
176
|
+
<ClockIcon color={AppColors.purple} size={10}/>
|
|
177
|
+
<Text style={{ fontFamily: AppFonts.interBold, fontSize: 10.5, color: AppColors.purple }}>
|
|
178
|
+
{networkMetrics.avgDuration}ms
|
|
179
|
+
</Text>
|
|
180
|
+
<Text style={{ fontFamily: AppFonts.interRegular, fontSize: 10, color: AppColors.grayTextWeak }}>
|
|
181
|
+
{t('network.avgLatency')}
|
|
182
|
+
</Text>
|
|
183
|
+
</View>
|
|
184
|
+
|
|
185
|
+
<View style={{ width: 1, height: 11, backgroundColor: AppColors.dividerColor }}/>
|
|
186
|
+
|
|
187
|
+
{/* P95 Latency */}
|
|
188
|
+
<View style={{ flexDirection: 'row', alignItems: 'center', gap: 4 }}>
|
|
189
|
+
<Text style={{ fontFamily: AppFonts.interBold, fontSize: 10.5, color: AppColors.primaryBlack }}>
|
|
190
|
+
{networkMetrics.p95}ms
|
|
191
|
+
</Text>
|
|
192
|
+
<Text style={{ fontFamily: AppFonts.interRegular, fontSize: 10, color: AppColors.grayTextWeak }}>
|
|
193
|
+
P95
|
|
194
|
+
</Text>
|
|
195
|
+
</View>
|
|
196
|
+
</View>)}
|
|
197
|
+
|
|
102
198
|
<View style={styles.toolbarRow}>
|
|
103
199
|
<View style={styles.searchContainer}>
|
|
104
200
|
<SearchIcon color={AppColors.grayTextWeak} size={16}/>
|
|
@@ -976,30 +976,30 @@ const reduxDetailStyles = StyleSheet.create({
|
|
|
976
976
|
flexDirection: 'row',
|
|
977
977
|
alignItems: 'center',
|
|
978
978
|
gap: 3.5,
|
|
979
|
-
backgroundColor:
|
|
979
|
+
backgroundColor: AppColors.mintGreenBg,
|
|
980
980
|
paddingHorizontal: 6,
|
|
981
981
|
paddingVertical: 2,
|
|
982
982
|
borderRadius: 4,
|
|
983
983
|
borderWidth: 1,
|
|
984
|
-
borderColor:
|
|
984
|
+
borderColor: AppColors.mintGreenBorder,
|
|
985
985
|
},
|
|
986
986
|
persistedChipText: {
|
|
987
987
|
fontFamily: AppFonts.interBold,
|
|
988
988
|
fontSize: 9,
|
|
989
|
-
color:
|
|
989
|
+
color: AppColors.mintGreenText,
|
|
990
990
|
},
|
|
991
991
|
inMemoryChip: {
|
|
992
|
-
backgroundColor:
|
|
992
|
+
backgroundColor: AppColors.indigo50,
|
|
993
993
|
paddingHorizontal: 6,
|
|
994
994
|
paddingVertical: 2,
|
|
995
995
|
borderRadius: 4,
|
|
996
996
|
borderWidth: 1,
|
|
997
|
-
borderColor:
|
|
997
|
+
borderColor: AppColors.blueBorder,
|
|
998
998
|
},
|
|
999
999
|
inMemoryChipText: {
|
|
1000
1000
|
fontFamily: AppFonts.interBold,
|
|
1001
1001
|
fontSize: 9,
|
|
1002
|
-
color:
|
|
1002
|
+
color: AppColors.indigo600Alt,
|
|
1003
1003
|
},
|
|
1004
1004
|
subStatsRow: {
|
|
1005
1005
|
flexDirection: 'row',
|
|
@@ -1012,12 +1012,17 @@ const reduxDetailStyles = StyleSheet.create({
|
|
|
1012
1012
|
alignItems: 'center',
|
|
1013
1013
|
gap: 4,
|
|
1014
1014
|
backgroundColor: AppColors.grayBackground,
|
|
1015
|
-
paddingHorizontal:
|
|
1016
|
-
paddingVertical:
|
|
1017
|
-
borderRadius:
|
|
1015
|
+
paddingHorizontal: 6,
|
|
1016
|
+
paddingVertical: 2.5,
|
|
1017
|
+
borderRadius: 5,
|
|
1018
1018
|
borderWidth: 1,
|
|
1019
1019
|
borderColor: AppColors.dividerColor,
|
|
1020
1020
|
},
|
|
1021
|
+
statPillText: {
|
|
1022
|
+
fontFamily: AppFonts.interMedium,
|
|
1023
|
+
fontSize: 10,
|
|
1024
|
+
color: AppColors.grayText,
|
|
1025
|
+
},
|
|
1021
1026
|
statLabel: {
|
|
1022
1027
|
fontFamily: AppFonts.interBold,
|
|
1023
1028
|
fontSize: 10,
|
|
@@ -1067,17 +1072,17 @@ const reduxDetailStyles = StyleSheet.create({
|
|
|
1067
1072
|
gap: 8,
|
|
1068
1073
|
},
|
|
1069
1074
|
actionBadge: {
|
|
1070
|
-
backgroundColor:
|
|
1075
|
+
backgroundColor: AppColors.indigo50,
|
|
1071
1076
|
paddingHorizontal: 6,
|
|
1072
1077
|
paddingVertical: 2,
|
|
1073
1078
|
borderRadius: 4,
|
|
1074
1079
|
borderWidth: 1,
|
|
1075
|
-
borderColor:
|
|
1080
|
+
borderColor: AppColors.blueBorder,
|
|
1076
1081
|
},
|
|
1077
1082
|
actionBadgeText: {
|
|
1078
1083
|
fontFamily: AppFonts.interBold,
|
|
1079
1084
|
fontSize: 9.5,
|
|
1080
|
-
color:
|
|
1085
|
+
color: AppColors.indigo600Alt,
|
|
1081
1086
|
},
|
|
1082
1087
|
actionTitle: {
|
|
1083
1088
|
flex: 1,
|
|
@@ -1158,22 +1163,22 @@ const reduxDetailStyles = StyleSheet.create({
|
|
|
1158
1163
|
textAlign: 'right',
|
|
1159
1164
|
},
|
|
1160
1165
|
persistedInfoCard: {
|
|
1161
|
-
backgroundColor:
|
|
1166
|
+
backgroundColor: AppColors.mintGreenBg,
|
|
1162
1167
|
borderRadius: 8,
|
|
1163
1168
|
borderWidth: 1,
|
|
1164
|
-
borderColor:
|
|
1169
|
+
borderColor: AppColors.mintGreenBorder,
|
|
1165
1170
|
padding: 10,
|
|
1166
1171
|
},
|
|
1167
1172
|
persistedInfoTitle: {
|
|
1168
1173
|
fontFamily: AppFonts.interBold,
|
|
1169
1174
|
fontSize: 11,
|
|
1170
|
-
color:
|
|
1175
|
+
color: AppColors.mintGreenText,
|
|
1171
1176
|
},
|
|
1172
1177
|
clearPersistMiniBtn: {
|
|
1173
1178
|
flexDirection: 'row',
|
|
1174
1179
|
alignItems: 'center',
|
|
1175
1180
|
gap: 3,
|
|
1176
|
-
backgroundColor:
|
|
1181
|
+
backgroundColor: AppColors.errorCardBg,
|
|
1177
1182
|
paddingHorizontal: 6,
|
|
1178
1183
|
paddingVertical: 2.5,
|
|
1179
1184
|
borderRadius: 4,
|
|
@@ -1190,7 +1195,7 @@ const reduxDetailStyles = StyleSheet.create({
|
|
|
1190
1195
|
gap: 6,
|
|
1191
1196
|
backgroundColor: AppColors.errorCardBg,
|
|
1192
1197
|
borderWidth: 1,
|
|
1193
|
-
borderColor:
|
|
1198
|
+
borderColor: AppColors.errorBorder,
|
|
1194
1199
|
borderRadius: 8,
|
|
1195
1200
|
paddingVertical: 10,
|
|
1196
1201
|
marginTop: 14,
|
|
@@ -1224,8 +1229,8 @@ const reduxDetailStyles = StyleSheet.create({
|
|
|
1224
1229
|
lineHeight: 18,
|
|
1225
1230
|
},
|
|
1226
1231
|
highlight: {
|
|
1227
|
-
backgroundColor:
|
|
1228
|
-
color:
|
|
1232
|
+
backgroundColor: AppColors.yellowHighlight,
|
|
1233
|
+
color: AppColors.amber800Warm,
|
|
1229
1234
|
fontFamily: AppFonts.interBold,
|
|
1230
1235
|
},
|
|
1231
1236
|
});
|
|
@@ -387,14 +387,16 @@ const ReduxTab = React.memo(() => {
|
|
|
387
387
|
<View style={reduxTabStyles.searchRow}>
|
|
388
388
|
<View style={styles.searchContainer}>
|
|
389
389
|
<SearchIcon color={AppColors.grayTextWeak} size={15}/>
|
|
390
|
-
<TextInput placeholder="Search Redux slices or actions..." placeholderTextColor={AppColors.grayTextWeak} value={reduxSearch} onChangeText={setReduxSearch} style={styles.searchInput} autoCorrect={false} autoCapitalize="none"/>
|
|
391
|
-
{reduxSearch.length > 0 && (<Pressable onPress={() => setReduxSearch('')} hitSlop={10}>
|
|
390
|
+
<TextInput accessible={true} accessibilityRole="search" accessibilityLabel="Search Redux slices or actions" accessibilityHint="Type to filter state slices in real time" placeholder="Search Redux slices or actions..." placeholderTextColor={AppColors.grayTextWeak} value={reduxSearch} onChangeText={setReduxSearch} style={styles.searchInput} autoCorrect={false} autoCapitalize="none"/>
|
|
391
|
+
{reduxSearch.length > 0 && (<Pressable accessible={true} accessibilityRole="button" accessibilityLabel="Clear search input" onPress={() => setReduxSearch('')} hitSlop={10}>
|
|
392
392
|
<ClearIcon color={AppColors.grayTextWeak} size={14}/>
|
|
393
393
|
</Pressable>)}
|
|
394
394
|
</View>
|
|
395
395
|
|
|
396
396
|
{/* Pause / Resume Live Updates Button */}
|
|
397
|
-
<TouchableOpacity
|
|
397
|
+
<TouchableOpacity accessible={true} accessibilityRole="button" accessibilityLabel={isReduxPaused
|
|
398
|
+
? 'Resume live Redux updates'
|
|
399
|
+
: 'Pause live Redux updates'} accessibilityHint="Toggles automatic recording of Redux state updates" style={[
|
|
398
400
|
styles.toolbarBtn,
|
|
399
401
|
isReduxPaused && {
|
|
400
402
|
backgroundColor: `${AppColors.darkOrange}1F`,
|
|
@@ -407,7 +409,9 @@ const ReduxTab = React.memo(() => {
|
|
|
407
409
|
</TouchableOpacity>
|
|
408
410
|
|
|
409
411
|
{/* Sort Button */}
|
|
410
|
-
<TouchableOpacity
|
|
412
|
+
<TouchableOpacity accessible={true} accessibilityRole="button" accessibilityLabel={`Sort order: ${sortMode === 'latest'
|
|
413
|
+
? 'Recently updated first'
|
|
414
|
+
: 'Alphabetical A to Z'}`} accessibilityHint="Switches sorting between recently updated and alphabetical" style={[
|
|
411
415
|
styles.toolbarBtn,
|
|
412
416
|
sortMode === 'latest' && { backgroundColor: `${AppColors.brandPurple}1F`, borderColor: AppColors.brandPurple },
|
|
413
417
|
]} onPress={() => setSortMode(prev => (prev === 'latest' ? 'alpha' : 'latest'))} hitSlop={6}>
|
|
@@ -539,7 +543,7 @@ const reduxTabStyles = StyleSheet.create({
|
|
|
539
543
|
},
|
|
540
544
|
cardRecentlyUpdated: {
|
|
541
545
|
borderColor: `${AppColors.brandPurple}66`,
|
|
542
|
-
backgroundColor:
|
|
546
|
+
backgroundColor: AppColors.purpleTintBg,
|
|
543
547
|
},
|
|
544
548
|
cardHeader: {
|
|
545
549
|
flexDirection: 'row',
|
|
@@ -548,17 +552,17 @@ const reduxTabStyles = StyleSheet.create({
|
|
|
548
552
|
marginBottom: 8,
|
|
549
553
|
},
|
|
550
554
|
sliceBadge: {
|
|
551
|
-
backgroundColor:
|
|
555
|
+
backgroundColor: AppColors.violetSoftBg,
|
|
552
556
|
paddingHorizontal: 6,
|
|
553
557
|
paddingVertical: 3,
|
|
554
558
|
borderRadius: 5,
|
|
555
559
|
borderWidth: 1,
|
|
556
|
-
borderColor:
|
|
560
|
+
borderColor: AppColors.violetSoftBorder,
|
|
557
561
|
},
|
|
558
562
|
sliceBadgeText: {
|
|
559
563
|
fontFamily: AppFonts.interBold,
|
|
560
564
|
fontSize: 9.5,
|
|
561
|
-
color:
|
|
565
|
+
color: AppColors.purple700,
|
|
562
566
|
letterSpacing: 0.4,
|
|
563
567
|
},
|
|
564
568
|
sliceName: {
|