react-native-inapp-inspector 2.5.10 → 2.5.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. package/README.ar.md +0 -8
  2. package/README.de.md +0 -8
  3. package/README.es.md +0 -8
  4. package/README.fr.md +0 -8
  5. package/README.hi.md +0 -8
  6. package/README.ja.md +0 -8
  7. package/README.ko.md +0 -8
  8. package/README.md +54 -26
  9. package/README.pt-BR.md +0 -8
  10. package/README.ru.md +0 -8
  11. package/README.zh-CN.md +0 -8
  12. package/dist/commonjs/components/ConsoleLogCard.js +32 -26
  13. package/dist/commonjs/components/ErrorBoundary.js +1 -1
  14. package/dist/commonjs/components/Inspector/ConsoleTab.js +19 -14
  15. package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +4 -4
  16. package/dist/commonjs/components/Inspector/InspectorHeader.js +73 -65
  17. package/dist/commonjs/components/Inspector/MainScreen.js +9 -6
  18. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +187 -90
  19. package/dist/commonjs/components/Inspector/NetworkDetail.js +11 -8
  20. package/dist/commonjs/components/Inspector/NetworkTab.js +33 -31
  21. package/dist/commonjs/components/Inspector/PerformanceTab.d.ts +2 -0
  22. package/dist/commonjs/components/Inspector/PerformanceTab.js +652 -0
  23. package/dist/commonjs/components/Inspector/SettingsPanel.js +346 -245
  24. package/dist/commonjs/components/Inspector/TabBar.js +17 -16
  25. package/dist/commonjs/components/LogCard.js +11 -8
  26. package/dist/commonjs/components/ModuleErrorBoundary.js +1 -1
  27. package/dist/commonjs/components/NetworkIcons.d.ts +9 -0
  28. package/dist/commonjs/components/NetworkIcons.js +51 -6
  29. package/dist/commonjs/constants/index.d.ts +1 -0
  30. package/dist/commonjs/constants/index.js +1 -1
  31. package/dist/commonjs/constants/version.d.ts +1 -1
  32. package/dist/commonjs/constants/version.js +1 -1
  33. package/dist/commonjs/customHooks/crashHandler.d.ts +9 -1
  34. package/dist/commonjs/customHooks/crashHandler.js +4 -4
  35. package/dist/commonjs/helpers/index.d.ts +3 -0
  36. package/dist/commonjs/helpers/index.js +8 -6
  37. package/dist/commonjs/helpers/performanceSampler.d.ts +88 -0
  38. package/dist/commonjs/helpers/performanceSampler.js +1 -0
  39. package/dist/commonjs/helpers/remoteConfig.d.ts +6 -0
  40. package/dist/commonjs/helpers/remoteConfig.js +1 -1
  41. package/dist/commonjs/helpers/telemetry.js +1 -1
  42. package/dist/commonjs/i18n/locales/ar.json +1 -1
  43. package/dist/commonjs/i18n/locales/bn.json +1 -1
  44. package/dist/commonjs/i18n/locales/de.json +1 -1
  45. package/dist/commonjs/i18n/locales/en.json +1 -1
  46. package/dist/commonjs/i18n/locales/es.json +1 -1
  47. package/dist/commonjs/i18n/locales/fr.json +1 -1
  48. package/dist/commonjs/i18n/locales/gu.json +1 -1
  49. package/dist/commonjs/i18n/locales/hi.json +1 -1
  50. package/dist/commonjs/i18n/locales/id.json +1 -1
  51. package/dist/commonjs/i18n/locales/it.json +1 -1
  52. package/dist/commonjs/i18n/locales/ja.json +1 -1
  53. package/dist/commonjs/i18n/locales/kn.json +1 -1
  54. package/dist/commonjs/i18n/locales/ko.json +1 -1
  55. package/dist/commonjs/i18n/locales/ml.json +1 -1
  56. package/dist/commonjs/i18n/locales/mr.json +1 -1
  57. package/dist/commonjs/i18n/locales/nl.json +1 -1
  58. package/dist/commonjs/i18n/locales/pa.json +1 -1
  59. package/dist/commonjs/i18n/locales/pl.json +1 -1
  60. package/dist/commonjs/i18n/locales/pt.json +1 -1
  61. package/dist/commonjs/i18n/locales/ru.json +1 -1
  62. package/dist/commonjs/i18n/locales/ta.json +1 -1
  63. package/dist/commonjs/i18n/locales/te.json +1 -1
  64. package/dist/commonjs/i18n/locales/tr.json +1 -1
  65. package/dist/commonjs/i18n/locales/vi.json +1 -1
  66. package/dist/commonjs/i18n/locales/zh.json +1 -1
  67. package/dist/commonjs/index.d.ts +4 -2
  68. package/dist/commonjs/index.js +3 -3
  69. package/dist/commonjs/styles/index.js +1 -1
  70. package/dist/commonjs/types/enums.d.ts +1 -0
  71. package/dist/commonjs/types/enums.js +1 -1
  72. package/dist/commonjs/types/interfaces.d.ts +28 -0
  73. package/dist/esm/components/ConsoleLogCard.js +67 -61
  74. package/dist/esm/components/ErrorBoundary.js +10 -10
  75. package/dist/esm/components/Inspector/ConsoleTab.js +33 -28
  76. package/dist/esm/components/Inspector/FloatingCaptureWidget.js +22 -22
  77. package/dist/esm/components/Inspector/InspectorHeader.js +194 -186
  78. package/dist/esm/components/Inspector/MainScreen.js +61 -58
  79. package/dist/esm/components/Inspector/MediaGalleryTab.js +254 -157
  80. package/dist/esm/components/Inspector/NetworkDetail.js +62 -59
  81. package/dist/esm/components/Inspector/NetworkTab.js +39 -37
  82. package/dist/esm/components/Inspector/PerformanceTab.d.ts +2 -0
  83. package/dist/esm/components/Inspector/PerformanceTab.js +652 -0
  84. package/dist/esm/components/Inspector/SettingsPanel.js +407 -306
  85. package/dist/esm/components/Inspector/TabBar.js +4 -3
  86. package/dist/esm/components/LogCard.js +37 -34
  87. package/dist/esm/components/ModuleErrorBoundary.js +1 -1
  88. package/dist/esm/components/NetworkIcons.d.ts +9 -0
  89. package/dist/esm/components/NetworkIcons.js +48 -3
  90. package/dist/esm/constants/index.d.ts +1 -0
  91. package/dist/esm/constants/index.js +1 -1
  92. package/dist/esm/constants/version.d.ts +1 -1
  93. package/dist/esm/constants/version.js +1 -1
  94. package/dist/esm/customHooks/crashHandler.d.ts +9 -1
  95. package/dist/esm/customHooks/crashHandler.js +6 -6
  96. package/dist/esm/helpers/index.d.ts +3 -0
  97. package/dist/esm/helpers/index.js +8 -6
  98. package/dist/esm/helpers/performanceSampler.d.ts +88 -0
  99. package/dist/esm/helpers/performanceSampler.js +1 -0
  100. package/dist/esm/helpers/remoteConfig.d.ts +6 -0
  101. package/dist/esm/helpers/remoteConfig.js +1 -1
  102. package/dist/esm/helpers/telemetry.js +1 -1
  103. package/dist/esm/i18n/locales/ar.json +1 -1
  104. package/dist/esm/i18n/locales/bn.json +1 -1
  105. package/dist/esm/i18n/locales/de.json +1 -1
  106. package/dist/esm/i18n/locales/en.json +1 -1
  107. package/dist/esm/i18n/locales/es.json +1 -1
  108. package/dist/esm/i18n/locales/fr.json +1 -1
  109. package/dist/esm/i18n/locales/gu.json +1 -1
  110. package/dist/esm/i18n/locales/hi.json +1 -1
  111. package/dist/esm/i18n/locales/id.json +1 -1
  112. package/dist/esm/i18n/locales/it.json +1 -1
  113. package/dist/esm/i18n/locales/ja.json +1 -1
  114. package/dist/esm/i18n/locales/kn.json +1 -1
  115. package/dist/esm/i18n/locales/ko.json +1 -1
  116. package/dist/esm/i18n/locales/ml.json +1 -1
  117. package/dist/esm/i18n/locales/mr.json +1 -1
  118. package/dist/esm/i18n/locales/nl.json +1 -1
  119. package/dist/esm/i18n/locales/pa.json +1 -1
  120. package/dist/esm/i18n/locales/pl.json +1 -1
  121. package/dist/esm/i18n/locales/pt.json +1 -1
  122. package/dist/esm/i18n/locales/ru.json +1 -1
  123. package/dist/esm/i18n/locales/ta.json +1 -1
  124. package/dist/esm/i18n/locales/te.json +1 -1
  125. package/dist/esm/i18n/locales/tr.json +1 -1
  126. package/dist/esm/i18n/locales/vi.json +1 -1
  127. package/dist/esm/i18n/locales/zh.json +1 -1
  128. package/dist/esm/index.d.ts +4 -2
  129. package/dist/esm/index.js +8 -8
  130. package/dist/esm/styles/index.js +1 -1
  131. package/dist/esm/types/enums.d.ts +1 -0
  132. package/dist/esm/types/enums.js +1 -1
  133. package/dist/esm/types/interfaces.d.ts +28 -0
  134. package/package.json +24 -1
