react-native-inapp-inspector 2.3.24 → 2.4.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 +26 -5
- package/dist/commonjs/components/AnalyticsDetail.js +15 -12
- package/dist/commonjs/components/AnalyticsEventCard.js +11 -8
- package/dist/commonjs/components/AppHeaderLogo.js +4 -6
- package/dist/commonjs/components/ConsoleLogCard.d.ts +1 -0
- package/dist/commonjs/components/ConsoleLogCard.js +92 -80
- package/dist/commonjs/components/EndOfListFooter.d.ts +5 -1
- package/dist/commonjs/components/EndOfListFooter.js +27 -5
- package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +1 -1
- package/dist/commonjs/components/Inspector/AnalyticsTab.js +27 -299
- package/dist/commonjs/components/Inspector/ConsoleTab.js +36 -94
- package/dist/commonjs/components/Inspector/CrashDetail.js +11 -10
- package/dist/commonjs/components/Inspector/CrashTab.js +43 -33
- package/dist/commonjs/components/Inspector/DebuggingTab.js +13 -13
- package/dist/commonjs/components/Inspector/DeviceInfoTab.js +107 -71
- package/dist/commonjs/components/Inspector/FabLauncher.js +8 -9
- package/dist/commonjs/components/Inspector/InspectorHeader.js +93 -70
- package/dist/commonjs/components/Inspector/LogDetail.js +10 -7
- package/dist/commonjs/components/Inspector/MainScreen.js +66 -30
- package/dist/commonjs/components/Inspector/MediaGalleryTab.js +1 -1
- package/dist/commonjs/components/Inspector/MediaPreviewModal.js +3 -3
- package/dist/commonjs/components/Inspector/NetworkDetail.js +29 -28
- package/dist/commonjs/components/Inspector/NetworkFilterModal.js +1 -1
- package/dist/commonjs/components/Inspector/NetworkTab.js +87 -85
- package/dist/commonjs/components/Inspector/NpmStarPrompt.js +3 -3
- package/dist/commonjs/components/Inspector/NpmUpdateToast.js +21 -22
- package/dist/commonjs/components/Inspector/PushCard.d.ts +4 -0
- package/dist/commonjs/components/Inspector/PushCard.js +89 -0
- package/dist/commonjs/components/Inspector/PushDetail.d.ts +4 -0
- package/dist/commonjs/components/Inspector/PushDetail.js +190 -0
- package/dist/commonjs/components/Inspector/PushTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/PushTab.js +45 -0
- package/dist/commonjs/components/Inspector/ReduxDetail.js +16 -13
- package/dist/commonjs/components/Inspector/ReduxTab.js +109 -106
- package/dist/commonjs/components/Inspector/SettingsPanel.js +230 -134
- package/dist/commonjs/components/Inspector/StorageTab.js +55 -51
- package/dist/commonjs/components/Inspector/TabBar.js +30 -26
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +2 -2
- package/dist/commonjs/components/JsonViewer.js +151 -159
- package/dist/commonjs/components/LogCard.js +34 -38
- package/dist/commonjs/components/LogSyntaxHighlighter.js +3 -3
- package/dist/commonjs/components/ModuleErrorBoundary.d.ts +24 -0
- package/dist/commonjs/components/ModuleErrorBoundary.js +33 -0
- package/dist/commonjs/components/NetworkIcons.d.ts +3 -3
- package/dist/commonjs/components/NetworkIcons.js +10 -6
- package/dist/commonjs/components/SegmentedTabs.d.ts +8 -2
- package/dist/commonjs/components/SegmentedTabs.js +11 -7
- package/dist/commonjs/components/ShareButton.d.ts +11 -0
- package/dist/commonjs/components/ShareButton.js +6 -0
- package/dist/commonjs/constants/index.js +1 -1
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/crashHandler.js +4 -4
- package/dist/commonjs/customHooks/networkLogger.js +1 -2
- package/dist/commonjs/customHooks/pushNotificationLogger.d.ts +19 -0
- package/dist/commonjs/customHooks/pushNotificationLogger.js +1 -0
- package/dist/commonjs/helpers/index.d.ts +6 -0
- package/dist/commonjs/helpers/index.js +4 -4
- package/dist/commonjs/helpers/memoryManager.d.ts +2 -2
- package/dist/commonjs/helpers/memoryManager.js +1 -1
- package/dist/commonjs/helpers/remoteConfig.js +1 -1
- package/dist/commonjs/helpers/settingsStore.d.ts +1 -0
- package/dist/commonjs/helpers/settingsStore.js +1 -1
- package/dist/commonjs/helpers/shareFormatter.d.ts +13 -0
- package/dist/commonjs/helpers/shareFormatter.js +7 -0
- package/dist/commonjs/i18n/index.d.ts +35 -0
- package/dist/commonjs/i18n/index.js +1 -1
- package/dist/commonjs/i18n/locales/ar.json +1 -0
- package/dist/commonjs/i18n/locales/de.json +1 -0
- package/dist/commonjs/i18n/locales/en.json +1 -1
- package/dist/commonjs/i18n/locales/es.json +1 -0
- package/dist/commonjs/i18n/locales/fr.json +1 -0
- package/dist/commonjs/i18n/locales/hi.json +1 -0
- package/dist/commonjs/i18n/locales/ja.json +1 -0
- package/dist/commonjs/i18n/locales/ko.json +1 -0
- package/dist/commonjs/i18n/locales/pt.json +1 -0
- package/dist/commonjs/i18n/locales/ru.json +1 -0
- package/dist/commonjs/i18n/locales/zh.json +1 -0
- package/dist/commonjs/index.d.ts +6 -5
- package/dist/commonjs/index.js +4 -4
- package/dist/commonjs/push.d.ts +4 -0
- package/dist/commonjs/push.js +1 -0
- package/dist/commonjs/styles/AppColors.d.ts +40 -0
- package/dist/commonjs/styles/AppColors.js +1 -1
- package/dist/commonjs/styles/index.js +1 -1
- package/dist/commonjs/types/enums.d.ts +30 -20
- package/dist/commonjs/types/enums.js +1 -1
- package/dist/commonjs/types/index.d.ts +10 -0
- package/dist/commonjs/types/interfaces.d.ts +63 -7
- package/dist/esm/components/AnalyticsDetail.js +84 -81
- package/dist/esm/components/AnalyticsEventCard.js +20 -17
- package/dist/esm/components/AppHeaderLogo.js +5 -7
- package/dist/esm/components/ConsoleLogCard.d.ts +1 -0
- package/dist/esm/components/ConsoleLogCard.js +98 -86
- package/dist/esm/components/EndOfListFooter.d.ts +5 -1
- package/dist/esm/components/EndOfListFooter.js +36 -14
- package/dist/esm/components/Inspector/AnalyticsFilterModal.js +14 -14
- package/dist/esm/components/Inspector/AnalyticsTab.js +44 -316
- package/dist/esm/components/Inspector/ConsoleTab.js +55 -113
- package/dist/esm/components/Inspector/CrashDetail.js +53 -52
- package/dist/esm/components/Inspector/CrashTab.js +74 -64
- package/dist/esm/components/Inspector/DebuggingTab.js +33 -33
- package/dist/esm/components/Inspector/DeviceInfoTab.js +174 -138
- package/dist/esm/components/Inspector/FabLauncher.js +41 -42
- package/dist/esm/components/Inspector/InspectorHeader.js +138 -115
- package/dist/esm/components/Inspector/LogDetail.js +24 -21
- package/dist/esm/components/Inspector/MainScreen.js +98 -62
- package/dist/esm/components/Inspector/MediaGalleryTab.js +1 -1
- package/dist/esm/components/Inspector/MediaPreviewModal.js +31 -31
- package/dist/esm/components/Inspector/NetworkDetail.js +88 -87
- package/dist/esm/components/Inspector/NetworkFilterModal.js +8 -8
- package/dist/esm/components/Inspector/NetworkTab.js +132 -130
- package/dist/esm/components/Inspector/NpmStarPrompt.js +42 -42
- package/dist/esm/components/Inspector/NpmUpdateToast.js +45 -46
- package/dist/esm/components/Inspector/PushCard.d.ts +4 -0
- package/dist/esm/components/Inspector/PushCard.js +89 -0
- package/dist/esm/components/Inspector/PushDetail.d.ts +4 -0
- package/dist/esm/components/Inspector/PushDetail.js +190 -0
- package/dist/esm/components/Inspector/PushTab.d.ts +3 -0
- package/dist/esm/components/Inspector/PushTab.js +45 -0
- package/dist/esm/components/Inspector/ReduxDetail.js +40 -37
- package/dist/esm/components/Inspector/ReduxTab.js +155 -152
- package/dist/esm/components/Inspector/SettingsPanel.js +380 -284
- package/dist/esm/components/Inspector/StorageTab.js +177 -173
- package/dist/esm/components/Inspector/TabBar.js +38 -34
- package/dist/esm/components/Inspector/UpdateAvailableModal.js +1 -1
- package/dist/esm/components/JsonViewer.js +161 -169
- package/dist/esm/components/LogCard.js +38 -42
- package/dist/esm/components/LogSyntaxHighlighter.js +1 -1
- package/dist/esm/components/ModuleErrorBoundary.d.ts +24 -0
- package/dist/esm/components/ModuleErrorBoundary.js +33 -0
- package/dist/esm/components/NetworkIcons.d.ts +3 -3
- package/dist/esm/components/NetworkIcons.js +7 -3
- package/dist/esm/components/SegmentedTabs.d.ts +8 -2
- package/dist/esm/components/SegmentedTabs.js +12 -8
- package/dist/esm/components/ShareButton.d.ts +11 -0
- package/dist/esm/components/ShareButton.js +6 -0
- package/dist/esm/constants/index.js +1 -1
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/crashHandler.js +6 -6
- package/dist/esm/customHooks/networkLogger.js +1 -2
- package/dist/esm/customHooks/pushNotificationLogger.d.ts +19 -0
- package/dist/esm/customHooks/pushNotificationLogger.js +1 -0
- package/dist/esm/helpers/index.d.ts +6 -0
- package/dist/esm/helpers/index.js +4 -4
- package/dist/esm/helpers/memoryManager.d.ts +2 -2
- package/dist/esm/helpers/memoryManager.js +1 -1
- package/dist/esm/helpers/remoteConfig.js +1 -1
- package/dist/esm/helpers/settingsStore.d.ts +1 -0
- package/dist/esm/helpers/settingsStore.js +1 -1
- package/dist/esm/helpers/shareFormatter.d.ts +13 -0
- package/dist/esm/helpers/shareFormatter.js +7 -0
- package/dist/esm/i18n/index.d.ts +35 -0
- package/dist/esm/i18n/index.js +1 -1
- package/dist/esm/i18n/locales/ar.json +1 -0
- package/dist/esm/i18n/locales/de.json +1 -0
- package/dist/esm/i18n/locales/en.json +1 -1
- package/dist/esm/i18n/locales/es.json +1 -0
- package/dist/esm/i18n/locales/fr.json +1 -0
- package/dist/esm/i18n/locales/hi.json +1 -0
- package/dist/esm/i18n/locales/ja.json +1 -0
- package/dist/esm/i18n/locales/ko.json +1 -0
- package/dist/esm/i18n/locales/pt.json +1 -0
- package/dist/esm/i18n/locales/ru.json +1 -0
- package/dist/esm/i18n/locales/zh.json +1 -0
- package/dist/esm/index.d.ts +6 -5
- package/dist/esm/index.js +7 -7
- package/dist/esm/push.d.ts +4 -0
- package/dist/esm/push.js +1 -0
- package/dist/esm/styles/AppColors.d.ts +40 -0
- package/dist/esm/styles/AppColors.js +1 -1
- package/dist/esm/styles/index.js +1 -1
- package/dist/esm/types/enums.d.ts +30 -20
- package/dist/esm/types/enums.js +1 -1
- package/dist/esm/types/index.d.ts +10 -0
- package/dist/esm/types/interfaces.d.ts +63 -7
- package/package.json +53 -24
- package/src/native/NativeInspector.ts +0 -1
- package/dist/commonjs/bundle.d.ts +0 -2
- package/dist/commonjs/bundle.js +0 -1
- package/dist/commonjs/components/BrandSquareIcon.d.ts +0 -5
- package/dist/commonjs/components/BrandSquareIcon.js +0 -112
- package/dist/commonjs/components/Inspector/BundleTab.d.ts +0 -48
- package/dist/commonjs/components/Inspector/BundleTab.js +0 -1297
- package/dist/commonjs/components/Inspector/PerformanceTab.d.ts +0 -27
- package/dist/commonjs/components/Inspector/PerformanceTab.js +0 -454
- package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +0 -115
- package/dist/commonjs/customHooks/bundleAnalyzer.js +0 -1
- package/dist/commonjs/customHooks/performanceTracker.d.ts +0 -144
- package/dist/commonjs/customHooks/performanceTracker.js +0 -63
- package/dist/commonjs/performance.d.ts +0 -2
- package/dist/commonjs/performance.js +0 -1
- package/dist/esm/bundle.d.ts +0 -2
- package/dist/esm/bundle.js +0 -1
- package/dist/esm/components/BrandSquareIcon.d.ts +0 -5
- package/dist/esm/components/BrandSquareIcon.js +0 -112
- package/dist/esm/components/Inspector/BundleTab.d.ts +0 -48
- package/dist/esm/components/Inspector/BundleTab.js +0 -1297
- package/dist/esm/components/Inspector/PerformanceTab.d.ts +0 -27
- package/dist/esm/components/Inspector/PerformanceTab.js +0 -454
- package/dist/esm/customHooks/bundleAnalyzer.d.ts +0 -115
- package/dist/esm/customHooks/bundleAnalyzer.js +0 -1
- package/dist/esm/customHooks/performanceTracker.d.ts +0 -144
- package/dist/esm/customHooks/performanceTracker.js +0 -63
- package/dist/esm/performance.d.ts +0 -2
- package/dist/esm/performance.js +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import K,{useEffect as U,useRef as q}from"react";import{Animated as F,StyleSheet as
|
|
1
|
+
import K,{useEffect as U,useRef as q}from"react";import{Animated as F,StyleSheet as j,Text as V,View as C}from"react-native";import{AppColors as e}from"../styles/AppColors";import{AppFonts as T}from"../styles/AppFonts";import{formatGap as Q,formatTime as X,getEventColor as Y,getEventCategory as Z,getCategoryColors as v}from"../helpers";import{useTranslation as ee}from"../i18n";import Ce from"./HighlightText";import Te from"./TouchableScale";import{CartIcon as $,MoneyIcon as Be,GlobeIcon as Ve,BoltIcon as Se,SparkleIcon as L,ClockIcon as Ie,ForwardChevronIcon as Re}from"./NetworkIcons";const We=K.memo(function({event:o,onPress:O,isNew:R=!1,searchStr:A="",msSincePrev:W,computedScreenName:P}){const{t:S}=ee(),E=Y(o.name),_=o.params?Object.keys(o.params).length:0,H=o.userProperties?Object.keys(o.userProperties).length:0,z=Z(o.name),B=v(z),D=q(new F.Value(R?1:0)).current;U(()=>{R&&F.timing(D,{toValue:0,duration:1200,useNativeDriver:!1}).start()},[R]);const N=W!=null&&W>=2e3,G=S(z==="page_view"?"analytics.pageViewCategory":z==="ecommerce"?"analytics.ecommerceCategory":z==="system"?"analytics.systemCategory":"analytics.customCategory");return<C style={r.container}>
|
|
2
2
|
|
|
3
3
|
{N&&<C style={r.gapContainer}>
|
|
4
4
|
<C style={r.gapLine}/>
|
|
@@ -9,8 +9,8 @@ import K,{useEffect as U,useRef as q}from"react";import{Animated as F,StyleSheet
|
|
|
9
9
|
</C>}
|
|
10
10
|
|
|
11
11
|
|
|
12
|
-
<Te onPress={
|
|
13
|
-
{
|
|
12
|
+
<Te onPress={O}style={[r.modernCard,{borderLeftWidth:3.5,borderLeftColor:B.text}]}>
|
|
13
|
+
{R&&<F.View style={[j.absoluteFill,{backgroundColor:E,opacity:D.interpolate({inputRange:[0,1],outputRange:[0,.08]})}]}/>}
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
<C style={r.cardHeader}>
|
|
@@ -24,7 +24,7 @@ import K,{useEffect as U,useRef as q}from"react";import{Animated as F,StyleSheet
|
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
<C style={[r.iconBadge,{backgroundColor:B.bg,borderColor:B.border}]}>
|
|
27
|
-
{z==="ecommerce"
|
|
27
|
+
{z==="ecommerce"?<$ color={B.text}size={12}/>:z==="page_view"?<Ve color={B.text}size={12}/>:z==="system"?<Se color={B.text}size={12}/>:<L color={B.text}size={12}/>}
|
|
28
28
|
</C>
|
|
29
29
|
|
|
30
30
|
|
|
@@ -46,21 +46,24 @@ import K,{useEffect as U,useRef as q}from"react";import{Animated as F,StyleSheet
|
|
|
46
46
|
</C>
|
|
47
47
|
|
|
48
48
|
|
|
49
|
-
<C style={{flexDirection:"row",alignItems:"center",gap:
|
|
50
|
-
<
|
|
51
|
-
|
|
52
|
-
{
|
|
53
|
-
|
|
49
|
+
<C style={{flexDirection:"row",alignItems:"center",gap:5}}>
|
|
50
|
+
<C style={{flexDirection:"row",alignItems:"center",gap:3}}>
|
|
51
|
+
<Ie color={e.grayTextWeak}size={10}/>
|
|
52
|
+
<V style={[r.timestamp,{color:e.grayTextWeak}]}>
|
|
53
|
+
{X(o.timestamp)}
|
|
54
|
+
</V>
|
|
55
|
+
</C>
|
|
56
|
+
<Re color={e.grayTextWeak}size={13}/>
|
|
54
57
|
</C>
|
|
55
58
|
</C>
|
|
56
59
|
|
|
57
60
|
|
|
58
61
|
<C style={r.cardBody}>
|
|
59
62
|
<C style={r.chipsRow}>
|
|
60
|
-
{(()=>{const w=P||o.screenName||o.params?.firebase_screen||o.params?.screen_name||o.params?.firebase_screen_class;if(!w)return null;const
|
|
63
|
+
{(()=>{const w=P||o.screenName||o.params?.firebase_screen||o.params?.screen_name||o.params?.firebase_screen_class;if(!w)return null;const I=typeof w=="object"?JSON.stringify(w):String(w);return<C style={[r.chip,{backgroundColor:`${e.amber500}12`,borderColor:`${e.amber500}2E`}]}>
|
|
61
64
|
<C style={[r.screenDot,{backgroundColor:e.amber500}]}/>
|
|
62
65
|
<V style={[r.chipText,{color:e.amber700,fontFamily:T.interBold}]}numberOfLines={1}>
|
|
63
|
-
{
|
|
66
|
+
{I}
|
|
64
67
|
</V>
|
|
65
68
|
</C>})()}
|
|
66
69
|
|
|
@@ -70,22 +73,22 @@ import K,{useEffect as U,useRef as q}from"react";import{Animated as F,StyleSheet
|
|
|
70
73
|
</V>
|
|
71
74
|
</C>
|
|
72
75
|
|
|
73
|
-
{
|
|
74
|
-
<
|
|
76
|
+
{H>0&&<C style={[r.chip,{backgroundColor:`${e.brandPurple}10`,borderColor:`${e.brandPurple}25`}]}>
|
|
77
|
+
<L color={e.brandPurple}size={10}/>
|
|
75
78
|
<V style={[r.chipText,{color:e.brandPurple,fontFamily:T.interBold}]}>
|
|
76
|
-
{
|
|
79
|
+
{H} {S("analytics.props")}
|
|
77
80
|
</V>
|
|
78
81
|
</C>}
|
|
79
82
|
|
|
80
83
|
{(()=>{const w=o.params?.items;return Array.isArray(w)&&w.length>0?<C style={[r.chip,{backgroundColor:e.amberBg,borderColor:e.amberBorder}]}>
|
|
81
|
-
|
|
84
|
+
<$ color={e.amber700}size={11}/>
|
|
82
85
|
<V style={[r.chipText,{color:e.amber700,fontFamily:T.interBold}]}>
|
|
83
86
|
{w.length}{" "}
|
|
84
87
|
{w.length===1?S("analytics.item"):S("analytics.items")}
|
|
85
88
|
</V>
|
|
86
89
|
</C>:null})()}
|
|
87
90
|
|
|
88
|
-
{(()=>{const w=o.params?.value??o.params?.price,
|
|
91
|
+
{(()=>{const w=o.params?.value??o.params?.price,I=o.params?.currency??"",M=typeof w=="string"||typeof w=="number";if(w!=null&&M&&String(w).trim()!==""){const J=typeof I=="string"&&I.trim()!==""?I.toUpperCase():"";return<C style={[r.chip,{backgroundColor:`${e.emerald500}15`,borderColor:`${e.emerald500}35`}]}>
|
|
89
92
|
<Be color={e.emerald600}size={11}/>
|
|
90
93
|
<V style={[r.chipText,{color:e.emerald600,fontFamily:T.interBold}]}>
|
|
91
94
|
{String(w)} {J}
|
|
@@ -94,4 +97,4 @@ import K,{useEffect as U,useRef as q}from"react";import{Animated as F,StyleSheet
|
|
|
94
97
|
</C>
|
|
95
98
|
</C>
|
|
96
99
|
</Te>
|
|
97
|
-
</C>}),r
|
|
100
|
+
</C>}),r=j.create({container:{paddingHorizontal:10,paddingVertical:4,height:86,justifyContent:"center"},gapContainer:{flexDirection:"row",alignItems:"center",justifyContent:"center",marginVertical:4,gap:8},gapLine:{flex:1,height:1,backgroundColor:`${e.dividerColor}`},gapText:{fontFamily:T.interBold,fontSize:9.5,color:e.grayTextWeak,letterSpacing:.5},modernCard:{backgroundColor:e.white,borderRadius:10,borderWidth:1,borderColor:e.dividerColor,paddingHorizontal:12,paddingVertical:9,shadowColor:e.black,shadowOpacity:.03,shadowRadius:3,shadowOffset:{width:0,height:1},elevation:1,overflow:"hidden",height:78,justifyContent:"space-between"},cardHeader:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",height:24},iconBadge:{width:22,height:22,borderRadius:6,borderWidth:1,alignItems:"center",justifyContent:"center"},eventName:{fontFamily:T.interBold,fontSize:13,lineHeight:17,letterSpacing:.1,color:e.primaryBlack},timestamp:{fontFamily:T.interMedium,fontSize:10.5,lineHeight:14,color:e.grayTextWeak},highlight:{backgroundColor:e.yellowHighlight,color:e.primaryBlack,borderRadius:2},cardBody:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:24,overflow:"hidden"},chipsRow:{flexDirection:"row",alignItems:"center",flexWrap:"nowrap",gap:6,flex:1,overflow:"hidden"},chip:{flexDirection:"row",alignItems:"center",paddingHorizontal:6,paddingVertical:2.5,borderRadius:4.5,borderWidth:1,gap:3.5},chipText:{fontFamily:T.interMedium,fontSize:10,lineHeight:13,color:e.grayText},screenDot:{width:5,height:5,borderRadius:2.5},duplicateBadge:{backgroundColor:e.roseBg,borderColor:e.roseBorder,borderWidth:1,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4},duplicateText:{fontFamily:T.interBold,fontSize:8.5,color:e.rose600,textTransform:"uppercase"},idBadge:{paddingHorizontal:5.5,paddingVertical:2,borderRadius:5,backgroundColor:`${e.slate500}12`,borderWidth:1,borderColor:`${e.slate500}22`},idBadgeText:{fontFamily:T.interBold,fontSize:9.5,color:e.grayTextWeak,letterSpacing:.2},categoryBadge:{borderWidth:1,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4},categoryText:{fontFamily:T.interBold,fontSize:8.5,textTransform:"uppercase",letterSpacing:.4}});export default We;
|
|
@@ -1,7 +1,5 @@
|
|
|
1
|
-
import
|
|
2
|
-
{
|
|
3
|
-
</C>}return<C style={[
|
|
4
|
-
<R source={t}style={[
|
|
5
|
-
</C>}return<
|
|
6
|
-
<S size={e}/>
|
|
7
|
-
</C>};const i=A.create({container:{overflow:"hidden",alignItems:"center",justifyContent:"center",borderWidth:1.5,borderColor:o.whiteAlpha33,backgroundColor:o.whiteAlpha12,shadowColor:o.shadowColorString,shadowOffset:{width:0,height:2},shadowOpacity:.35,shadowRadius:5,elevation:4},imageContainer:{overflow:"hidden",backgroundColor:o.whiteAlpha15,borderWidth:1.5,borderColor:o.whiteAlpha33,alignItems:"center",justifyContent:"center",shadowColor:o.shadowColorString,shadowOffset:{width:0,height:2},shadowOpacity:.3,shadowRadius:4,elevation:3,padding:1.5},image:{width:"100%",height:"100%"}});export default AppHeaderLogo;
|
|
1
|
+
import o from"react";import{Image as R,StyleSheet as V,View as C}from"react-native";import S from"./BrandCircleIcon";export const AppHeaderLogo=({size:e=52,customIcon:t})=>{const r=Math.round(e*.23);if(t){if(o.isValidElement(t)){const b=o.cloneElement(t,{size:e,width:e,height:e});return<C style={[n.container,{width:e,height:e,borderRadius:r}]}>
|
|
2
|
+
{b}
|
|
3
|
+
</C>}return<C style={[n.imageContainer,{width:e,height:e,borderRadius:r}]}>
|
|
4
|
+
<R source={t}style={[n.image,{borderRadius:r}]}resizeMode="cover"/>
|
|
5
|
+
</C>}return<S size={e}/>};const n=V.create({container:{overflow:"hidden",alignItems:"center",justifyContent:"center",backgroundColor:"transparent"},imageContainer:{overflow:"hidden",backgroundColor:"transparent",alignItems:"center",justifyContent:"center"},image:{width:"100%",height:"100%"}});export default AppHeaderLogo;
|
|
@@ -1,99 +1,111 @@
|
|
|
1
|
-
import z
|
|
2
|
-
<T style={{flexDirection:"row",
|
|
3
|
-
{
|
|
4
|
-
<
|
|
5
|
-
<
|
|
6
|
-
{
|
|
7
|
-
</
|
|
1
|
+
import z from"react";import{useTranslation as G}from"../i18n";import{Pressable as K,StyleSheet as Y,Text as E,View as T}from"react-native";import{AppColors as r}from"../styles/AppColors";import{AppFonts as B}from"../styles/AppFonts";import{formatTime as X,getJsonContent as J,getJsonPreviewText as Q,parseStackLine as Z,openInVSCode as q,getSize as _,getCleanCallerDisplay as ee}from"../helpers";import Te from"./TouchableScale";import N from"./LogSyntaxHighlighter";import{ForwardChevronIcon as Ce,ExternalLinkIcon as Ie,FlaskIcon as he,ZapIcon as V,GlobeIcon as xe,DiceIcon as ye,AtomIcon as M,BarChartIcon as Se,KeyIcon as me,SmartphoneIcon as Ee,AlertTriangleIcon as Be,BugIcon as Re,TagIcon as Ae,MapPinIcon as $,StorageIcon as Oe,SignalIcon as Pe,FlameIcon as we,MoneyIcon as ke,CircleCheckIcon as U,CircleAlertIcon as Ne,CircleXIcon as Le,RefreshCcwIcon as He,PerformanceIcon as Ve,ChipIcon as Fe,SettingsIcon as De,TerminalIcon as ze,InfoCircleIcon as W,ShieldAlertIcon as Me,LayoutIcon as $e,ClockIcon as Ue,SizeIcon as We}from"./NetworkIcons";import{useInspector as Ge}from"./Inspector/InspectorContext";const ve=(w,C,O,F,L)=>{if(!w)return null;const x=/^((?:\[[^\]]+\]\s*)+)/,k=w.match(x);if(k){const I=k[1],D=w.substring(I.length),h=I.match(/\[[^\]]+\]/g)||[],H=P=>{const e=P.replace(/[\[\]]/g,"").trim().toUpperCase();return e==="AXIOS"?{color:r.emerald600,Icon:V,label:"AXIOS"}:e==="API"||e==="FETCH"||e==="HTTP"||e==="REST"||e==="NETWORK"?{color:r.sky600,Icon:xe,label:e}:e==="GRAPHQL"||e==="GQL"||e==="APOLLO"||e==="MUTATION"||e==="QUERY"?{color:r.pink500,Icon:M,label:e}:e==="WS"||e==="WEBSOCKET"||e==="SOCKET"||e==="SOCKET.IO"||e==="REALTIME"?{color:r.cyan600,Icon:Pe,label:e}:e==="REDUX"||e==="STORE"||e==="STATE"||e==="ZUSTAND"||e==="MOBX"||e==="RECOIL"||e==="ACTION"||e==="DISPATCH"?{color:r.violet600,Icon:M,label:e}:e==="ANALYTICS"||e==="FIREBASE"||e==="GA4"||e==="GA"||e==="SEGMENT"||e==="MIXPANEL"||e==="POSTHOG"||e==="TRACK"||e==="EVENT"?{color:r.teal600,Icon:Se,label:e}:e==="AUTH"||e==="TOKEN"||e==="SESSION"||e==="JWT"||e==="LOGIN"||e==="LOGOUT"||e==="USER"?{color:r.amber600,Icon:me,label:e}:e==="SECURITY"||e==="SHIELD"||e==="PERMISSION"||e==="PERMISSIONS"?{color:r.indigo600Alt,Icon:Me,label:e}:e==="NAV"||e==="NAVIGATION"||e==="ROUTE"||e==="SCREEN"||e==="ROUTER"||e==="DEEPLINK"?{color:r.indigo600Alt,Icon:$,label:e}:e==="STORAGE"||e==="ASYNCSTORAGE"||e==="MMKV"||e==="SQLITE"||e==="DB"||e==="DATABASE"||e==="REALM"||e==="CACHE"?{color:r.purple500,Icon:Oe,label:e}:e==="PERF"||e==="RENDER"||e==="PERFORMANCE"||e==="FPS"||e==="MEMORY"?{color:r.violet500,Icon:Ve,label:e}:e==="INIT"||e==="BOOT"||e==="STARTUP"||e==="LIFECYCLE"||e==="MOUNT"||e==="UNMOUNT"?{color:r.blue600,Icon:V,label:e}:e==="SYNC"||e==="REFRESH"||e==="BACKGROUND"||e==="JOB"||e==="WORKER"?{color:r.sky600,Icon:He,label:e}:e==="PUSH"||e==="NOTIF"||e==="NOTIFICATION"||e==="FCM"||e==="APNS"?{color:r.darkOrange,Icon:we,label:e}:e==="PAY"||e==="PAYMENT"||e==="STRIPE"||e==="IAP"||e==="BILLING"||e==="CHECKOUT"||e==="CART"?{color:r.emerald600,Icon:ke,label:e}:e==="DEVICE"||e==="HARDWARE"||e==="BLE"||e==="BLUETOOTH"||e==="NFC"||e==="SENSOR"?{color:r.slate600,Icon:Fe,label:e}:e==="LOCATION"||e==="GPS"||e==="GEO"?{color:r.emerald600,Icon:$,label:e}:e==="APP"?{color:r.indigo600Alt,Icon:Ee,label:"APP"}:e==="UI"||e==="VIEW"||e==="THEME"||e==="STYLE"||e==="LAYOUT"?{color:r.pink600,Icon:$e,label:e}:e==="TEST"||e==="MOCK"||e==="SPEC"?{color:r.emerald500,Icon:he,label:"TEST"}:e==="SAMPLE"||e==="BATCH"?{color:r.indigo600Alt,Icon:ye,label:e}:e==="CONFIG"||e==="ENV"||e==="SETTINGS"?{color:r.slate700,Icon:De,label:e}:e==="DEBUG"||e==="TRACE"?{color:r.purpleText,Icon:ze,label:e}:e==="INFO"?{color:r.sky600,Icon:W,label:"INFO"}:e==="SUCCESS"||e==="OK"||e==="DONE"||e==="PASSED"?{color:r.green600,Icon:U,label:e}:e==="WARN"||e==="WARNING"?{color:r.amber600,Icon:Be,label:"WARN"}:e==="ERROR"||e==="CRASH"||e==="BUG"||e==="FATAL"||e==="EXCEPTION"||e==="FAIL"?{color:r.red600,Icon:Re,label:e==="CRASH"||e==="BUG"||e==="FATAL"||e==="EXCEPTION"||e==="FAIL"?e:"ERROR"}:{color:r.slate600,Icon:Ae,label:e}};return<T style={{flexDirection:"column",gap:2}}>
|
|
2
|
+
<T style={{flexDirection:"row",gap:4,overflow:"hidden"}}>
|
|
3
|
+
{h.slice(0,2).map((P,e)=>{const R=H(P),S=R.Icon;return<T key={e}style={[o.prefixTag,{backgroundColor:`${R.color}12`,borderColor:`${R.color}30`}]}>
|
|
4
|
+
<S color={R.color}size={8.5}/>
|
|
5
|
+
<E style={[o.prefixTagText,{color:R.color}]}>
|
|
6
|
+
{R.label}
|
|
7
|
+
</E>
|
|
8
8
|
</T>})}
|
|
9
9
|
</T>
|
|
10
|
-
<
|
|
11
|
-
</T>}return<
|
|
12
|
-
<
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
<T style={
|
|
16
|
-
<T style={
|
|
17
|
-
<
|
|
18
|
-
#{
|
|
19
|
-
</
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
<T style={[
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
10
|
+
<N text={D}search={C}style={O}numberOfLines={1}detectLinks={!1}/>
|
|
11
|
+
</T>}return<N text={w}search={C}style={O}numberOfLines={L||2}detectLinks={!1}/>};export const ConsoleLogCard=z.memo(function({item:C,searchStr:O=""}){const{setSelectedLog:F}=Ge(),{t:L}=G(),x=J(C.message),k=C.message.toLowerCase().includes("[analytics error]"),I=z.useMemo(()=>{const S=ee(C.caller);if(!S)return null;const A=Z(C.caller,!0);return{...A,display:S.display,fileName:S.fileName,lineNumber:S.lineNumber||A.lineNumber}},[C.caller]),h=(()=>{const S=(C.type||"log").toLowerCase(),A=(C.sourceMethod||S).toLowerCase();return k||S==="error"||A==="error"?{badgeColor:r.errorColor,border:r.errorColor,badgeBg:`${r.errorColor}18`,badgeText:r.errorColor,label:"ERROR",cardBg:r.errorCardBg,statusPillBg:`${r.errorColor}14`,statusPillBorder:`${r.errorColor}33`,statusPillText:r.errorColor,StatusIcon:Le}:S==="warn"||A==="warn"?{badgeColor:r.darkOrange,border:r.darkOrange,badgeBg:`${r.darkOrange}18`,badgeText:r.darkOrange,label:"WARN",cardBg:r.warnCardBg,statusPillBg:`${r.darkOrange}14`,statusPillBorder:`${r.darkOrange}33`,statusPillText:r.darkOrange,StatusIcon:Ne}:S==="debug"||A==="debug"?{badgeColor:r.purple,border:r.purple,badgeBg:`${r.purple}18`,badgeText:r.purple,label:"DEBUG",cardBg:r.purpleTintBg,statusPillBg:`${r.purple}14`,statusPillBorder:`${r.purple}33`,statusPillText:r.purple,StatusIcon:V}:A==="info"||S==="info"&&A!=="log"?{badgeColor:r.sky600,border:r.sky600,badgeBg:`${r.sky600}18`,badgeText:r.sky600,label:"INFO",cardBg:r.blueTintBg,statusPillBg:`${r.sky600}14`,statusPillBorder:`${r.sky600}33`,statusPillText:r.sky600,StatusIcon:W}:{badgeColor:r.brandPurple,border:r.brandPurple,badgeBg:`${r.brandPurple}15`,badgeText:r.brandPurple,label:"LOG",cardBg:r.white,statusPillBg:`${r.brandPurple}12`,statusPillBorder:`${r.brandPurple}2E`,statusPillText:r.brandPurple,StatusIcon:U}})(),H=h.StatusIcon,P=x?Q(x.data):null,e=()=>{F(C)},R=("sourceMethod"in C?C.sourceMethod:void 0)||C.type||"log";return<T style={o.container}>
|
|
12
|
+
<Te onPress={e}style={[o.card,{borderLeftWidth:3.5,borderLeftColor:h.border,backgroundColor:h.cardBg}]}>
|
|
13
|
+
<T style={o.cardBody}>
|
|
14
|
+
|
|
15
|
+
<T style={o.cardHeaderRow}>
|
|
16
|
+
<T style={o.cardHeaderLeft}>
|
|
17
|
+
<E style={o.serialNumber}>
|
|
18
|
+
#{C.id!=null?C.id+1:1}
|
|
19
|
+
</E>
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
<T style={[o.methodBadge,{backgroundColor:h.badgeColor}]}>
|
|
23
|
+
<E style={o.methodBadgeText}>{h.label}</E>
|
|
24
|
+
</T>
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
<T style={[o.chip,{backgroundColor:`${h.badgeColor}12`,borderColor:`${h.badgeColor}2E`}]}>
|
|
28
|
+
<E style={[o.chipText,{color:h.badgeColor}]}numberOfLines={1}>
|
|
29
|
+
console.{R}
|
|
30
|
+
</E>
|
|
31
|
+
</T>
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
{x&&<T style={[o.chip,{backgroundColor:`${r.teal600}14`,borderColor:`${r.teal600}33`}]}>
|
|
35
|
+
<E style={[o.chipText,{color:r.teal600}]}>
|
|
36
|
+
{Array.isArray(x.data)?`Array[${x.data.length}]`:`Object{${Object.keys(x.data).length}}`}
|
|
37
|
+
</E>
|
|
38
|
+
</T>}
|
|
39
|
+
|
|
40
|
+
|
|
41
|
+
{"duplicateCount"in C&&C.duplicateCount!=null&&C.duplicateCount>1&&<T style={o.dupBadge}>
|
|
42
|
+
<E style={o.dupBadgeText}>
|
|
43
|
+
×{C.duplicateCount}
|
|
44
|
+
</E>
|
|
45
|
+
</T>}
|
|
26
46
|
</T>
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
<T style={o.cardHeaderRight}>
|
|
50
|
+
<T style={[o.statusPill,{backgroundColor:h.statusPillBg,borderColor:h.statusPillBorder}]}>
|
|
51
|
+
<H color={h.statusPillText}size={9.5}/>
|
|
52
|
+
<E style={[o.statusPillText,{color:h.statusPillText}]}>
|
|
53
|
+
{h.label}
|
|
54
|
+
</E>
|
|
55
|
+
</T>
|
|
56
|
+
<Ce color={r.grayTextWeak}size={13}/>
|
|
32
57
|
</T>
|
|
33
|
-
{C&&<T style={[r.metaChip,{backgroundColor:`${o.teal600}14`,borderColor:`${o.teal600}33`}]}>
|
|
34
|
-
<I style={[r.metaChipText,{color:o.teal600,fontFamily:b.interBold}]}>
|
|
35
|
-
{Array.isArray(C.data)?`Array[${C.data.length}]`:`Object{${Object.keys(C.data).length}}`}
|
|
36
|
-
</I>
|
|
37
|
-
</T>}
|
|
38
|
-
{"duplicateCount"in t&&t.duplicateCount!=null&&t.duplicateCount>1&&<T style={[r.metaChip,{backgroundColor:`${o.purple}1A`,borderColor:`${o.purple}3D`}]}>
|
|
39
|
-
<I style={[r.metaChipText,{color:o.purple,fontFamily:b.interBold}]}>
|
|
40
|
-
×{t.duplicateCount}
|
|
41
|
-
</I>
|
|
42
|
-
</T>}
|
|
43
58
|
</T>
|
|
44
59
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
60
|
+
|
|
61
|
+
<T style={o.messageBox}>
|
|
62
|
+
{x?<T style={o.jsonPreviewRow}>
|
|
63
|
+
{x.header?<N text={x.header}search={O}style={o.messageText}detectLinks={!1}numberOfLines={1}/>:null}
|
|
64
|
+
{P&&<N text={P.text.replace(/\s+/g," ")}search={O}style={o.jsonPreviewText}detectLinks={!1}numberOfLines={x.header?2:3}/>}
|
|
65
|
+
</T>:ve(C.message,O,o.messageText,o.highlight,3)}
|
|
48
66
|
</T>
|
|
49
|
-
</T>
|
|
50
67
|
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
{
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
{
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
{h?"Show less":"Show full preview"}
|
|
61
|
-
</I>
|
|
62
|
-
<D color={o.purple}size={11}direction={h?"up":"down"}/>
|
|
63
|
-
</N>}
|
|
64
|
-
</T>}
|
|
65
|
-
</>:$(t.message,E,[r.messageText,{color:o.primaryBlack}],r.highlight,h?void 0:4)}
|
|
66
|
-
</T>
|
|
68
|
+
|
|
69
|
+
<T style={o.cardFooterRow}>
|
|
70
|
+
<T style={o.footerLeft}>
|
|
71
|
+
<T style={o.cardDateRow}>
|
|
72
|
+
<Ue color={r.grayTextWeak}size={10}/>
|
|
73
|
+
<E style={o.cardDateText}numberOfLines={1}>
|
|
74
|
+
{X(C.timestamp)}
|
|
75
|
+
</E>
|
|
76
|
+
</T>
|
|
67
77
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
{u&&<>
|
|
74
|
-
<T style={r.footerDot}/>
|
|
75
|
-
<N onPress={y=>{y.stopPropagation?.(),Q(u.rawFilePath||u.fullPath||u.fileName,u.lineNumber,u.columnNumber)}}hitSlop={8}style={r.callerPill}>
|
|
76
|
-
{u.fileExt&&u.fileExt!=="other"&&<T style={[r.extBadge,{backgroundColor:u.fileExt==="tsx"||u.fileExt==="ts"?`${o.brandPurple}22`:`${o.teal600}22`}]}>
|
|
77
|
-
<I style={[r.extBadgeText,{color:u.fileExt==="tsx"||u.fileExt==="ts"?o.brandPurple:o.teal600}]}>
|
|
78
|
-
{u.fileExt.toUpperCase()}
|
|
79
|
-
</I>
|
|
78
|
+
{I&&<K onPress={S=>{S.stopPropagation?.(),q(I.rawFilePath||I.fullPath||I.fileName,I.lineNumber,I.columnNumber)}}hitSlop={8}style={o.callerChip}>
|
|
79
|
+
{I.fileExt&&I.fileExt!=="other"&&<T style={[o.extBadge,{backgroundColor:I.fileExt==="tsx"||I.fileExt==="ts"?`${r.brandPurple}22`:`${r.teal600}22`}]}>
|
|
80
|
+
<E style={[o.extBadgeText,{color:I.fileExt==="tsx"||I.fileExt==="ts"?r.brandPurple:r.teal600}]}>
|
|
81
|
+
{I.fileExt.toUpperCase()}
|
|
82
|
+
</E>
|
|
80
83
|
</T>}
|
|
81
|
-
<
|
|
82
|
-
{
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
84
|
+
<E style={o.callerChipText}numberOfLines={1}ellipsizeMode="middle">
|
|
85
|
+
{I.display}
|
|
86
|
+
</E>
|
|
87
|
+
<Ie color={r.sky600}size={8}/>
|
|
88
|
+
</K>}
|
|
89
|
+
</T>
|
|
90
|
+
|
|
91
|
+
<T style={o.footerRight}>
|
|
92
|
+
{x&&<T style={o.metaStatChip}>
|
|
93
|
+
<We color={r.purple}size={8.5}/>
|
|
94
|
+
<E style={o.metaStatText}>
|
|
95
|
+
{_(x.data)}
|
|
96
|
+
</E>
|
|
97
|
+
</T>}
|
|
98
|
+
|
|
99
|
+
{k&&<T style={[o.chip,{backgroundColor:`${r.skyBlue}15`,borderColor:`${r.skyBlue}30`}]}>
|
|
100
|
+
<E style={[o.chipText,{color:r.skyBlue}]}>
|
|
101
|
+
{L("console.analyticsBadge")||"ANALYTICS"}
|
|
102
|
+
</E>
|
|
103
|
+
</T>}
|
|
104
|
+
</T>
|
|
88
105
|
</T>
|
|
89
106
|
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
<I style={[r.footerBadgeText,{color:o.skyBlue}]}>
|
|
93
|
-
{S("console.analyticsBadge")}
|
|
94
|
-
</I>
|
|
95
|
-
</T>
|
|
96
|
-
</T>}
|
|
107
|
+
|
|
108
|
+
<T style={[o.bottomAccentBar,{backgroundColor:`${h.border}35`}]}/>
|
|
97
109
|
</T>
|
|
98
|
-
</
|
|
99
|
-
</T>});const
|
|
110
|
+
</Te>
|
|
111
|
+
</T>});const o=Y.create({container:{paddingHorizontal:8,paddingVertical:4,height:148,justifyContent:"center"},card:{height:140,alignSelf:"stretch",borderRadius:10,overflow:"hidden",borderWidth:1,borderColor:r.dividerColor,shadowColor:r.shadowColorString},cardBody:{height:"100%",paddingHorizontal:12,paddingTop:10,paddingBottom:8,justifyContent:"space-between"},cardHeaderRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:22,minHeight:22,maxHeight:22},cardHeaderLeft:{flexDirection:"row",alignItems:"center",flex:1,marginRight:8,gap:6,minWidth:0,overflow:"hidden"},cardHeaderRight:{flexDirection:"row",alignItems:"center",gap:6,flexShrink:0},serialNumber:{fontFamily:B.interBold,color:r.grayTextWeak,fontSize:10},methodBadge:{paddingHorizontal:7,paddingVertical:2.5,borderRadius:5,alignItems:"center",justifyContent:"center"},methodBadgeText:{fontFamily:B.interBold,fontSize:9.5,lineHeight:12,letterSpacing:.5,color:r.white},chip:{paddingHorizontal:6,paddingVertical:2,borderRadius:4,borderWidth:1},chipText:{fontFamily:B.interBold,fontSize:9,lineHeight:12},dupBadge:{backgroundColor:`${r.purple}14`,borderColor:`${r.purple}2E`,borderWidth:1,paddingHorizontal:4.5,paddingVertical:1,borderRadius:3.5},dupBadgeText:{fontFamily:B.interBold,fontSize:8.5,color:r.purple},statusPill:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:7,paddingVertical:2.5,borderRadius:6,borderWidth:1,flexShrink:0},statusPillText:{fontFamily:B.interBold,fontSize:10,lineHeight:13},messageBox:{backgroundColor:r.grayBackground,borderRadius:7,borderWidth:1,borderColor:r.dividerColor,paddingHorizontal:10,paddingVertical:6,height:68,minHeight:68,maxHeight:68,justifyContent:"center",gap:2,overflow:"hidden"},messageText:{fontFamily:B.interMedium,fontSize:12,color:r.primaryBlack,lineHeight:17},highlight:{backgroundColor:r.yellowHighlight,color:r.primaryBlack,borderRadius:2},jsonPreviewRow:{flexDirection:"column",justifyContent:"center",gap:2},jsonPreviewText:{fontFamily:B.interMedium,fontSize:11,color:r.teal700,lineHeight:15},cardFooterRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",height:18,minHeight:18,maxHeight:18,gap:6},footerLeft:{flexDirection:"row",alignItems:"center",gap:6,flex:1,minWidth:0,overflow:"hidden"},footerRight:{flexDirection:"row",alignItems:"center",gap:5,flexShrink:0},cardDateRow:{flexDirection:"row",alignItems:"center",gap:3.5},cardDateText:{fontFamily:B.interRegular,fontSize:10,lineHeight:13,color:r.slate400},callerChip:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:r.skySoftBg,borderColor:r.skySoftBorder,borderWidth:1,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,flexShrink:1,minWidth:0},extBadge:{borderRadius:3,paddingHorizontal:3,paddingVertical:.5},extBadgeText:{fontFamily:B.interBold,fontSize:7.5},callerChipText:{color:r.skySoftText,fontSize:9,lineHeight:12,fontFamily:B.interBold},metaStatChip:{flexDirection:"row",alignItems:"center",gap:3,backgroundColor:r.violetSoftBg,borderColor:r.violetSoftBorder,borderWidth:1,paddingHorizontal:5.5,paddingVertical:1.5,borderRadius:4},metaStatText:{fontFamily:B.interBold,color:r.violetSoftText,fontSize:9,lineHeight:12},prefixTag:{flexDirection:"row",alignItems:"center",gap:2.5,paddingHorizontal:5,paddingVertical:1.5,borderRadius:3.5,borderWidth:1},prefixTagText:{fontFamily:B.interBold,fontSize:8.5,letterSpacing:.3},bottomAccentBar:{height:2.5,width:"100%",borderRadius:1.5,marginTop:2}});export default ConsoleLogCard;
|
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
interface EndOfListFooterProps {
|
|
2
|
+
export interface EndOfListFooterProps {
|
|
3
3
|
count?: number;
|
|
4
|
+
totalCount?: number;
|
|
4
5
|
label?: string;
|
|
5
6
|
message?: string;
|
|
7
|
+
hasMore?: boolean;
|
|
8
|
+
onLoadMore?: () => void;
|
|
9
|
+
loadMoreStep?: number;
|
|
6
10
|
}
|
|
7
11
|
export declare const EndOfListFooter: React.FC<EndOfListFooterProps>;
|
|
8
12
|
export default EndOfListFooter;
|
|
@@ -1,15 +1,37 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
<T style={o.messageText}>{k}</T>
|
|
8
|
-
{w!=null&&w>0&&<C style={o.countBadge}>
|
|
9
|
-
<T style={o.countText}>
|
|
10
|
-
{w} {b?w===1?b.replace(/s$/,""):b:""}
|
|
1
|
+
import $ from"react";import{Platform as H,StyleSheet as j,Text as B,View as T}from"react-native";import{AppColors as o}from"../styles/AppColors";import{AppFonts as V}from"../styles/AppFonts";import{CheckIcon as A,ChevronIcon as D}from"./NetworkIcons";import E from"./TouchableScale";import{useTranslation as Y}from"../i18n";export const EndOfListFooter=$.memo(({count:C,totalCount:S,label:M="items",message:O,hasMore:F=!1,onLoadMore:z,loadMoreStep:v=10})=>{const{t:I}=Y(),L=O??I("footer.endOfList","You've reached the end of the list"),W=F||S!=null&&C!=null&&C<S&&!!z,P=S!=null&&C!=null?Math.max(0,S-C):v,R=Math.min(P||v,v);if(W&&z)return<T style={e.container}>
|
|
2
|
+
<T style={e.dividerLine}/>
|
|
3
|
+
<T style={e.loadMoreContainer}>
|
|
4
|
+
<E onPress={z}hitSlop={6}style={e.loadMoreBtn}>
|
|
5
|
+
<T style={e.loadMoreIconWrap}>
|
|
6
|
+
<D color={o.white}size={9}direction="down"/>
|
|
11
7
|
</T>
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
8
|
+
<B style={e.loadMoreBtnText}>
|
|
9
|
+
{I("footer.loadMore",{count:R,defaultValue:`Load ${R} More`})}
|
|
10
|
+
</B>
|
|
11
|
+
{S!=null&&C!=null&&<T style={e.loadMoreCountBadge}>
|
|
12
|
+
<B style={e.loadMoreCountText}>
|
|
13
|
+
{C}/{S}
|
|
14
|
+
</B>
|
|
15
|
+
</T>}
|
|
16
|
+
</E>
|
|
17
|
+
{S!=null&&C!=null&&<B style={e.loadMoreSubtitle}>
|
|
18
|
+
{I("footer.showingOf",{count:C,total:S,label:M,defaultValue:`Showing ${C} of ${S} ${M}`})}
|
|
19
|
+
</B>}
|
|
20
|
+
</T>
|
|
21
|
+
<T style={e.dividerLine}/>
|
|
22
|
+
</T>;const k=C??S;return<T style={e.container}>
|
|
23
|
+
<T style={e.dividerLine}/>
|
|
24
|
+
<T style={e.badgePill}>
|
|
25
|
+
<T style={e.iconCircle}>
|
|
26
|
+
<A color={o.purple}size={8}/>
|
|
27
|
+
</T>
|
|
28
|
+
<B style={e.messageText}>{L}</B>
|
|
29
|
+
{k!=null&&k>0&&<T style={e.countBadge}>
|
|
30
|
+
<B style={e.countText}>
|
|
31
|
+
{k}{" "}
|
|
32
|
+
{M?k===1?M.replace(/s$/,""):M:""}
|
|
33
|
+
</B>
|
|
34
|
+
</T>}
|
|
35
|
+
</T>
|
|
36
|
+
<T style={e.dividerLine}/>
|
|
37
|
+
</T>});const e=j.create({container:{flexDirection:"row",alignItems:"center",justifyContent:"center",paddingHorizontal:16,paddingTop:14,paddingBottom:H.OS==="ios"?40:28,gap:8},dividerLine:{flex:1,height:1,backgroundColor:o.dividerColor,opacity:.7},loadMoreContainer:{alignItems:"center",gap:5},loadMoreBtn:{flexDirection:"row",alignItems:"center",backgroundColor:o.brandPurple,paddingVertical:6,paddingHorizontal:12,borderRadius:20,gap:6,shadowColor:o.brandPurple,shadowOffset:{width:0,height:2},shadowOpacity:.25,shadowRadius:4,elevation:2,borderWidth:1,borderColor:"rgba(255, 255, 255, 0.2)"},loadMoreIconWrap:{width:15,height:15,borderRadius:7.5,backgroundColor:"rgba(255, 255, 255, 0.25)",alignItems:"center",justifyContent:"center"},loadMoreBtnText:{fontFamily:V.interBold,fontSize:11,color:o.white,letterSpacing:.2},loadMoreCountBadge:{backgroundColor:"rgba(255, 255, 255, 0.2)",paddingHorizontal:5,paddingVertical:1,borderRadius:10},loadMoreCountText:{fontFamily:V.interBold,fontSize:9.5,color:o.white},loadMoreSubtitle:{fontFamily:V.interMedium,fontSize:10,color:o.grayTextWeak,letterSpacing:.1},badgePill:{flexDirection:"row",alignItems:"center",gap:6,paddingHorizontal:10,paddingVertical:5,borderRadius:999,backgroundColor:o.primaryLight,borderWidth:1,borderColor:o.grayBorderSecondary,shadowColor:o.black,shadowOffset:{width:0,height:1},shadowOpacity:.04,shadowRadius:2,elevation:1},iconCircle:{width:14,height:14,borderRadius:7,backgroundColor:`${o.purple}18`,alignItems:"center",justifyContent:"center"},messageText:{fontFamily:V.interMedium,fontSize:11,color:o.grayTextWeak,letterSpacing:.1},countBadge:{paddingHorizontal:5,paddingVertical:1,borderRadius:6,backgroundColor:o.grayBackground,borderWidth:1,borderColor:o.grayBorderSecondary},countText:{fontFamily:V.interBold,fontSize:9.5,color:o.grayTextStrong}});export default EndOfListFooter;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{useEffect as Se,useMemo as q,useState as ve}from"react";import{Modal as Ce,Pressable as Ae,ScrollView as Ie,StyleSheet as Y,Text as T,TouchableOpacity as R,View as P}from"react-native";import{useInspector as ze}from"./InspectorContext";import{AppColors as l}from"../../styles/AppColors";import{AppFonts as A}from"../../styles/AppFonts";import{getEventCategory as Be}from"../../helpers";import{FilterIcon as Ve,CloseWhite as Re,CheckIcon as L,CartIcon as We,GlobeIcon as
|
|
1
|
+
import{useEffect as Se,useMemo as q,useState as ve}from"react";import{Modal as Ce,Pressable as Ae,ScrollView as Ie,StyleSheet as Y,Text as T,TouchableOpacity as R,View as P}from"react-native";import{useInspector as ze}from"./InspectorContext";import{AppColors as l}from"../../styles/AppColors";import{AppFonts as A}from"../../styles/AppFonts";import{getEventCategory as Be}from"../../helpers";import{FilterIcon as Ve,CloseWhite as Re,CheckIcon as L,CartIcon as We,GlobeIcon as Oe,BoltIcon as Z,SparkleIcon as J,MoneyIcon as M,ClockIcon as $,HourglassIcon as _e,FlameIcon as Ee,PinIcon as K,RepeatIcon as De,TargetGoalIcon as X,UserIcon as Q,UserCheckIcon as Fe,PackageBoxIcon as He,CodeBracketsIcon as Te}from"../NetworkIcons";import S from"../TouchableScale";const Ne=({visible:W,onClose:G})=>{const{analyticsEvents:z,analyticsSearch:O,analyticsFilters:v,setAnalyticsFilters:pe}=ze(),[t,C]=ve(()=>({...v,categories:new Set(v.categories),screens:new Set(v.screens),sources:new Set(v.sources||["all"]),userTypes:new Set(v.userTypes||["all"])}));Se(()=>{W&&C({...v,categories:new Set(v.categories),screens:new Set(v.screens),sources:new Set(v.sources||["all"]),userTypes:new Set(v.userTypes||["all"])})},[W,v]);const _=q(()=>{const s=new Set;for(const i of z){const r=i.screenName||i.params?.firebase_screen||i.params?.screen_name||i.params?.firebase_screen_class||i.screenClass;r&&typeof r=="string"&&r.trim()!==""&&s.add(r.trim())}return Array.from(s)},[z]),I=s=>{C(i=>{const r=new Set(i.categories);return s==="all"?{...i,categories:new Set(["all"])}:(r.delete("all"),r.has(s)?(r.delete(s),r.size===0&&r.add("all")):r.add(s),{...i,categories:r})})},me=s=>{C(i=>{const r=new Set(i.screens);return r.has(s)?r.delete(s):r.add(s),{...i,screens:r}})},E=s=>{C(i=>{const r=new Set(i.sources);return s==="all"?{...i,sources:new Set(["all"])}:(r.delete("all"),r.has(s)?(r.delete(s),r.size===0&&r.add("all")):r.add(s),{...i,sources:r})})},D=s=>{C(i=>{const r=new Set(i.userTypes);return s==="all"?{...i,userTypes:new Set(["all"])}:(r.delete("all"),r.has(s)?(r.delete(s),r.size===0&&r.add("all")):r.add(s),{...i,userTypes:r})})},k=s=>{C(i=>({...i,[s]:!i[s]}))},Pe=s=>{C(i=>({...i,timeWindow:s}))},we=s=>{C(i=>({...i,payloadComplexity:s}))},B=s=>{C(i=>({...i,sortBy:s}))},ge=()=>{C({categories:new Set(["all"]),screens:new Set,sources:new Set(["all"]),userTypes:new Set(["all"]),timeWindow:"all",payloadComplexity:"all",hasRevenue:!1,hasItems:!1,hasUserProps:!1,hasParams:!1,onlyDuplicates:!1,onlyConversions:!1,sortBy:"time_desc"})},xe=()=>{pe({...t,categories:new Set(t.categories),screens:new Set(t.screens),sources:new Set(t.sources),userTypes:new Set(t.userTypes)}),G()},V=()=>{C({...v,categories:new Set(v.categories),screens:new Set(v.screens),sources:new Set(v.sources||["all"]),userTypes:new Set(v.userTypes||["all"])}),G()},be=q(()=>{let s=z;if(O){const i=O.toLowerCase();s=s.filter(r=>r.name.toLowerCase().includes(i)||JSON.stringify(r.params||{}).toLowerCase().includes(i)||(r.screenName??"").toLowerCase().includes(i)||(r.pageTitle??"").toLowerCase().includes(i))}if(t.categories.size>0&&!t.categories.has("all")&&(s=s.filter(i=>{const r=Be(i.name);return t.categories.has(r)})),t.timeWindow!=="all"){const i=Date.now(),r=t.timeWindow==="1m"?i-60*1e3:t.timeWindow==="5m"?i-300*1e3:t.timeWindow==="15m"?i-900*1e3:i-3600*1e3;s=s.filter(U=>U.timestamp>=r)}if(t.sources.size>0&&!t.sources.has("all")&&(s=s.filter(i=>t.sources.has(i.source||"manual"))),t.userTypes.size>0&&!t.userTypes.has("all")&&(s=s.filter(i=>{const r=!!(i.userId&&i.userId.trim()!=="");return!!(t.userTypes.has("identified")&&r||t.userTypes.has("anonymous")&&!r)})),t.payloadComplexity!=="all"&&(s=s.filter(i=>{const r=i.params?Object.keys(i.params).length:0;return t.payloadComplexity==="none"?r===0:t.payloadComplexity==="simple"?r>=1&&r<=5:t.payloadComplexity==="heavy"?r>5:!0})),t.onlyConversions){const i=["purchase","item_purchase","ecommerce_purchase","sign_up","login","lead","generate_lead","tutorial_complete","add_payment_info","begin_checkout"];s=s.filter(r=>i.some(U=>r.name.toLowerCase().includes(U)))}return t.screens.size>0&&(s=s.filter(i=>{const r=i.screenName||i.params?.firebase_screen||i.params?.screen_name||i.params?.firebase_screen_class||i.screenClass||"";return t.screens.has(r)})),t.hasRevenue&&(s=s.filter(i=>{const r=i.params?.value??i.params?.price;return r!=null&&Number(r)>0})),t.hasItems&&(s=s.filter(i=>Array.isArray(i.params?.items)&&i.params.items.length>0)),t.hasUserProps&&(s=s.filter(i=>i.userProperties&&Object.keys(i.userProperties).length>0)),t.hasParams&&(s=s.filter(i=>i.params&&Object.keys(i.params).length>0)),s.length},[z,O,t]),F=t.categories.has("all")||t.categories.size===0,H=t.sources.has("all")||t.sources.size===0,N=t.userTypes.has("all")||t.userTypes.size===0;return<Ce visible={W}transparent animationType="fade"onRequestClose={V}>
|
|
2
2
|
<P style={e.backdrop}>
|
|
3
3
|
<Ae style={Y.absoluteFill}onPress={V}/>
|
|
4
4
|
|
|
@@ -67,7 +67,7 @@ import{useEffect as Se,useMemo as q,useState as ve}from"react";import{Modal as C
|
|
|
67
67
|
</S>
|
|
68
68
|
|
|
69
69
|
<S onPress={()=>I("page_view")}style={[e.filterPill,t.categories.has("page_view")&&e.filterPillActive]}>
|
|
70
|
-
<
|
|
70
|
+
<Oe color={t.categories.has("page_view")?l.white:l.sky600}size={13}/>
|
|
71
71
|
<T style={[e.filterPillText,t.categories.has("page_view")&&e.filterPillTextActive]}>
|
|
72
72
|
Screens & Pages
|
|
73
73
|
</T>
|
|
@@ -113,7 +113,7 @@ import{useEffect as Se,useMemo as q,useState as ve}from"react";import{Modal as C
|
|
|
113
113
|
</S>
|
|
114
114
|
|
|
115
115
|
<S onPress={()=>k("hasItems")}style={[e.filterPill,t.hasItems&&e.filterPillActive]}>
|
|
116
|
-
<
|
|
116
|
+
<He color={t.hasItems?l.white:l.amber700}size={13}/>
|
|
117
117
|
<T style={[e.filterPillText,t.hasItems&&e.filterPillTextActive]}>
|
|
118
118
|
With Items Payload
|
|
119
119
|
</T>
|
|
@@ -149,9 +149,9 @@ import{useEffect as Se,useMemo as q,useState as ve}from"react";import{Modal as C
|
|
|
149
149
|
<T style={e.sectionTitle}>USER IDENTIFICATION</T>
|
|
150
150
|
</P>
|
|
151
151
|
<P style={e.chipsWrap}>
|
|
152
|
-
<S onPress={()=>D("all")}style={[e.filterPill,
|
|
153
|
-
{
|
|
154
|
-
<T style={[e.filterPillText,
|
|
152
|
+
<S onPress={()=>D("all")}style={[e.filterPill,N&&e.filterPillActive]}>
|
|
153
|
+
{N&&<L color={l.white}size={12}/>}
|
|
154
|
+
<T style={[e.filterPillText,N&&e.filterPillTextActive]}>
|
|
155
155
|
All Users
|
|
156
156
|
</T>
|
|
157
157
|
</S>
|
|
@@ -179,9 +179,9 @@ import{useEffect as Se,useMemo as q,useState as ve}from"react";import{Modal as C
|
|
|
179
179
|
<T style={e.sectionTitle}>EVENT SOURCE</T>
|
|
180
180
|
</P>
|
|
181
181
|
<P style={e.chipsWrap}>
|
|
182
|
-
<S onPress={()=>E("all")}style={[e.filterPill,
|
|
183
|
-
{
|
|
184
|
-
<T style={[e.filterPillText,
|
|
182
|
+
<S onPress={()=>E("all")}style={[e.filterPill,H&&e.filterPillActive]}>
|
|
183
|
+
{H&&<L color={l.white}size={12}/>}
|
|
184
|
+
<T style={[e.filterPillText,H&&e.filterPillTextActive]}>
|
|
185
185
|
All Sources
|
|
186
186
|
</T>
|
|
187
187
|
</S>
|
|
@@ -216,15 +216,15 @@ import{useEffect as Se,useMemo as q,useState as ve}from"react";import{Modal as C
|
|
|
216
216
|
</P>
|
|
217
217
|
|
|
218
218
|
|
|
219
|
-
{
|
|
219
|
+
{_.length>0&&<P style={e.section}>
|
|
220
220
|
<P style={e.sectionHeaderRow}>
|
|
221
221
|
<K color={l.grayTextWeak}size={12}/>
|
|
222
222
|
<T style={e.sectionTitle}>
|
|
223
|
-
DISCOVERED SCREENS ({
|
|
223
|
+
DISCOVERED SCREENS ({_.length})
|
|
224
224
|
</T>
|
|
225
225
|
</P>
|
|
226
226
|
<P style={e.chipsWrap}>
|
|
227
|
-
{
|
|
227
|
+
{_.map(s=>{const i=t.screens.has(s);return<S key={s}onPress={()=>me(s)}style={[e.filterPill,i&&e.filterPillActive]}>
|
|
228
228
|
<K color={i?l.white:l.amber700}size={12}/>
|
|
229
229
|
<T style={[e.filterPillText,i&&e.filterPillTextActive]}>
|
|
230
230
|
{s}
|
|
@@ -248,7 +248,7 @@ import{useEffect as Se,useMemo as q,useState as ve}from"react";import{Modal as C
|
|
|
248
248
|
</S>
|
|
249
249
|
|
|
250
250
|
<S onPress={()=>B("time_asc")}style={[e.filterPill,t.sortBy==="time_asc"&&e.filterPillActive]}>
|
|
251
|
-
<
|
|
251
|
+
<_e color={t.sortBy==="time_asc"?l.white:l.grayText}size={12}/>
|
|
252
252
|
<T style={[e.filterPillText,t.sortBy==="time_asc"&&e.filterPillTextActive]}>
|
|
253
253
|
Oldest First
|
|
254
254
|
</T>
|
|
@@ -285,4 +285,4 @@ import{useEffect as Se,useMemo as q,useState as ve}from"react";import{Modal as C
|
|
|
285
285
|
</P>
|
|
286
286
|
</P>
|
|
287
287
|
</P>
|
|
288
|
-
</Ce>},e=Y.create({backdrop:{flex:1,backgroundColor:`${l.primaryBlack}85`,justifyContent:"center",alignItems:"center",padding:16},modalCard:{width:"100%",maxWidth:440,backgroundColor:l.white,borderRadius:14,borderWidth:1,borderColor:l.dividerColor,shadowColor:l.black,shadowOpacity:.18,shadowRadius:12,shadowOffset:{width:0,height:4},elevation:8,overflow:"hidden"},header:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:14,paddingVertical:12,borderBottomWidth:1,borderBottomColor:l.dividerColor,backgroundColor:`${l.brandPurple}08`},headerIconBox:{width:28,height:28,borderRadius:7,backgroundColor:`${l.brandPurple}18`,alignItems:"center",justifyContent:"center"},headerTitle:{fontFamily:A.interBold,fontSize:13.5,color:l.primaryBlack},headerSubtitle:{fontFamily:A.interMedium,fontSize:10,color:l.grayTextWeak},resetBtn:{paddingHorizontal:8,paddingVertical:4,borderRadius:5,backgroundColor:`${l.darkOrange}14`,borderWidth:1,borderColor:`${l.darkOrange}30`},resetBtnText:{fontFamily:A.interBold,fontSize:10,color:l.darkOrange},closeBtn:{width:24,height:24,borderRadius:12,backgroundColor:`${l.primaryBlack}18`,alignItems:"center",justifyContent:"center"},scrollContent:{padding:14,gap:14},section:{gap:7},sectionHeaderRow:{flexDirection:"row",alignItems:"center",gap:5},sectionTitle:{fontFamily:A.interBold,fontSize:9.5,color:l.grayTextWeak,letterSpacing:.5},chipsWrap:{flexDirection:"row",flexWrap:"wrap",gap:6.5},filterPill:{flexDirection:"row",alignItems:"center",gap:5,paddingHorizontal:9,paddingVertical:5.5,borderRadius:7,backgroundColor:l.grayBackground,borderWidth:1,borderColor:l.dividerColor},filterPillActive:{backgroundColor:l.brandPurple,borderColor:l.brandPurple,shadowColor:l.brandPurple,shadowOffset:{width:0,height:1},shadowOpacity:.25,shadowRadius:3,elevation:2},filterPillText:{fontFamily:A.interMedium,fontSize:11,color:l.primaryBlack},filterPillTextActive:{color:l.white,fontFamily:A.interBold},footer:{flexDirection:"row",alignItems:"center",gap:10,paddingHorizontal:14,paddingVertical:12,borderTopWidth:1,borderTopColor:l.dividerColor,backgroundColor:l.grayBackground},discardBtn:{flex:1,paddingVertical:9.5,borderRadius:8,borderWidth:1,borderColor:l.dividerColor,backgroundColor:l.white,alignItems:"center",justifyContent:"center"},discardBtnText:{fontFamily:A.interBold,fontSize:12.5,color:l.grayTextStrong},applyBtn:{flex:2,backgroundColor:l.brandPurple,paddingVertical:9.5,borderRadius:8,alignItems:"center",justifyContent:"center",shadowColor:l.brandPurple,shadowOffset:{width:0,height:1},shadowOpacity:.25,shadowRadius:3,elevation:2},applyBtnText:{fontFamily:A.interBold,fontSize:12.5,color:l.white}});export default
|
|
288
|
+
</Ce>},e=Y.create({backdrop:{flex:1,backgroundColor:`${l.primaryBlack}85`,justifyContent:"center",alignItems:"center",padding:16},modalCard:{width:"100%",maxWidth:440,backgroundColor:l.white,borderRadius:14,borderWidth:1,borderColor:l.dividerColor,shadowColor:l.black,shadowOpacity:.18,shadowRadius:12,shadowOffset:{width:0,height:4},elevation:8,overflow:"hidden"},header:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingHorizontal:14,paddingVertical:12,borderBottomWidth:1,borderBottomColor:l.dividerColor,backgroundColor:`${l.brandPurple}08`},headerIconBox:{width:28,height:28,borderRadius:7,backgroundColor:`${l.brandPurple}18`,alignItems:"center",justifyContent:"center"},headerTitle:{fontFamily:A.interBold,fontSize:13.5,color:l.primaryBlack},headerSubtitle:{fontFamily:A.interMedium,fontSize:10,color:l.grayTextWeak},resetBtn:{paddingHorizontal:8,paddingVertical:4,borderRadius:5,backgroundColor:`${l.darkOrange}14`,borderWidth:1,borderColor:`${l.darkOrange}30`},resetBtnText:{fontFamily:A.interBold,fontSize:10,color:l.darkOrange},closeBtn:{width:24,height:24,borderRadius:12,backgroundColor:`${l.primaryBlack}18`,alignItems:"center",justifyContent:"center"},scrollContent:{padding:14,gap:14},section:{gap:7},sectionHeaderRow:{flexDirection:"row",alignItems:"center",gap:5},sectionTitle:{fontFamily:A.interBold,fontSize:9.5,color:l.grayTextWeak,letterSpacing:.5},chipsWrap:{flexDirection:"row",flexWrap:"wrap",gap:6.5},filterPill:{flexDirection:"row",alignItems:"center",gap:5,paddingHorizontal:9,paddingVertical:5.5,borderRadius:7,backgroundColor:l.grayBackground,borderWidth:1,borderColor:l.dividerColor},filterPillActive:{backgroundColor:l.brandPurple,borderColor:l.brandPurple,shadowColor:l.brandPurple,shadowOffset:{width:0,height:1},shadowOpacity:.25,shadowRadius:3,elevation:2},filterPillText:{fontFamily:A.interMedium,fontSize:11,color:l.primaryBlack},filterPillTextActive:{color:l.white,fontFamily:A.interBold},footer:{flexDirection:"row",alignItems:"center",gap:10,paddingHorizontal:14,paddingVertical:12,borderTopWidth:1,borderTopColor:l.dividerColor,backgroundColor:l.grayBackground},discardBtn:{flex:1,paddingVertical:9.5,borderRadius:8,borderWidth:1,borderColor:l.dividerColor,backgroundColor:l.white,alignItems:"center",justifyContent:"center"},discardBtnText:{fontFamily:A.interBold,fontSize:12.5,color:l.grayTextStrong},applyBtn:{flex:2,backgroundColor:l.brandPurple,paddingVertical:9.5,borderRadius:8,alignItems:"center",justifyContent:"center",shadowColor:l.brandPurple,shadowOffset:{width:0,height:1},shadowOpacity:.25,shadowRadius:3,elevation:2},applyBtnText:{fontFamily:A.interBold,fontSize:12.5,color:l.white}});export default Ne;
|