@@ -1,49 +1,49 @@
1
- import re from"react";import{useTranslation as ae}from"../../i18n";import{Alert as le,Image as Te,Linking as $,Pressable as P,ScrollView as Ce,Text as C,TextInput as L,View as T}from"react-native";import{animateNextLayout as Se,useInspector as Re}from"./InspectorContext";import K from"../TouchableScale";import Ve from"../SegmentedTabs";import De from"../MetaAccordion";import J from"../HeadersSection";import Be from"../SourcePageCard";import _ from"../SectionHeader";import G from"../JsonViewer";import Q from"../DiffViewer";import O from"../CopyButton";import Ie from"../ShareButton";import o from"../../styles";import{AppColors as t}from"../../styles/AppColors";import{AppFonts as R}from"../../styles/AppFonts";import{METHOD_COLORS as X}from"../../constants";import{getStatusColor as z,getSize as Y,formatDateTime as He,getFetchCommand as $e,getCurlCommand as qe}from"../../helpers";import{shareApiReport as Pe}from"../../helpers/shareFormatter";import{FailIcon as We,StatusIcon as Le,HeadersIcon as Oe,RequestIcon as Fe,ResponseIcon as Ue,DownloadIcon as Ae,ClearIcon as F,SizeIcon as Ee,ExternalLinkIcon as Me,ClockIcon as Ne}from"../NetworkIcons";const Ke=re.memo(()=>{const{t:b}=ae(),{selected:e,detailDisplayUrl:S,apiDetailActiveTab:D,setApiDetailActiveTab:Z,detailSearch:k,setDetailSearch:V,reqExpanded:B,setReqExpanded:U,resExpanded:I,setResExpanded:A,showReqDiff:v,setShowReqDiff:ee,showResDiff:W,setShowResDiff:te,prevRequestData:E,prevResponseData:M,logRouteMapRef:oe}=Re(),N=()=>{le.alert(b("common.openInBrowser")||"Open in Browser",`${b("common.openInBrowserPrompt")||"Are you sure you want to open this URL in your external browser?"}
1
+ import ae from"react";import{useTranslation as le}from"../../i18n";import{Alert as ne,Image as Te,Linking as $,Pressable as L,ScrollView as Ce,Text as S,TextInput as O,View as T}from"react-native";import{animateNextLayout as ke,useInspector as Se}from"./InspectorContext";import F from"../TouchableScale";import Re from"../SegmentedTabs";import Ve from"../MetaAccordion";import J from"../HeadersSection";import De from"../SourcePageCard";import _ from"../SectionHeader";import G from"../JsonViewer";import Q from"../DiffViewer";import U from"../CopyButton";import Be from"../ShareButton";import o from"../../styles";import{AppColors as t}from"../../styles/AppColors";import{AppFonts as V}from"../../styles/AppFonts";import{METHOD_COLORS as X}from"../../constants";import{getStatusColor as B,getSize as Y,formatDateTime as Ie,getFetchCommand as Pe,getCurlCommand as He,openWithPostman as Z}from"../../helpers";import{shareApiReport as $e}from"../../helpers/shareFormatter";import{FailIcon as Le,StatusIcon as We,HeadersIcon as Oe,RequestIcon as Fe,ResponseIcon as Ue,DownloadIcon as Ae,ClearIcon as A,SizeIcon as Ee,ExternalLinkIcon as Me,PostmanIcon as Ne,ClockIcon as Ke}from"../NetworkIcons";const je=ae.memo(()=>{const{t:C}=le(),{selected:e,detailDisplayUrl:R,apiDetailActiveTab:D,setApiDetailActiveTab:ee,detailSearch:k,setDetailSearch:z,reqExpanded:I,setReqExpanded:E,resExpanded:P,setResExpanded:M,showReqDiff:W,setShowReqDiff:te,showResDiff:v,setShowResDiff:oe,prevRequestData:N,prevResponseData:K,logRouteMapRef:re}=Se(),j=()=>{ne.alert(C("common.openInBrowser")||"Open URL",`${C("common.openInBrowserPrompt")||"Choose how you want to open or inspect this URL:"}
2
2
 
3
- ${S}`,[{text:b("common.cancel")||"Cancel",style:"cancel"},{text:b("common.open")||"Open",onPress:()=>{$.canOpenURL(S).then(r=>{r?$.openURL(S):$.openURL(S).catch(()=>{})}).catch(()=>{})}}])};return e?<T style={{flex:1}}>
3
+ ${R}`,[{text:C("common.cancel")||"Cancel",style:"cancel"},{text:"Open in Postman",onPress:()=>{e&&Z(e)}},{text:C("common.open")||"Browser",onPress:()=>{$.canOpenURL(R).then(r=>{r?$.openURL(R):$.openURL(R).catch(()=>{})}).catch(()=>{})}}])};return e?<T style={{flex:1}}>
4
4
 
5
5
  <T style={{paddingHorizontal:8,paddingTop:4}}>
6
6
  <T style={o.detailInfoBar}>
7
- {(()=>{const r=S.indexOf("://"),H=r!==-1?S.substring(0,r+3):"";return<>
7
+ {(()=>{const r=R.indexOf("://"),H=r!==-1?R.substring(0,r+3):"";return<>
8
8
 
9
9
  <T style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:6,paddingBottom:8,borderBottomWidth:1,borderBottomColor:t.dividerColor}}>
10
10
  <T style={{flexDirection:"row",alignItems:"center",gap:5,flexWrap:"wrap",flex:1}}>
11
11
 
12
12
  <T style={[o.methodBadge,{backgroundColor:X[e.method]??X.ALL,paddingHorizontal:8,paddingVertical:3.5,borderRadius:6}]}>
13
- <C style={[o.methodBadgeText,{color:t.white,fontSize:10.5,fontFamily:R.interBold}]}>
13
+ <S style={[o.methodBadgeText,{color:t.white,fontSize:10.5,fontFamily:V.interBold}]}>
14
14
  {e.method}
15
- </C>
15
+ </S>
16
16
  </T>
17
17
 
18
18
 
19
19
  {e.client&&<T style={[o.chip,{backgroundColor:e.client==="axios"?`${t.purple}14`:e.client==="apollo"||e.client==="graphql"?`${t.pink500}14`:e.client==="xhr"?`${t.amber500}14`:`${t.sky500}14`,borderColor:e.client==="axios"?`${t.purple}30`:e.client==="apollo"||e.client==="graphql"?`${t.pink500}30`:e.client==="xhr"?`${t.amber500}30`:`${t.sky500}30`,paddingHorizontal:6,paddingVertical:3,borderRadius:6}]}>
20
- <C style={[o.chipText,{fontFamily:R.interBold,fontSize:9.5,color:e.client==="axios"?t.purple:e.client==="apollo"||e.client==="graphql"?t.pink500:e.client==="xhr"?t.amber700:t.sky600}]}>
20
+ <S style={[o.chipText,{fontFamily:V.interBold,fontSize:9.5,color:e.client==="axios"?t.purple:e.client==="apollo"||e.client==="graphql"?t.pink500:e.client==="xhr"?t.amber700:t.sky600}]}>
21
21
  {e.client.toUpperCase()}
22
- </C>
22
+ </S>
23
23
  </T>}
24
24
 
25
25
 
26
- {e.status!=null&&<T style={[o.chip,{backgroundColor:e.status===0?`${t.errorColor}18`:`${z(e.status)}18`,borderColor:e.status===0?`${t.errorColor}40`:`${z(e.status)}40`,paddingHorizontal:7,paddingVertical:3,borderRadius:6}]}>
27
- {e.status===0?<We size={8}color={t.errorColor}/>:<T style={{width:6,height:6,borderRadius:3,backgroundColor:z(e.status)}}/>}
28
- <C style={[o.chipText,{color:e.status===0?t.errorColor:z(e.status),fontFamily:R.interBold,fontSize:10.5}]}>
26
+ {e.status!=null&&<T style={[o.chip,{backgroundColor:e.status===0?`${t.errorColor}18`:`${B(e.status)}18`,borderColor:e.status===0?`${t.errorColor}40`:`${B(e.status)}40`,paddingHorizontal:7,paddingVertical:3,borderRadius:6}]}>
27
+ {e.status===0?<Le size={8}color={t.errorColor}/>:<T style={{width:6,height:6,borderRadius:3,backgroundColor:B(e.status)}}/>}
28
+ <S style={[o.chipText,{color:e.status===0?t.errorColor:B(e.status),fontFamily:V.interBold,fontSize:10.5}]}>
29
29
  {e.status===0?"Failed":`${e.status} ${e.status===200?"OK":""}`}
30
- </C>
30
+ </S>
31
31
  </T>}
32
32
 
33
33
 
34
34
  {e.duration!=null&&<T style={[o.chip,{backgroundColor:`${t.brandPurple}14`,borderColor:`${t.brandPurple}30`,paddingHorizontal:7,paddingVertical:3,borderRadius:6,gap:4}]}>
35
- <Ne color={t.brandPurple}size={10}/>
36
- <C style={[o.chipText,{color:t.brandPurple,fontFamily:R.interBold,fontSize:10.5}]}>
35
+ <Ke color={t.brandPurple}size={10}/>
36
+ <S style={[o.chipText,{color:t.brandPurple,fontFamily:V.interBold,fontSize:10.5}]}>
37
37
  {e.duration}ms
38
- </C>
38
+ </S>
39
39
  </T>}
40
40
 
41
41
 
42
42
  {e.response!=null&&<T style={[o.chip,{backgroundColor:`${t.sky600}14`,borderColor:`${t.sky600}30`,paddingHorizontal:7,paddingVertical:3,borderRadius:6,gap:4}]}>
43
43
  <Ee color={t.sky600}size={10}/>
44
- <C style={[o.chipText,{color:t.sky600,fontFamily:R.interBold,fontSize:10.5}]}>
44
+ <S style={[o.chipText,{color:t.sky600,fontFamily:V.interBold,fontSize:10.5}]}>
45
45
  {Y(e.response)}
46
- </C>
46
+ </S>
47
47
  </T>}
48
48
  </T>
49
49
  </T>
@@ -54,64 +54,67 @@ ${S}`,[{text:b("common.cancel")||"Cancel",style:"cancel"},{text:b("common.open")
54
54
  <T style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",flexWrap:"nowrap",gap:6}}>
55
55
  <T style={{flexDirection:"row",alignItems:"center",gap:6,flexShrink:1,minWidth:0}}>
56
56
  {H?<T style={{backgroundColor:H.startsWith("https")?`${t.green600}18`:`${t.amber500}18`,paddingHorizontal:6,paddingVertical:2,borderRadius:4}}>
57
- <C style={{fontFamily:R.interBold,fontSize:9,color:H.startsWith("https")?t.green600:t.amber500}}>
57
+ <S style={{fontFamily:V.interBold,fontSize:9,color:H.startsWith("https")?t.green600:t.amber500}}>
58
58
  {H.replace("://","").toUpperCase()}
59
- </C>
59
+ </S>
60
60
  </T>:null}
61
61
 
62
- <C style={{fontFamily:R.interBold,fontSize:10,color:t.grayTextWeak,letterSpacing:.4,textTransform:"uppercase"}}numberOfLines={1}>
62
+ <S style={{fontFamily:V.interBold,fontSize:10,color:t.grayTextWeak,letterSpacing:.4,textTransform:"uppercase"}}numberOfLines={1}>
63
63
  ENDPOINT URL
64
- </C>
64
+ </S>
65
65
  </T>
66
66
 
67
67
 
68
68
  <T style={{flexDirection:"row",alignItems:"center",gap:5,flexShrink:0}}>
69
- <O value={qe(e)}label="cURL"iconType="terminal"/>
70
- <Ie onShare={()=>Pe(e)}/>
71
- <O value={$e(e)}label="fetch()"iconType="fetch"/>
72
- <O value={S}label="URL"iconType="copy"/>
73
- <K style={[o.iconSquareBtn,{backgroundColor:`${t.sky600}15`,borderColor:`${t.sky600}35`}]}onPress={N}hitSlop={10}accessibilityLabel="Open in Browser">
69
+ <U value={He(e)}label="cURL"iconType="terminal"/>
70
+ <Be onShare={()=>$e(e)}/>
71
+ <U value={Pe(e)}label="fetch()"iconType="fetch"/>
72
+ <U value={R}label="URL"iconType="copy"/>
73
+ <F style={[o.iconSquareBtn,{backgroundColor:"rgba(255, 108, 55, 0.12)",borderColor:"rgba(255, 108, 55, 0.35)"}]}onPress={()=>Z(e)}hitSlop={10}accessibilityLabel="Open in Postman">
74
+ <Ne color="#FF6C37"size={13}/>
75
+ </F>
76
+ <F style={[o.iconSquareBtn,{backgroundColor:`${t.sky600}15`,borderColor:`${t.sky600}35`}]}onPress={j}hitSlop={10}accessibilityLabel="Open in Browser">
74
77
  <Me color={t.sky600}size={13}/>
75
- </K>
78
+ </F>
76
79
  </T>
77
80
  </T>
78
81
 
79
82
 
80
- <P onPress={N}>
81
- <C selectable={!0}style={{fontFamily:R.interMedium,fontSize:12.5,color:t.skyBlue,textDecorationLine:"underline",lineHeight:18}}>
82
- {S}
83
- </C>
84
- </P>
83
+ <L onPress={j}>
84
+ <S selectable={!0}style={{fontFamily:V.interMedium,fontSize:12.5,color:t.skyBlue,textDecorationLine:"underline",lineHeight:18}}>
85
+ {R}
86
+ </S>
87
+ </L>
85
88
  </T>
86
89
  </>})()}
87
90
  </T>
88
91
  </T>
89
92
 
90
93
 
91
- <Ve tabs={[{key:"metadata",label:b("network.detailTabs.metadata"),icon:r=><Le color={r?t.white:t.grayText}/>},{key:"headers",label:b("network.detailTabs.headers"),icon:r=><Oe color={r?t.white:t.grayText}/>},...e.request!=null?[{key:"request",label:b("network.detailTabs.request"),icon:r=><Fe color={r?t.white:t.grayText}/>}]:[],{key:"response",label:b("network.detailTabs.response"),icon:r=><Ue color={r?t.white:t.grayText}/>}]}activeKey={D}onChange={r=>{Se(),Z(r)}}style={{marginHorizontal:6,marginBottom:10,marginTop:6}}/>
94
+ <Re tabs={[{key:"metadata",label:C("network.detailTabs.metadata"),icon:r=><We color={r?t.white:t.grayText}/>},{key:"headers",label:C("network.detailTabs.headers"),icon:r=><Oe color={r?t.white:t.grayText}/>},...e.request!=null?[{key:"request",label:C("network.detailTabs.request"),icon:r=><Fe color={r?t.white:t.grayText}/>}]:[],{key:"response",label:C("network.detailTabs.response"),icon:r=><Ue color={r?t.white:t.grayText}/>}]}activeKey={D}onChange={r=>{ke(),ee(r)}}style={{marginHorizontal:6,marginBottom:10,marginTop:6}}/>
92
95
 
93
96
 
94
97
  <Ce style={o.detailScroll}contentContainerStyle={{paddingHorizontal:6,paddingBottom:24}}showsVerticalScrollIndicator={!0}>
95
98
  {D==="metadata"&&<>
96
- <De status={e.status}statusColor={z(e.status)}duration={e.duration}size={Y(e.response)}triggeredAt={He(e.startTime)}method={e.method}contentType={e.responseHeaders?.["content-type"]||e.responseHeaders?.["Content-Type"]}url={e.url}/>
99
+ <Ve status={e.status}statusColor={B(e.status)}duration={e.duration}size={Y(e.response)}triggeredAt={Ie(e.startTime)}method={e.method}contentType={e.responseHeaders?.["content-type"]||e.responseHeaders?.["Content-Type"]}url={e.url}/>
97
100
 
98
- {(()=>{const r=oe.current.get(e.id)||e?.routeInfo;return!r||!r.path||r.path==="Navigators"?null:<Be routeInfo={r}/>})()}
101
+ {(()=>{const r=re.current.get(e.id)||e?.routeInfo;return!r||!r.path||r.path==="Navigators"?null:<De routeInfo={r}/>})()}
99
102
 
100
103
  {(e.responseHeaders?.["content-type"]||e.responseHeaders?.["Content-Type"])?.includes("image/")?<T style={o.imagePreviewWrapper}>
101
104
  <Te source={{uri:e.url}}style={o.imagePreview}resizeMode="contain"/>
102
- <K style={o.imageDownloadBtn}onPress={()=>$.openURL(e.url)}hitSlop={10}>
105
+ <F style={o.imageDownloadBtn}onPress={()=>$.openURL(e.url)}hitSlop={10}>
103
106
  <Ae color={t.purple}size={18}/>
104
- </K>
107
+ </F>
105
108
  </T>:null}
106
109
  </>}
107
110
 
108
111
  {D==="headers"&&<>
109
112
  <T style={o.detailSearchRow}>
110
113
  <T style={o.detailSearchBox}>
111
- <L placeholder={b("network.searchHeaders")}placeholderTextColor={t.grayTextWeak}value={k}onChangeText={V}style={o.detailSearchInput}autoCorrect={!1}autoCapitalize="none"/>
112
- {k.length>0&&<P onPress={()=>V("")}hitSlop={10}style={{padding:8}}>
113
- <F color={t.grayTextWeak}size={14}/>
114
- </P>}
114
+ <O placeholder={C("network.searchHeaders")}placeholderTextColor={t.grayTextWeak}value={k}onChangeText={z}style={o.detailSearchInput}autoCorrect={!1}autoCapitalize="none"/>
115
+ {k.length>0&&<L onPress={()=>z("")}hitSlop={10}style={{padding:8}}>
116
+ <A color={t.grayTextWeak}size={14}/>
117
+ </L>}
115
118
  </T>
116
119
  </T>
117
120
 
@@ -122,19 +125,19 @@ ${S}`,[{text:b("common.cancel")||"Cancel",style:"cancel"},{text:b("common.open")
122
125
  {D==="request"&&e.request!=null&&<>
123
126
  <T style={o.detailSearchRow}>
124
127
  <T style={o.detailSearchBox}>
125
- <L placeholder={b("network.searchRequest")}placeholderTextColor={t.grayTextWeak}value={k}onChangeText={V}style={o.detailSearchInput}autoCorrect={!1}autoCapitalize="none"/>
126
- {k.length>0&&<P onPress={()=>V("")}hitSlop={10}style={{padding:8}}>
127
- <F color={t.grayTextWeak}size={14}/>
128
- </P>}
128
+ <O placeholder={C("network.searchRequest")}placeholderTextColor={t.grayTextWeak}value={k}onChangeText={z}style={o.detailSearchInput}autoCorrect={!1}autoCapitalize="none"/>
129
+ {k.length>0&&<L onPress={()=>z("")}hitSlop={10}style={{padding:8}}>
130
+ <A color={t.grayTextWeak}size={14}/>
131
+ </L>}
129
132
  </T>
130
133
  </T>
131
134
 
132
135
  <T style={o.sectionContainer}>
133
- <_ title={b("network.requestTitle")}value={e.request}expanded={B}onToggleExpand={()=>U(r=>!r)}showDiff={E!=null}isDiffing={v}onToggleDiff={()=>{ee(r=>!r),!B&&!v&&U(!0)}}/>
134
- {v?<Q oldData={E}newData={e.request}forceOpen={B}/>:B?<G data={e.request}search={k}/>:<T style={o.codeBlock}>
135
- <C style={[o.codeText,{color:t.grayTextWeak}]}>
136
- {b("network.bodyHidden")}
137
- </C>
136
+ <_ title={C("network.requestTitle")}value={e.request}expanded={I}onToggleExpand={()=>E(r=>!r)}showDiff={N!=null}isDiffing={W}onToggleDiff={()=>{te(r=>!r),!I&&!W&&E(!0)}}/>
137
+ {W?<Q oldData={N}newData={e.request}forceOpen={I}/>:I?<G data={e.request}search={k}/>:<T style={o.codeBlock}>
138
+ <S style={[o.codeText,{color:t.grayTextWeak}]}>
139
+ {C("network.bodyHidden")}
140
+ </S>
138
141
  </T>}
139
142
  </T>
140
143
  </>}
@@ -142,21 +145,21 @@ ${S}`,[{text:b("common.cancel")||"Cancel",style:"cancel"},{text:b("common.open")
142
145
  {D==="response"&&<>
143
146
  <T style={o.detailSearchRow}>
144
147
  <T style={o.detailSearchBox}>
145
- <L placeholder={b("network.searchResponse")}placeholderTextColor={t.grayTextWeak}value={k}onChangeText={V}style={o.detailSearchInput}autoCorrect={!1}autoCapitalize="none"/>
146
- {k.length>0&&<P onPress={()=>V("")}hitSlop={10}style={{padding:8}}>
147
- <F color={t.grayTextWeak}size={14}/>
148
- </P>}
148
+ <O placeholder={C("network.searchResponse")}placeholderTextColor={t.grayTextWeak}value={k}onChangeText={z}style={o.detailSearchInput}autoCorrect={!1}autoCapitalize="none"/>
149
+ {k.length>0&&<L onPress={()=>z("")}hitSlop={10}style={{padding:8}}>
150
+ <A color={t.grayTextWeak}size={14}/>
151
+ </L>}
149
152
  </T>
150
153
  </T>
151
154
 
152
155
  <T style={o.sectionContainer}>
153
- <_ title={b("network.responseTitle")}value={e.response}expanded={I}onToggleExpand={()=>A(r=>!r)}showDiff={M!=null}isDiffing={W}onToggleDiff={()=>{te(r=>!r),!I&&!W&&A(!0)}}/>
154
- {W?<Q oldData={M}newData={e.response}forceOpen={I}/>:I?<G data={e.response}search={k}wrap/>:<T style={o.codeBlock}>
155
- <C style={[o.codeText,{color:t.grayTextWeak}]}>
156
- {b("network.bodyHidden")}
157
- </C>
156
+ <_ title={C("network.responseTitle")}value={e.response}expanded={P}onToggleExpand={()=>M(r=>!r)}showDiff={K!=null}isDiffing={v}onToggleDiff={()=>{oe(r=>!r),!P&&!v&&M(!0)}}/>
157
+ {v?<Q oldData={K}newData={e.response}forceOpen={P}/>:P?<G data={e.response}search={k}wrap/>:<T style={o.codeBlock}>
158
+ <S style={[o.codeText,{color:t.grayTextWeak}]}>
159
+ {C("network.bodyHidden")}
160
+ </S>
158
161
  </T>}
159
162
  </T>
160
163
  </>}
161
164
  </Ce>
162
- </T>:null});export default Ke;
165
+ </T>:null});export default je;
@@ -1,40 +1,40 @@
1
- import _,{useCallback as de,useMemo as q,useRef as He}from"react";import{FlatList as We,Pressable as Ge,ScrollView as _e,Text as I,TextInput as Qe,View as C}from"react-native";import{useInspector as Ue}from"./InspectorContext";import M from"../TouchableScale";import Ie from"../AnimatedEntrance";import Ke from"../DomainHeader";import Xe from"../LogCard";import Je from"../EmptyState";import Ye from"../EndOfListFooter";import Ze from"./NetworkFilterModal";import S from"../../styles";import{AppColors as o}from"../../styles/AppColors";import{AppFonts as k}from"../../styles/AppFonts";import{METHOD_COLORS as Ve}from"../../constants";import{useTranslation as eo}from"../../i18n";import{SearchIcon as Co,ClearIcon as So,TrashIcon as To,SortArrowIcon as Io,FilterIcon as Vo,ChevronIcon as Fo,CheckIcon as Ro,CircleCheckIcon as Lo,CircleXIcon as Bo,LayersIcon as Fe,ClockIcon as Po,RequestIcon as Eo,ResponseIcon as $o,AtomIcon as Do}from"../NetworkIcons";const Mo=_.memo(()=>{const{groupedData:j,loadMoreSection:ce,search:R,setSearch:Q,setSearchScope:ue,quickFilter:U,setQuickFilter:ae,handleDelete:Re,isGroupByPageEnabled:F,setIsGroupByPageEnabled:Le,selectedLogs:K,sortOrder:Be,setSortOrder:X,statusFilters:L,setStatusFilters:H,methodFilters:B,setMethodFilters:v,latencyFilter:N,setLatencyFilter:J,protocolFilter:O,setProtocolFilter:Y,networkSortBy:A,setNetworkSortBy:Z,filteredLogs:E,logs:W,toggleSectionFilter:ge,toggleSectionCollapse:pe,minStart:me,totalRange:he,newLogIds:ye,toggleSelect:fe,setSelected:we,maxNetworkLogs:ie}=Ue(),{t:ee}=eo(),Pe=He(null),[Ee,Ce]=_.useState(!1),[Se,be]=_.useState(!1),[oe,Te]=_.useState(ie||50);_.useEffect(()=>{Te(ie||50)},[R,U,ie]);const se=q(()=>F?j:j.slice(0,oe),[F,j,oe]),$e=de(e=>e?.id?String(e.id):"",[]),$=q(()=>L.size>0&&!L.has("all")||B.size>0&&!B.has("all")||N!=="all"||O!=="all"||A!=="time_desc",[L,B,N,O,A]),De=q(()=>{let e=0;return L.size>0&&!L.has("all")&&(e+=L.size),B.size>0&&!B.has("all")&&(e+=B.size),N!=="all"&&e++,O!=="all"&&e++,A!=="time_desc"&&e++,e},[L,B,N,O,A]),Me=q(()=>({statusCodes:L.size>0?new Set(L):new Set(["all"]),methods:B.size>0?new Set(B):new Set(["all"]),latency:N,protocol:O,sortBy:A}),[L,B,N,O,A]),Ne=de(e=>{e.statusCodes.has("all")||e.statusCodes.size===0?H(new Set):H(new Set(e.statusCodes)),e.methods.has("all")||e.methods.size===0?v(new Set):v(new Set([...e.methods].map(T=>T))),J(e.latency||"all"),Y(e.protocol||"all"),Z(e.sortBy||"time_desc"),e.sortBy==="time_asc"?X("oldest"):X("newest")},[H,v,J,Y,Z,X]),P=q(()=>{let e=0,T=0,z=0,x=0,G=0,te=0;return W.forEach(V=>{const b=typeof V.status=="number"?V.status:parseInt(String(V.status),10);V.status===0||V.status==null||!isNaN(b)&&b>=400?e++:!isNaN(b)&&b>=200&&b<400&&T++,(V.duration||0)>=500&&z++;const re=(V.method||"").toUpperCase();re==="POST"&&x++,re==="GET"&&G++;const D=(V.url||"").toLowerCase(),le=(V.client||"").toLowerCase();(D.includes("graphql")||le.includes("graphql")||le.includes("apollo"))&&te++}),{all:W.length,errors:e,success:T,slow:z,post:x,get:G,graphql:te}},[W]),Oe=q(()=>[{id:"all",label:"All",count:P.all,color:o.purple},{id:"errors",label:"Errors",count:P.errors,color:o.errorColor},{id:"success",label:"2xx OK",count:P.success,color:o.greenColor},{id:"slow",label:"Slow >500ms",count:P.slow,color:o.warningIconGold},{id:"POST",label:"POST",count:P.post,color:Ve.POST||o.blue500},{id:"GET",label:"GET",count:P.get,color:Ve.GET||o.emerald500},{id:"graphql",label:"GraphQL",count:P.graphql,color:o.graphqlPink}],[P]),Ae=de(({item:e,index:T})=>{if(e.type==="header")return<Ie index={T}distance={8}>
2
- <Ke pageName={e.pageName}color={e.color}stats={e.stats}activeFilters={e.activeFilters}onToggleFilter={ge}isCollapsed={e.isCollapsed}onToggleCollapse={pe}isFirst={e.isFirst}timestamp={e.timestamp}/>
3
- </Ie>;if(e.type==="loadMore"){const{pageName:V,color:b,remainingCount:re,totalCount:D,loadedCount:le,loadMoreStep:ne,hasMore:qe}=e;return<C style={[S.treeNodeRow,S.treeNodeRowLast]}>
1
+ import G,{useCallback as ue,useMemo as M,useRef as qe}from"react";import{FlatList as We,Pressable as Ge,ScrollView as _e,Text as I,TextInput as Qe,View as C}from"react-native";import{useInspector as Ue}from"./InspectorContext";import N from"../TouchableScale";import Ie from"../AnimatedEntrance";import Ke from"../DomainHeader";import Xe from"../LogCard";import Je from"../EmptyState";import Ye from"../EndOfListFooter";import Ze from"./NetworkFilterModal";import S from"../../styles";import{AppColors as o}from"../../styles/AppColors";import{AppFonts as k}from"../../styles/AppFonts";import{METHOD_COLORS as Ve}from"../../constants";import{isUrlHidden as eo}from"../../helpers";import{useTranslation as oo}from"../../i18n";import{SearchIcon as Co,ClearIcon as So,TrashIcon as To,SortArrowIcon as Io,FilterIcon as Vo,ChevronIcon as Fo,CheckIcon as Ro,CircleCheckIcon as Lo,CircleXIcon as Bo,LayersIcon as Fe,ClockIcon as Po,RequestIcon as Eo,ResponseIcon as $o,AtomIcon as Do}from"../NetworkIcons";const Mo=G.memo(()=>{const{groupedData:_,loadMoreSection:ge,search:R,setSearch:j,setSearchScope:pe,quickFilter:Q,setQuickFilter:se,handleDelete:Re,isGroupByPageEnabled:F,setIsGroupByPageEnabled:Le,selectedLogs:U,sortOrder:Be,setSortOrder:K,statusFilters:L,setStatusFilters:q,methodFilters:B,setMethodFilters:v,latencyFilter:O,setLatencyFilter:X,protocolFilter:A,setProtocolFilter:J,networkSortBy:H,setNetworkSortBy:Y,filteredLogs:E,logs:Z,hiddenUrlPatterns:ee,toggleSectionFilter:me,toggleSectionCollapse:he,minStart:ye,totalRange:fe,newLogIds:we,toggleSelect:Ce,setSelected:Se,maxNetworkLogs:ne}=Ue(),{t:oe}=oo(),Pe=qe(null),[Ee,be]=G.useState(!1),[Te,ze]=G.useState(!1),[te,xe]=G.useState(ne||50);G.useEffect(()=>{xe(ne||50)},[R,Q,ne]);const de=M(()=>F?_:_.slice(0,te),[F,_,te]),$e=ue(e=>e?.id?String(e.id):"",[]),$=M(()=>L.size>0&&!L.has("all")||B.size>0&&!B.has("all")||O!=="all"||A!=="all"||H!=="time_desc",[L,B,O,A,H]),De=M(()=>{let e=0;return L.size>0&&!L.has("all")&&(e+=L.size),B.size>0&&!B.has("all")&&(e+=B.size),O!=="all"&&e++,A!=="all"&&e++,H!=="time_desc"&&e++,e},[L,B,O,A,H]),Me=M(()=>({statusCodes:L.size>0?new Set(L):new Set(["all"]),methods:B.size>0?new Set(B):new Set(["all"]),latency:O,protocol:A,sortBy:H}),[L,B,O,A,H]),Ne=ue(e=>{e.statusCodes.has("all")||e.statusCodes.size===0?q(new Set):q(new Set(e.statusCodes)),e.methods.has("all")||e.methods.size===0?v(new Set):v(new Set([...e.methods].map(T=>T))),X(e.latency||"all"),J(e.protocol||"all"),Y(e.sortBy||"time_desc"),e.sortBy==="time_asc"?K("oldest"):K("newest")},[q,v,X,J,Y,K]),re=M(()=>!ee||ee.length===0?Z:Z.filter(e=>!eo(e.url,ee)),[Z,ee]),P=M(()=>{let e=0,T=0,z=0,x=0,W=0,le=0;return re.forEach(V=>{const b=typeof V.status=="number"?V.status:parseInt(String(V.status),10);V.status===0||V.status==null||!isNaN(b)&&b>=400?e++:!isNaN(b)&&b>=200&&b<400&&T++,(V.duration||0)>=500&&z++;const ie=(V.method||"").toUpperCase();ie==="POST"&&x++,ie==="GET"&&W++;const D=(V.url||"").toLowerCase(),ae=(V.client||"").toLowerCase();(D.includes("graphql")||ae.includes("graphql")||ae.includes("apollo"))&&le++}),{all:re.length,errors:e,success:T,slow:z,post:x,get:W,graphql:le}},[re]),Oe=M(()=>[{id:"all",label:"All",count:P.all,color:o.purple},{id:"errors",label:"Errors",count:P.errors,color:o.errorColor},{id:"success",label:"2xx OK",count:P.success,color:o.greenColor},{id:"slow",label:"Slow >500ms",count:P.slow,color:o.warningIconGold},{id:"POST",label:"POST",count:P.post,color:Ve.POST||o.blue500},{id:"GET",label:"GET",count:P.get,color:Ve.GET||o.emerald500},{id:"graphql",label:"GraphQL",count:P.graphql,color:o.graphqlPink}],[P]),Ae=ue(({item:e,index:T})=>{if(e.type==="header")return<Ie index={T}distance={8}>
2
+ <Ke pageName={e.pageName}color={e.color}stats={e.stats}activeFilters={e.activeFilters}onToggleFilter={me}isCollapsed={e.isCollapsed}onToggleCollapse={he}isFirst={e.isFirst}timestamp={e.timestamp}/>
3
+ </Ie>;if(e.type==="loadMore"){const{pageName:V,color:b,remainingCount:ie,totalCount:D,loadedCount:ae,loadMoreStep:ce,hasMore:He}=e;return<C style={[S.treeNodeRow,S.treeNodeRowLast]}>
4
4
  <C style={S.treeLines}>
5
5
  <C style={[S.modernTreeLine,{borderColor:b},S.modernTreeLineLast]}/>
6
6
  </C>
7
7
  <C style={S.treeCardWrapper}>
8
- {qe?<M onPress={()=>ce(V,ne||10)}hitSlop={6}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:9,paddingHorizontal:12,marginVertical:3,marginRight:2,borderRadius:10,backgroundColor:`${b}14`,borderWidth:1.5,borderColor:`${b}40`,shadowColor:b,shadowOffset:{width:0,height:1.5},shadowOpacity:.1,shadowRadius:3,elevation:2}}>
8
+ {He?<N onPress={()=>ge(V,ce||10)}hitSlop={6}style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:9,paddingHorizontal:12,marginVertical:3,marginRight:2,borderRadius:10,backgroundColor:`${b}14`,borderWidth:1.5,borderColor:`${b}40`,shadowColor:b,shadowOffset:{width:0,height:1.5},shadowOpacity:.1,shadowRadius:3,elevation:2}}>
9
9
  <C style={{flexDirection:"row",alignItems:"center",gap:8}}>
10
10
  <C style={{width:22,height:22,borderRadius:11,backgroundColor:b,alignItems:"center",justifyContent:"center",shadowColor:b,shadowOffset:{width:0,height:1},shadowOpacity:.25,shadowRadius:2,elevation:1}}>
11
11
  <Fo color={o.white}size={9}direction="down"/>
12
12
  </C>
13
13
  <C>
14
14
  <I style={{fontFamily:k.interBold,fontSize:12,color:b}}>
15
- {ee("footer.loadMoreRequests",{count:ne,defaultValue:`Load ${ne} More Requests`})}
15
+ {oe("footer.loadMoreRequests",{count:ce,defaultValue:`Load ${ce} More Requests`})}
16
16
  </I>
17
17
  <I style={{fontFamily:k.interRegular,fontSize:9.5,color:o.grayTextWeak,marginTop:1}}>
18
- Showing {le} of {D} requests
18
+ Showing {ae} of {D} requests
19
19
  </I>
20
20
  </C>
21
21
  </C>
22
22
 
23
23
  <C style={{flexDirection:"row",alignItems:"center",backgroundColor:`${b}25`,paddingHorizontal:8,paddingVertical:4,borderRadius:8,borderWidth:1,borderColor:`${b}40`,gap:3}}>
24
24
  <I style={{fontFamily:k.interBold,fontSize:10.5,color:b}}>
25
- +{re}
25
+ +{ie}
26
26
  </I>
27
27
  <I style={{fontFamily:k.interRegular,fontSize:9,color:b}}>
28
28
  more
29
29
  </I>
30
30
  </C>
31
- </M>:<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:7,paddingHorizontal:11,marginVertical:3,marginRight:2,borderRadius:9,backgroundColor:`${b}0A`,borderWidth:1,borderColor:`${b}25`}}>
31
+ </N>:<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:7,paddingHorizontal:11,marginVertical:3,marginRight:2,borderRadius:9,backgroundColor:`${b}0A`,borderWidth:1,borderColor:`${b}25`}}>
32
32
  <C style={{flexDirection:"row",alignItems:"center",gap:7}}>
33
33
  <C style={{width:17,height:17,borderRadius:8.5,backgroundColor:`${b}25`,alignItems:"center",justifyContent:"center"}}>
34
34
  <Ro color={b}size={8}/>
35
35
  </C>
36
36
  <I style={{fontFamily:k.interMedium,fontSize:11,color:o.grayTextStrong}}>
37
- {ee("footer.allLoaded",{count:D,defaultValue:`All ${D} requests loaded`})}
37
+ {oe("footer.allLoaded",{count:D,defaultValue:`All ${D} requests loaded`})}
38
38
  </I>
39
39
  </C>
40
40
 
@@ -45,21 +45,21 @@ import _,{useCallback as de,useMemo as q,useRef as He}from"react";import{FlatLis
45
45
  </C>
46
46
  </C>}
47
47
  </C>
48
- </C>}const{log:z,isLast:x,color:G}=e,te=se.slice(0,T).filter(V=>!V.type).length;return<Ie index={T}distance={8}style={F?[S.treeNodeRow,x&&S.treeNodeRowLast]:{marginBottom:5,marginHorizontal:5}}>
48
+ </C>}const{log:z,isLast:x,color:W}=e,le=de.slice(0,T).filter(V=>!V.type).length;return<Ie index={T}distance={8}style={F?[S.treeNodeRow,x&&S.treeNodeRowLast]:{marginBottom:5,marginHorizontal:5}}>
49
49
  {F&&<C style={S.treeLines}>
50
- <C style={[S.modernTreeLine,{borderColor:G},x&&S.modernTreeLineLast]}/>
51
- {!x&&<C style={[S.modernTreeBranch,{borderColor:G}]}/>}
50
+ <C style={[S.modernTreeLine,{borderColor:W},x&&S.modernTreeLineLast]}/>
51
+ {!x&&<C style={[S.modernTreeBranch,{borderColor:W}]}/>}
52
52
  </C>}
53
53
  <C style={F?S.treeCardWrapper:{flex:1}}>
54
- <Xe testID={`inspector.network.item.${te}`}item={z}isSelected={K.has(z.id)}onToggleSelect={fe}onPress={()=>{we(z)}}timelineMinStart={me}timelineTotalRange={he}isNew={ye.has(z.id)}searchStr={R}/>
54
+ <Xe testID={`inspector.network.item.${le}`}item={z}isSelected={U.has(z.id)}onToggleSelect={Ce}onPress={()=>{Se(z)}}timelineMinStart={ye}timelineTotalRange={fe}isNew={we.has(z.id)}searchStr={R}/>
55
55
  </C>
56
- </Ie>},[se,F,me,he,ye,K,fe,R,ge,pe,ce,we,ee]);return<C style={{flex:1}}>
56
+ </Ie>},[de,F,ye,fe,we,U,Ce,R,me,he,ge,Se,oe]);return<C style={{flex:1}}>
57
57
  <C style={{marginTop:6}}>
58
58
 
59
59
  <C style={S.toolbarRow}>
60
- <C style={[S.searchContainer,Se&&{borderColor:o.purple,borderWidth:1.5}]}>
61
- <Co color={Se?o.purple:o.grayTextWeak}size={15}/>
62
- <Qe placeholder="Search URL, status, method, headers, body..."placeholderTextColor={o.grayTextWeak}value={R}onChangeText={Q}onFocus={()=>be(!0)}onBlur={()=>be(!1)}style={S.searchInput}autoCorrect={!1}autoCapitalize="none"/>
60
+ <C style={[S.searchContainer,Te&&{borderColor:o.purple,borderWidth:1.5}]}>
61
+ <Co color={Te?o.purple:o.grayTextWeak}size={15}/>
62
+ <Qe placeholder="Search URL, status, method, headers, body..."placeholderTextColor={o.grayTextWeak}value={R}onChangeText={j}onFocus={()=>ze(!0)}onBlur={()=>ze(!1)}style={S.searchInput}autoCorrect={!1}autoCapitalize="none"/>
63
63
 
64
64
  {R.length>0&&<C style={{flexDirection:"row",alignItems:"center",gap:4}}>
65
65
  <C style={{backgroundColor:`${o.purple}20`,borderRadius:10,paddingHorizontal:6,paddingVertical:1.5}}>
@@ -67,37 +67,37 @@ import _,{useCallback as de,useMemo as q,useRef as He}from"react";import{FlatLis
67
67
  {E.length}
68
68
  </I>
69
69
  </C>
70
- <Ge onPress={()=>Q("")}hitSlop={10}style={S.clearBtn}>
70
+ <Ge onPress={()=>j("")}hitSlop={10}style={S.clearBtn}>
71
71
  <So color={o.grayTextWeak}size={13}/>
72
72
  </Ge>
73
73
  </C>}
74
74
  </C>
75
75
 
76
76
  <C style={S.toolbarRight}>
77
- <M style={[S.toolbarBtn,{borderColor:`${o.errorColor}38`,backgroundColor:`${o.errorColor}0F`}]}onPress={Re}hitSlop={6}>
77
+ <N style={[S.toolbarBtn,{borderColor:`${o.errorColor}38`,backgroundColor:`${o.errorColor}0F`}]}onPress={Re}hitSlop={6}>
78
78
  <To color={o.errorColor}size={15}/>
79
- {K.size>0&&<C style={S.trashBadge}>
79
+ {U.size>0&&<C style={S.trashBadge}>
80
80
  <I style={S.trashBadgeText}>
81
- {K.size}
81
+ {U.size}
82
82
  </I>
83
83
  </C>}
84
- </M>
84
+ </N>
85
85
 
86
- <M style={[S.toolbarBtn,F&&{borderColor:o.purple,backgroundColor:`${o.purple}15`}]}onPress={()=>Le(e=>!e)}hitSlop={6}accessibilityLabel={F?"Page Accordion Grouping Enabled (Tap for Plain List)":"Plain List Enabled (Tap for Page Accordion)"}accessibilityRole="button">
86
+ <N style={[S.toolbarBtn,F&&{borderColor:o.purple,backgroundColor:`${o.purple}15`}]}onPress={()=>Le(e=>!e)}hitSlop={6}accessibilityLabel={F?"Page Accordion Grouping Enabled (Tap for Plain List)":"Plain List Enabled (Tap for Page Accordion)"}accessibilityRole="button">
87
87
  <Fe color={F?o.purple:o.grayTextStrong}size={16}/>
88
88
  {F&&<C style={S.activeFilterDot}/>}
89
- </M>
89
+ </N>
90
90
 
91
- <M style={S.toolbarBtn}onPress={()=>X(e=>e==="newest"?"oldest":"newest")}hitSlop={10}>
91
+ <N style={S.toolbarBtn}onPress={()=>K(e=>e==="newest"?"oldest":"newest")}hitSlop={10}>
92
92
  <Io direction={Be==="newest"?"down":"up"}color={o.grayTextStrong}size={18}/>
93
- </M>
93
+ </N>
94
94
  </C>
95
95
  </C>
96
96
 
97
97
 
98
98
  <C style={{flexDirection:"row",alignItems:"center",marginBottom:8,paddingHorizontal:8,gap:6}}>
99
99
  <_e horizontal showsHorizontalScrollIndicator={!1}style={{flex:1}}contentContainerStyle={{flexDirection:"row",alignItems:"center",gap:6,paddingRight:6}}>
100
- {Oe.map(e=>{const T=U===e.id,z=e.color||o.purple,x=T?o.white:z;return<M testID={`inspector.network.filter.${e.id.toLowerCase()}`}key={e.id}onPress={()=>{ae(T?"all":e.id)}}>
100
+ {Oe.map(e=>{const T=Q===e.id,z=e.color||o.purple,x=T?o.white:z;return<N testID={`inspector.network.filter.${e.id.toLowerCase()}`}key={e.id}onPress={()=>{se(T?"all":e.id)}}>
101
101
  <C style={{flexDirection:"row",alignItems:"center",paddingHorizontal:9,paddingVertical:4.5,borderRadius:8,backgroundColor:T?z:`${z}12`,borderWidth:1,borderColor:T?z:`${z}30`,gap:5}}>
102
102
  {e.id==="all"&&<Fe size={11}color={x}/>}
103
103
  {e.id==="errors"&&<Bo size={11}color={x}/>}
@@ -115,14 +115,14 @@ import _,{useCallback as de,useMemo as q,useRef as He}from"react";import{FlatLis
115
115
  </I>
116
116
  </C>
117
117
  </C>
118
- </M>})}
118
+ </N>})}
119
119
  </_e>
120
120
 
121
- <M onPress={()=>Ce(!0)}style={{flexShrink:0}}>
121
+ <N onPress={()=>be(!0)}style={{flexShrink:0}}>
122
122
  <C style={{flexDirection:"row",alignItems:"center",paddingHorizontal:10,paddingVertical:4.5,borderRadius:8,backgroundColor:$?`${o.purple}20`:o.grayBackground,borderWidth:1,borderColor:$?o.purple:o.grayBorderSecondary,gap:5,shadowColor:o.black,shadowOpacity:.04,shadowRadius:2,shadowOffset:{width:0,height:1},elevation:1}}>
123
123
  <Vo size={11}color={$?o.purple:o.grayText}/>
124
124
  <I style={{fontFamily:k.interBold,fontSize:10.5,color:$?o.purple:o.grayText}}>
125
- {ee("network.moreFilters","More Filters")}
125
+ {oe("network.moreFilters","More Filters")}
126
126
  </I>
127
127
  {$&&<C style={{backgroundColor:o.purple,paddingHorizontal:4.5,paddingVertical:1,borderRadius:6}}>
128
128
  <I style={{fontFamily:k.interBold,fontSize:8.5,color:o.white}}>
@@ -130,24 +130,26 @@ import _,{useCallback as de,useMemo as q,useRef as He}from"react";import{FlatLis
130
130
  </I>
131
131
  </C>}
132
132
  </C>
133
- </M>
133
+ </N>
134
134
  </C>
135
135
 
136
136
 
137
- {(U!=="all"||R.trim().length>0||$||E.length!==W.length)&&<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginHorizontal:8,marginBottom:8,paddingHorizontal:8,paddingVertical:5.5,backgroundColor:`${o.purple}10`,borderRadius:8,borderWidth:1,borderColor:`${o.purple}25`}}>
137
+ {(Q!=="all"||R.trim().length>0||$||E.length!==Z.length)&&<C style={{flexDirection:"row",alignItems:"center",justifyContent:"space-between",marginHorizontal:8,marginBottom:8,paddingHorizontal:8,paddingVertical:5.5,backgroundColor:`${o.purple}10`,borderRadius:8,borderWidth:1,borderColor:`${o.purple}25`}}>
138
138
  <I style={{fontFamily:k.interMedium,fontSize:10.5,color:o.purple}}>
139
- Showing {E.length} of {W.length} requests
139
+ Showing {E.length} of {re.length} requests
140
140
  </I>
141
- <M onPress={()=>{Q(""),ae("all"),H(new Set),v(new Set),J("all"),Y("all"),Z("time_desc"),ue("all")}}>
141
+ <N onPress={()=>{j(""),se("all"),q(new Set),v(new Set),X("all"),J("all"),Y("time_desc"),pe("all")}}>
142
142
  <I style={{fontFamily:k.interBold,fontSize:10.5,color:o.errorColor}}>
143
143
  Clear All Filters
144
144
  </I>
145
- </M>
145
+ </N>
146
146
  </C>}
147
147
  </C>
148
148
 
149
- <We ref={Pe}data={se}keyExtractor={$e}renderItem={Ae}initialNumToRender={10}maxToRenderPerBatch={8}windowSize={5}updateCellsBatchingPeriod={40}removeClippedSubviews={!0}renderToHardwareTextureAndroid={!0}showsVerticalScrollIndicator={!1}nestedScrollEnabled={!0}ListEmptyComponent={<Je isSearch={R.length>0||$||U!=="all"}searchQuery={R}customTitle={R.length>0?"No matching API requests":"No network activity"}onClearSearch={()=>{Q(""),H(new Set),v(new Set),J("all"),Y("all"),Z("time_desc"),ae("all"),ue("all")}}/>}ListFooterComponent={j.length>0?<Ye count={F?E.length:Math.min(oe,E.length)}totalCount={E.length}label="requests"hasMore={!F&&E.length>oe}loadMoreStep={30}onLoadMore={()=>Te(e=>e+30)}/>:null}style={{flex:1}}contentContainerStyle={[S.listContent,{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
149
+ <We ref={Pe}data={de}keyExtractor={$e}renderItem={Ae}initialNumToRender={10}maxToRenderPerBatch={8}windowSize={5}updateCellsBatchingPeriod={40}removeClippedSubviews={!0}renderToHardwareTextureAndroid={!0}showsVerticalScrollIndicator={!1}nestedScrollEnabled={!0}ListEmptyComponent={<Je isSearch={R.length>0||$||Q!=="all"}searchQuery={R}customTitle={R.length>0?"No matching API requests":"No network activity"}onClearSearch={()=>{j(""),q(new Set),v(new Set),X("all"),J("all"),Y("time_desc"),se("all"),pe("all")}}/>}ListFooterComponent={_.length>0?<C style={{paddingBottom:24}}>
150
+ <Ye count={F?E.length:Math.min(te,E.length)}totalCount={E.length}label="requests"hasMore={!F&&E.length>te}loadMoreStep={30}onLoadMore={()=>xe(e=>e+30)}/>
151
+ </C>:null}style={{flex:1}}contentContainerStyle={[S.listContent,{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
150
152
 
151
153
 
152
- <Ze visible={Ee}onClose={()=>Ce(!1)}filters={Me}onApply={Ne}searchQuery={R}/>
154
+ <Ze visible={Ee}onClose={()=>be(!1)}filters={Me}onApply={Ne}searchQuery={R}/>
153
155
  </C>});export default Mo;
@@ -0,0 +1,2 @@
1
+ import React from 'react';
2
+ export declare const PerformanceTab: React.FC;