react-native-inapp-inspector 2.5.12 → 2.5.13
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/android/.gradle/8.9/checksums/checksums.lock +0 -0
- package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
- package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
- package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
- package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/8.9/gc.properties +0 -0
- package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
- package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
- package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
- package/android/.gradle/9.2.0/gc.properties +0 -0
- package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
- package/android/.gradle/buildOutputCleanup/cache.properties +2 -0
- package/android/.gradle/vcs-1/gc.properties +0 -0
- package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
- package/android/src/main/AndroidManifest.xml +11 -0
- package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +379 -19
- package/android/src/main/res/xml/inappinspector_file_paths.xml +7 -0
- package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +47 -49
- package/dist/commonjs/components/Inspector/BoxModelVisualizer.d.ts +8 -0
- package/dist/commonjs/components/Inspector/BoxModelVisualizer.js +76 -0
- package/dist/commonjs/components/Inspector/ConsoleExportModal.js +51 -51
- package/dist/commonjs/components/Inspector/CrashTab.js +17 -17
- package/dist/commonjs/components/Inspector/DebuggingTab.js +24 -24
- package/dist/commonjs/components/Inspector/DeviceInfoTab.js +2 -2
- package/dist/commonjs/components/Inspector/FabLauncher.js +2 -2
- package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +2 -2
- package/dist/commonjs/components/Inspector/InspectorHeader.js +10 -10
- package/dist/commonjs/components/Inspector/MediaGalleryTab.js +10 -10
- package/dist/commonjs/components/Inspector/MediaPreviewModal.d.ts +1 -0
- package/dist/commonjs/components/Inspector/MediaPreviewModal.js +222 -222
- package/dist/commonjs/components/Inspector/NetworkExportModal.d.ts +10 -0
- package/dist/commonjs/components/Inspector/NetworkExportModal.js +333 -0
- package/dist/commonjs/components/Inspector/NetworkTab.js +48 -41
- package/dist/commonjs/components/Inspector/NpmStarPrompt.js +11 -12
- package/dist/commonjs/components/Inspector/ReduxDetail.js +17 -19
- package/dist/commonjs/components/Inspector/ReduxTab.js +5 -5
- package/dist/commonjs/components/Inspector/SettingsPanel.js +3 -6
- package/dist/commonjs/components/Inspector/SocketCard.js +2 -2
- package/dist/commonjs/components/Inspector/SupportPage.js +5 -5
- package/dist/commonjs/components/Inspector/UiA11yAuditPanel.d.ts +7 -0
- package/dist/commonjs/components/Inspector/UiA11yAuditPanel.js +97 -0
- package/dist/commonjs/components/Inspector/UiInspectorDetail.d.ts +2 -0
- package/dist/commonjs/components/Inspector/UiInspectorDetail.js +485 -0
- package/dist/commonjs/components/Inspector/UiInspectorOverlay.d.ts +2 -0
- package/dist/commonjs/components/Inspector/UiInspectorOverlay.js +199 -0
- package/dist/commonjs/components/Inspector/UiInspectorTab.d.ts +2 -0
- package/dist/commonjs/components/Inspector/UiInspectorTab.js +117 -0
- package/dist/commonjs/components/Inspector/UiLiveStyleTweaker.d.ts +10 -0
- package/dist/commonjs/components/Inspector/UiLiveStyleTweaker.js +148 -0
- package/dist/commonjs/components/Inspector/index.d.ts +28 -0
- package/dist/commonjs/components/Inspector/index.js +1 -0
- package/dist/commonjs/components/LogCard.js +9 -7
- package/dist/commonjs/constants/index.js +1 -1
- package/dist/commonjs/constants/telemetryConfig.d.ts +3 -3
- package/dist/commonjs/constants/telemetryConfig.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.d.ts +1 -1
- package/dist/commonjs/customHooks/crashHandler.js +6 -6
- package/dist/commonjs/customHooks/uiInspectorManager.d.ts +22 -0
- package/dist/commonjs/customHooks/uiInspectorManager.js +1 -0
- package/dist/commonjs/helpers/index.js +1 -3
- package/dist/commonjs/helpers/searchQueryParser.d.ts +1 -0
- package/dist/commonjs/helpers/searchQueryParser.js +7 -5
- package/dist/commonjs/helpers/shareFormatter.d.ts +16 -0
- package/dist/commonjs/helpers/shareFormatter.js +16 -9
- package/dist/commonjs/helpers/uiInspectorEngine.d.ts +62 -0
- package/dist/commonjs/helpers/uiInspectorEngine.js +19 -0
- package/dist/commonjs/i18n/locales/ar.json +1 -1
- package/dist/commonjs/i18n/locales/bn.json +1 -1
- package/dist/commonjs/i18n/locales/de.json +1 -1
- package/dist/commonjs/i18n/locales/en.json +1 -1
- package/dist/commonjs/i18n/locales/es.json +1 -1
- package/dist/commonjs/i18n/locales/fr.json +1 -1
- package/dist/commonjs/i18n/locales/gu.json +1 -1
- package/dist/commonjs/i18n/locales/hi.json +1 -1
- package/dist/commonjs/i18n/locales/id.json +1 -1
- package/dist/commonjs/i18n/locales/it.json +1 -1
- package/dist/commonjs/i18n/locales/ja.json +1 -1
- package/dist/commonjs/i18n/locales/kn.json +1 -1
- package/dist/commonjs/i18n/locales/ko.json +1 -1
- package/dist/commonjs/i18n/locales/ml.json +1 -1
- package/dist/commonjs/i18n/locales/mr.json +1 -1
- package/dist/commonjs/i18n/locales/nl.json +1 -1
- package/dist/commonjs/i18n/locales/pa.json +1 -1
- package/dist/commonjs/i18n/locales/pl.json +1 -1
- package/dist/commonjs/i18n/locales/pt.json +1 -1
- package/dist/commonjs/i18n/locales/ru.json +1 -1
- package/dist/commonjs/i18n/locales/ta.json +1 -1
- package/dist/commonjs/i18n/locales/te.json +1 -1
- package/dist/commonjs/i18n/locales/tr.json +1 -1
- package/dist/commonjs/i18n/locales/vi.json +1 -1
- package/dist/commonjs/i18n/locales/zh.json +1 -1
- package/dist/commonjs/index.d.ts +3 -1
- package/dist/commonjs/index.js +3 -3
- package/dist/commonjs/native/NativeInspector.d.ts +2 -0
- package/dist/commonjs/native/NativeInspector.js +1 -1
- package/dist/commonjs/native/NativeNetworkInspector.d.ts +2 -0
- package/dist/commonjs/types/editor.d.ts +31 -0
- package/dist/esm/components/Inspector/AnalyticsFilterModal.js +73 -75
- package/dist/esm/components/Inspector/BoxModelVisualizer.d.ts +8 -0
- package/dist/esm/components/Inspector/BoxModelVisualizer.js +76 -0
- package/dist/esm/components/Inspector/ConsoleExportModal.js +67 -67
- package/dist/esm/components/Inspector/CrashTab.js +58 -58
- package/dist/esm/components/Inspector/DebuggingTab.js +89 -89
- package/dist/esm/components/Inspector/DeviceInfoTab.js +2 -2
- package/dist/esm/components/Inspector/FabLauncher.js +21 -21
- package/dist/esm/components/Inspector/FloatingCaptureWidget.js +23 -23
- package/dist/esm/components/Inspector/InspectorHeader.js +26 -26
- package/dist/esm/components/Inspector/MediaGalleryTab.js +151 -151
- package/dist/esm/components/Inspector/MediaPreviewModal.d.ts +1 -0
- package/dist/esm/components/Inspector/MediaPreviewModal.js +468 -468
- package/dist/esm/components/Inspector/NetworkExportModal.d.ts +10 -0
- package/dist/esm/components/Inspector/NetworkExportModal.js +333 -0
- package/dist/esm/components/Inspector/NetworkTab.js +118 -111
- package/dist/esm/components/Inspector/NpmStarPrompt.js +32 -33
- package/dist/esm/components/Inspector/ReduxDetail.js +54 -56
- package/dist/esm/components/Inspector/ReduxTab.js +9 -9
- package/dist/esm/components/Inspector/SettingsPanel.js +3 -6
- package/dist/esm/components/Inspector/SocketCard.js +13 -13
- package/dist/esm/components/Inspector/SupportPage.js +5 -5
- package/dist/esm/components/Inspector/UiA11yAuditPanel.d.ts +7 -0
- package/dist/esm/components/Inspector/UiA11yAuditPanel.js +97 -0
- package/dist/esm/components/Inspector/UiInspectorDetail.d.ts +2 -0
- package/dist/esm/components/Inspector/UiInspectorDetail.js +422 -0
- package/dist/esm/components/Inspector/UiInspectorOverlay.d.ts +2 -0
- package/dist/esm/components/Inspector/UiInspectorOverlay.js +138 -0
- package/dist/esm/components/Inspector/UiInspectorTab.d.ts +2 -0
- package/dist/esm/components/Inspector/UiInspectorTab.js +117 -0
- package/dist/esm/components/Inspector/UiLiveStyleTweaker.d.ts +10 -0
- package/dist/esm/components/Inspector/UiLiveStyleTweaker.js +148 -0
- package/dist/esm/components/Inspector/index.d.ts +28 -0
- package/dist/esm/components/Inspector/index.js +1 -0
- package/dist/esm/components/LogCard.js +57 -55
- package/dist/esm/constants/index.js +1 -1
- package/dist/esm/constants/telemetryConfig.d.ts +3 -3
- package/dist/esm/constants/telemetryConfig.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.d.ts +1 -1
- package/dist/esm/customHooks/crashHandler.js +6 -6
- package/dist/esm/customHooks/uiInspectorManager.d.ts +22 -0
- package/dist/esm/customHooks/uiInspectorManager.js +1 -0
- package/dist/esm/helpers/index.js +4 -6
- package/dist/esm/helpers/searchQueryParser.d.ts +1 -0
- package/dist/esm/helpers/searchQueryParser.js +7 -5
- package/dist/esm/helpers/shareFormatter.d.ts +16 -0
- package/dist/esm/helpers/shareFormatter.js +20 -13
- package/dist/esm/helpers/uiInspectorEngine.d.ts +48 -0
- package/dist/esm/helpers/uiInspectorEngine.js +19 -0
- package/dist/esm/i18n/locales/ar.json +1 -1
- package/dist/esm/i18n/locales/bn.json +1 -1
- package/dist/esm/i18n/locales/de.json +1 -1
- package/dist/esm/i18n/locales/en.json +1 -1
- package/dist/esm/i18n/locales/es.json +1 -1
- package/dist/esm/i18n/locales/fr.json +1 -1
- package/dist/esm/i18n/locales/gu.json +1 -1
- package/dist/esm/i18n/locales/hi.json +1 -1
- package/dist/esm/i18n/locales/id.json +1 -1
- package/dist/esm/i18n/locales/it.json +1 -1
- package/dist/esm/i18n/locales/ja.json +1 -1
- package/dist/esm/i18n/locales/kn.json +1 -1
- package/dist/esm/i18n/locales/ko.json +1 -1
- package/dist/esm/i18n/locales/ml.json +1 -1
- package/dist/esm/i18n/locales/mr.json +1 -1
- package/dist/esm/i18n/locales/nl.json +1 -1
- package/dist/esm/i18n/locales/pa.json +1 -1
- package/dist/esm/i18n/locales/pl.json +1 -1
- package/dist/esm/i18n/locales/pt.json +1 -1
- package/dist/esm/i18n/locales/ru.json +1 -1
- package/dist/esm/i18n/locales/ta.json +1 -1
- package/dist/esm/i18n/locales/te.json +1 -1
- package/dist/esm/i18n/locales/tr.json +1 -1
- package/dist/esm/i18n/locales/vi.json +1 -1
- package/dist/esm/i18n/locales/zh.json +1 -1
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.js +7 -7
- package/dist/esm/native/NativeInspector.d.ts +2 -0
- package/dist/esm/native/NativeInspector.js +1 -1
- package/dist/esm/native/NativeNetworkInspector.d.ts +2 -0
- package/dist/esm/types/editor.d.ts +31 -0
- package/ios/NetworkInspectorModule.mm +314 -16
- package/package.json +1 -1
- package/src/native/NativeInspector.ts +37 -0
- package/src/native/NativeNetworkInspector.ts +2 -0
|
@@ -1,155 +1,162 @@
|
|
|
1
|
-
import
|
|
2
|
-
<
|
|
3
|
-
</
|
|
4
|
-
<
|
|
5
|
-
<
|
|
6
|
-
</
|
|
7
|
-
<
|
|
8
|
-
{
|
|
9
|
-
<
|
|
10
|
-
<
|
|
11
|
-
<
|
|
12
|
-
</
|
|
13
|
-
<
|
|
1
|
+
import H,{useCallback as ge,useMemo as D,useRef as We}from"react";import{FlatList as _e,Pressable as Qe,ScrollView as Ue,Text as I,TextInput as Ke,View as S}from"react-native";import{useInspector as Xe}from"./InspectorContext";import $ from"../TouchableScale";import Le from"../AnimatedEntrance";import Je from"../DomainHeader";import Ye from"../LogCard";import Ze from"../EmptyState";import So from"../EndOfListFooter";import Co from"./NetworkFilterModal";import To from"./NetworkExportModal";import C from"../../styles";import{AppColors as o}from"../../styles/AppColors";import{AppFonts as k}from"../../styles/AppFonts";import{METHOD_COLORS as Re}from"../../constants";import{isUrlHidden as xo}from"../../helpers";import{useTranslation as zo}from"../../i18n";import{SearchIcon as Io,ClearIcon as Vo,TrashIcon as Fo,SortArrowIcon as Lo,FilterIcon as Ro,ChevronIcon as Bo,CheckIcon as Po,CircleCheckIcon as Eo,CircleXIcon as $o,LayersIcon as Be,ClockIcon as Mo,RequestIcon as Ao,ResponseIcon as Do,AtomIcon as No,ExportIcon as Oo}from"../NetworkIcons";const vo=H.memo(()=>{const{groupedData:U,loadMoreSection:me,search:F,setSearch:K,setSearchScope:he,quickFilter:X,setQuickFilter:de,handleDelete:Pe,isGroupByPageEnabled:q,setIsGroupByPageEnabled:Ee,selectedLogs:J,sortOrder:$e,setSortOrder:Y,statusFilters:L,setStatusFilters:G,methodFilters:R,setMethodFilters:W,latencyFilter:N,setLatencyFilter:Z,protocolFilter:O,setProtocolFilter:ee,networkSortBy:v,setNetworkSortBy:oe,filteredLogs:B,logs:te,hiddenUrlPatterns:re,toggleSectionFilter:fe,toggleSectionCollapse:ye,minStart:we,totalRange:Se,newLogIds:Ce,toggleSelect:be,setSelected:Te,maxNetworkLogs:ce}=Xe(),{t:_}=zo(),xe=We(null),[Me,ze]=H.useState(!1),[Ae,Ie]=H.useState(!1),[Ve,ke]=H.useState(!1),[le,Fe]=H.useState(ce||50),ie=!!(F&&F.trim().length>0),P=q&&!ie;H.useEffect(()=>{Fe(ce||50),ie&&xe.current?.scrollToOffset({offset:0,animated:!1})},[F,X,ce,ie]);const ue=D(()=>P?U:U.slice(0,le),[P,U,le]),De=ge(e=>e?.id?String(e.id):"",[]),M=D(()=>L.size>0&&!L.has("all")||R.size>0&&!R.has("all")||N!=="all"||O!=="all"||v!=="time_desc",[L,R,N,O,v]),Ne=D(()=>{let e=0;return L.size>0&&!L.has("all")&&(e+=L.size),R.size>0&&!R.has("all")&&(e+=R.size),N!=="all"&&e++,O!=="all"&&e++,v!=="time_desc"&&e++,e},[L,R,N,O,v]),Oe=D(()=>({statusCodes:L.size>0?new Set(L):new Set(["all"]),methods:R.size>0?new Set(R):new Set(["all"]),latency:N,protocol:O,sortBy:v}),[L,R,N,O,v]),ve=ge(e=>{e.statusCodes.has("all")||e.statusCodes.size===0?G(new Set):G(new Set(e.statusCodes)),e.methods.has("all")||e.methods.size===0?W(new Set):W(new Set([...e.methods].map(T=>T))),Z(e.latency||"all"),ee(e.protocol||"all"),oe(e.sortBy||"time_desc"),e.sortBy==="time_asc"?Y("oldest"):Y("newest")},[G,W,Z,ee,oe,Y]),j=D(()=>!re||re.length===0?te:te.filter(e=>!xo(e.url,re)),[te,re]),E=D(()=>{let e=0,T=0,x=0,z=0,Q=0,ae=0;return j.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&&x++;const se=(V.method||"").toUpperCase();se==="POST"&&z++,se==="GET"&&Q++;const A=(V.url||"").toLowerCase(),ne=(V.client||"").toLowerCase();(A.includes("graphql")||ne.includes("graphql")||ne.includes("apollo"))&&ae++}),{all:j.length,errors:e,success:T,slow:x,post:z,get:Q,graphql:ae}},[j]),He=D(()=>[{id:"all",label:"All",count:E.all,color:o.purple},{id:"errors",label:"Errors",count:E.errors,color:o.errorColor},{id:"success",label:"2xx OK",count:E.success,color:o.greenColor},{id:"slow",label:"Slow >500ms",count:E.slow,color:o.warningIconGold},{id:"POST",label:"POST",count:E.post,color:Re.POST||o.blue500},{id:"GET",label:"GET",count:E.get,color:Re.GET||o.emerald500},{id:"graphql",label:"GraphQL",count:E.graphql,color:o.graphqlPink}],[E]),qe=ge(({item:e,index:T})=>{if(e.type==="header")return<Le index={T}distance={8}>
|
|
2
|
+
<Je pageName={e.pageName}color={e.color}stats={e.stats}activeFilters={e.activeFilters}onToggleFilter={fe}isCollapsed={e.isCollapsed}onToggleCollapse={ye}isFirst={e.isFirst}timestamp={e.timestamp}/>
|
|
3
|
+
</Le>;if(e.type==="loadMore"){const{pageName:V,color:b,remainingCount:se,totalCount:A,loadedCount:ne,loadMoreStep:pe,hasMore:Ge}=e;return<S style={[C.treeNodeRow,C.treeNodeRowLast]}>
|
|
4
|
+
<S style={C.treeLines}>
|
|
5
|
+
<S style={[C.modernTreeLine,{borderColor:b},C.modernTreeLineLast]}/>
|
|
6
|
+
</S>
|
|
7
|
+
<S style={C.treeCardWrapper}>
|
|
8
|
+
{Ge?<$ onPress={()=>me(V,pe||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
|
+
<S style={{flexDirection:"row",alignItems:"center",gap:8}}>
|
|
10
|
+
<S 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
|
+
<Bo color={o.white}size={9}direction="down"/>
|
|
12
|
+
</S>
|
|
13
|
+
<S>
|
|
14
14
|
<I style={{fontFamily:k.interBold,fontSize:12,color:b}}>
|
|
15
|
-
{
|
|
15
|
+
{_("footer.loadMoreRequests",{count:pe,defaultValue:`Load ${pe} More Requests`})}
|
|
16
16
|
</I>
|
|
17
17
|
<I style={{fontFamily:k.interRegular,fontSize:9.5,color:o.grayTextWeak,marginTop:1}}>
|
|
18
|
-
Showing {
|
|
18
|
+
Showing {ne} of {A} requests
|
|
19
19
|
</I>
|
|
20
|
-
</
|
|
21
|
-
</
|
|
20
|
+
</S>
|
|
21
|
+
</S>
|
|
22
22
|
|
|
23
|
-
<
|
|
23
|
+
<S 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
|
-
+{
|
|
25
|
+
+{se}
|
|
26
26
|
</I>
|
|
27
27
|
<I style={{fontFamily:k.interRegular,fontSize:9,color:b}}>
|
|
28
28
|
more
|
|
29
29
|
</I>
|
|
30
|
-
</
|
|
31
|
-
|
|
32
|
-
<
|
|
33
|
-
<
|
|
34
|
-
<
|
|
35
|
-
</
|
|
30
|
+
</S>
|
|
31
|
+
</$>:<S 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
|
+
<S style={{flexDirection:"row",alignItems:"center",gap:7}}>
|
|
33
|
+
<S style={{width:17,height:17,borderRadius:8.5,backgroundColor:`${b}25`,alignItems:"center",justifyContent:"center"}}>
|
|
34
|
+
<Po color={b}size={8}/>
|
|
35
|
+
</S>
|
|
36
36
|
<I style={{fontFamily:k.interMedium,fontSize:11,color:o.grayTextStrong}}>
|
|
37
|
-
{
|
|
37
|
+
{_("footer.allLoaded",{count:A,defaultValue:`All ${A} requests loaded`})}
|
|
38
38
|
</I>
|
|
39
|
-
</
|
|
39
|
+
</S>
|
|
40
40
|
|
|
41
|
-
<
|
|
41
|
+
<S style={{backgroundColor:`${b}18`,paddingHorizontal:7,paddingVertical:2,borderRadius:6}}>
|
|
42
42
|
<I style={{fontFamily:k.interBold,fontSize:9.5,color:b}}>
|
|
43
|
-
{
|
|
43
|
+
{A}/{A}
|
|
44
44
|
</I>
|
|
45
|
-
</
|
|
46
|
-
</
|
|
47
|
-
</
|
|
48
|
-
</
|
|
49
|
-
{
|
|
50
|
-
<
|
|
51
|
-
{!
|
|
52
|
-
</
|
|
53
|
-
<
|
|
54
|
-
<
|
|
55
|
-
</
|
|
56
|
-
</
|
|
57
|
-
<
|
|
45
|
+
</S>
|
|
46
|
+
</S>}
|
|
47
|
+
</S>
|
|
48
|
+
</S>}const{log:x,isLast:z,color:Q}=e,ae=ue.slice(0,T).filter(V=>!V.type).length;return<Le index={T}distance={8}style={P?[C.treeNodeRow,z&&C.treeNodeRowLast]:{marginBottom:5,marginHorizontal:5}}>
|
|
49
|
+
{P&&<S style={C.treeLines}>
|
|
50
|
+
<S style={[C.modernTreeLine,{borderColor:Q},z&&C.modernTreeLineLast]}/>
|
|
51
|
+
{!z&&<S style={[C.modernTreeBranch,{borderColor:Q}]}/>}
|
|
52
|
+
</S>}
|
|
53
|
+
<S style={P?C.treeCardWrapper:{flex:1}}>
|
|
54
|
+
<Ye testID={`inspector.network.item.${ae}`}item={x}isSelected={J.has(x.id)}onToggleSelect={be}onPress={()=>{Te(x)}}timelineMinStart={we}timelineTotalRange={Se}isNew={Ce.has(x.id)}searchStr={F}/>
|
|
55
|
+
</S>
|
|
56
|
+
</Le>},[ue,P,we,Se,Ce,J,be,F,fe,ye,me,Te,_]);return<S style={{flex:1}}>
|
|
57
|
+
<S style={{marginTop:6}}>
|
|
58
58
|
|
|
59
|
-
<
|
|
60
|
-
<
|
|
61
|
-
<
|
|
62
|
-
<
|
|
59
|
+
<S style={C.toolbarRow}>
|
|
60
|
+
<S style={[C.searchContainer,Ve&&{borderColor:o.purple,borderWidth:1.5}]}>
|
|
61
|
+
<Io color={Ve?o.purple:o.grayTextWeak}size={15}/>
|
|
62
|
+
<Ke placeholder={_("network.searchPlaceholder","Search APIs...")}placeholderTextColor={o.grayTextWeak}value={F}onChangeText={K}onFocus={()=>ke(!0)}onBlur={()=>ke(!1)}style={C.searchInput}autoCorrect={!1}autoCapitalize="none"/>
|
|
63
63
|
|
|
64
|
-
{
|
|
65
|
-
<
|
|
64
|
+
{F.length>0&&<S style={{flexDirection:"row",alignItems:"center",gap:4}}>
|
|
65
|
+
<S style={{backgroundColor:`${o.purple}20`,borderRadius:10,paddingHorizontal:6,paddingVertical:1.5}}>
|
|
66
66
|
<I style={{color:o.purple,fontSize:9.5,fontFamily:k.interBold}}>
|
|
67
|
-
{
|
|
67
|
+
{B.length}
|
|
68
68
|
</I>
|
|
69
|
-
</
|
|
70
|
-
<
|
|
71
|
-
<
|
|
72
|
-
</
|
|
73
|
-
</
|
|
74
|
-
</
|
|
69
|
+
</S>
|
|
70
|
+
<Qe onPress={()=>K("")}hitSlop={10}style={C.clearBtn}>
|
|
71
|
+
<Vo color={o.grayTextWeak}size={13}/>
|
|
72
|
+
</Qe>
|
|
73
|
+
</S>}
|
|
74
|
+
</S>
|
|
75
75
|
|
|
76
|
-
<
|
|
77
|
-
|
|
78
|
-
<
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
76
|
+
<S style={C.toolbarRight}>
|
|
77
|
+
<$ style={[C.toolbarBtn,{borderColor:`${o.purple}38`,backgroundColor:`${o.purple}0F`}]}onPress={()=>Ie(!0)}hitSlop={6}testID="inspector.network.exportBtn">
|
|
78
|
+
<Oo color={o.purple}size={15}/>
|
|
79
|
+
</$>
|
|
80
|
+
|
|
81
|
+
<$ style={[C.toolbarBtn,{borderColor:`${o.errorColor}38`,backgroundColor:`${o.errorColor}0F`}]}onPress={Pe}hitSlop={6}>
|
|
82
|
+
<Fo color={o.errorColor}size={15}/>
|
|
83
|
+
{J.size>0&&<S style={C.trashBadge}>
|
|
84
|
+
<I style={C.trashBadgeText}>
|
|
85
|
+
{J.size}
|
|
82
86
|
</I>
|
|
83
|
-
</
|
|
84
|
-
|
|
87
|
+
</S>}
|
|
88
|
+
</$>
|
|
85
89
|
|
|
86
|
-
|
|
87
|
-
<
|
|
88
|
-
{
|
|
89
|
-
|
|
90
|
+
<$ style={[C.toolbarBtn,q&&{borderColor:o.purple,backgroundColor:`${o.purple}15`}]}onPress={()=>Ee(e=>!e)}hitSlop={6}accessibilityLabel={ie?"Page Accordion Grouping Preserved (Temporarily in List View for Search Results)":q?"Page Accordion Grouping Enabled (Tap for Plain List)":"Plain List Enabled (Tap for Page Accordion)"}accessibilityRole="button">
|
|
91
|
+
<Be color={q?o.purple:o.grayTextStrong}size={16}/>
|
|
92
|
+
{q&&<S style={C.activeFilterDot}/>}
|
|
93
|
+
</$>
|
|
90
94
|
|
|
91
|
-
|
|
92
|
-
<
|
|
93
|
-
|
|
94
|
-
</
|
|
95
|
-
</
|
|
95
|
+
<$ style={C.toolbarBtn}onPress={()=>Y(e=>e==="newest"?"oldest":"newest")}hitSlop={10}>
|
|
96
|
+
<Lo direction={$e==="newest"?"down":"up"}color={o.grayTextStrong}size={18}/>
|
|
97
|
+
</$>
|
|
98
|
+
</S>
|
|
99
|
+
</S>
|
|
96
100
|
|
|
97
101
|
|
|
98
|
-
<
|
|
99
|
-
<
|
|
100
|
-
{
|
|
101
|
-
<
|
|
102
|
-
{e.id==="all"&&<
|
|
103
|
-
{e.id==="errors"
|
|
104
|
-
{e.id==="success"&&<
|
|
105
|
-
{e.id==="slow"&&<
|
|
106
|
-
{e.id==="POST"&&<
|
|
107
|
-
{e.id==="GET"
|
|
108
|
-
{e.id==="graphql"&&<
|
|
102
|
+
<S style={{flexDirection:"row",alignItems:"center",marginBottom:8,paddingHorizontal:8,gap:6}}>
|
|
103
|
+
<Ue horizontal showsHorizontalScrollIndicator={!1}style={{flex:1}}contentContainerStyle={{flexDirection:"row",alignItems:"center",gap:6,paddingRight:6}}>
|
|
104
|
+
{He.map(e=>{const T=X===e.id,x=e.color||o.purple,z=T?o.white:x;return<$ testID={`inspector.network.filter.${e.id.toLowerCase()}`}key={e.id}onPress={()=>{de(T?"all":e.id)}}>
|
|
105
|
+
<S style={{flexDirection:"row",alignItems:"center",paddingHorizontal:9,paddingVertical:4.5,borderRadius:8,backgroundColor:T?x:`${x}12`,borderWidth:1,borderColor:T?x:`${x}30`,gap:5}}>
|
|
106
|
+
{e.id==="all"&&<Be size={11}color={z}/>}
|
|
107
|
+
{e.id==="errors"&&<$o size={11}color={z}/>}
|
|
108
|
+
{e.id==="success"&&<Eo size={11}color={z}/>}
|
|
109
|
+
{e.id==="slow"&&<Mo size={11}color={z}/>}
|
|
110
|
+
{e.id==="POST"&&<Ao size={11}color={z}/>}
|
|
111
|
+
{e.id==="GET"&&<Do size={11}color={z}/>}
|
|
112
|
+
{e.id==="graphql"&&<No size={11}color={z}/>}
|
|
109
113
|
<I style={{fontFamily:k.interBold,fontSize:10.5,color:T?o.white:o.primaryBlack}}>
|
|
110
114
|
{e.label}
|
|
111
115
|
</I>
|
|
112
|
-
<
|
|
113
|
-
<I style={{fontFamily:k.interBold,fontSize:9,color:T?o.white:
|
|
116
|
+
<S style={{backgroundColor:T?"rgba(255,255,255,0.25)":`${x}20`,paddingHorizontal:5,paddingVertical:1,borderRadius:8}}>
|
|
117
|
+
<I style={{fontFamily:k.interBold,fontSize:9,color:T?o.white:x}}>
|
|
114
118
|
{e.count}
|
|
115
119
|
</I>
|
|
116
|
-
</
|
|
117
|
-
</
|
|
118
|
-
|
|
119
|
-
</
|
|
120
|
+
</S>
|
|
121
|
+
</S>
|
|
122
|
+
</$>})}
|
|
123
|
+
</Ue>
|
|
120
124
|
|
|
121
|
-
|
|
122
|
-
<
|
|
123
|
-
<
|
|
124
|
-
<I style={{fontFamily:k.interBold,fontSize:10.5,color
|
|
125
|
-
{
|
|
125
|
+
<$ onPress={()=>ze(!0)}style={{flexShrink:0}}>
|
|
126
|
+
<S style={{flexDirection:"row",alignItems:"center",paddingHorizontal:10,paddingVertical:4.5,borderRadius:8,backgroundColor:M?`${o.purple}20`:o.grayBackground,borderWidth:1,borderColor:M?o.purple:o.grayBorderSecondary,gap:5,shadowColor:o.black,shadowOpacity:.04,shadowRadius:2,shadowOffset:{width:0,height:1},elevation:1}}>
|
|
127
|
+
<Ro size={11}color={M?o.purple:o.grayText}/>
|
|
128
|
+
<I style={{fontFamily:k.interBold,fontSize:10.5,color:M?o.purple:o.grayText}}>
|
|
129
|
+
{_("network.moreFilters","More Filters")}
|
|
126
130
|
</I>
|
|
127
|
-
{
|
|
131
|
+
{M&&<S style={{backgroundColor:o.purple,paddingHorizontal:4.5,paddingVertical:1,borderRadius:6}}>
|
|
128
132
|
<I style={{fontFamily:k.interBold,fontSize:8.5,color:o.white}}>
|
|
129
|
-
{
|
|
133
|
+
{Ne}
|
|
130
134
|
</I>
|
|
131
|
-
</
|
|
132
|
-
</
|
|
133
|
-
|
|
134
|
-
</
|
|
135
|
+
</S>}
|
|
136
|
+
</S>
|
|
137
|
+
</$>
|
|
138
|
+
</S>
|
|
135
139
|
|
|
136
140
|
|
|
137
|
-
{(
|
|
141
|
+
{(X!=="all"||F.trim().length>0||M||B.length!==te.length)&&<S 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
142
|
<I style={{fontFamily:k.interMedium,fontSize:10.5,color:o.purple}}>
|
|
139
|
-
Showing {
|
|
143
|
+
Showing {B.length} of {j.length} requests
|
|
140
144
|
</I>
|
|
141
|
-
|
|
145
|
+
<$ onPress={()=>{K(""),de("all"),G(new Set),W(new Set),Z("all"),ee("all"),oe("time_desc"),he("all")}}>
|
|
142
146
|
<I style={{fontFamily:k.interBold,fontSize:10.5,color:o.errorColor}}>
|
|
143
147
|
Clear All Filters
|
|
144
148
|
</I>
|
|
145
|
-
|
|
146
|
-
</
|
|
147
|
-
</
|
|
149
|
+
</$>
|
|
150
|
+
</S>}
|
|
151
|
+
</S>
|
|
152
|
+
|
|
153
|
+
<_e ref={xe}data={ue}keyExtractor={De}renderItem={qe}initialNumToRender={10}maxToRenderPerBatch={8}windowSize={5}updateCellsBatchingPeriod={40}removeClippedSubviews={!0}renderToHardwareTextureAndroid={!0}showsVerticalScrollIndicator={!1}nestedScrollEnabled={!0}ListEmptyComponent={<Ze isSearch={F.length>0||M||X!=="all"}searchQuery={F}customTitle={F.length>0?"No matching API requests":"No network activity"}onClearSearch={()=>{K(""),G(new Set),W(new Set),Z("all"),ee("all"),oe("time_desc"),de("all"),he("all")}}/>}ListFooterComponent={U.length>0?<S style={{paddingBottom:24}}>
|
|
154
|
+
<So count={P?B.length:Math.min(le,B.length)}totalCount={B.length}label="requests"hasMore={!P&&B.length>le}loadMoreStep={30}onLoadMore={()=>Fe(e=>e+30)}/>
|
|
155
|
+
</S>:null}style={{flex:1}}contentContainerStyle={[C.listContent,{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
|
|
148
156
|
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
</C>:null}style={{flex:1}}contentContainerStyle={[S.listContent,{flexGrow:1}]}keyboardShouldPersistTaps="handled"/>
|
|
157
|
+
|
|
158
|
+
<Co visible={Me}onClose={()=>ze(!1)}filters={Oe}onApply={ve}searchQuery={F}/>
|
|
152
159
|
|
|
153
160
|
|
|
154
|
-
<
|
|
155
|
-
</
|
|
161
|
+
<To visible={Ae}onClose={()=>Ie(!1)}filteredLogs={B}allLogs={j}/>
|
|
162
|
+
</S>});export default vo;
|
|
@@ -1,78 +1,77 @@
|
|
|
1
|
-
import{useEffect as
|
|
2
|
-
<r.View style={[e.backdrop,{opacity:
|
|
3
|
-
<
|
|
1
|
+
import{useEffect as J,useRef as L,useState as Q}from"react";import{Animated as r,Linking as M,Modal as X,Platform as R,StyleSheet as F,Text as T,TouchableOpacity as _,View as S}from"react-native";import{AppColors as t}from"../../styles/AppColors";import{AppFonts as C}from"../../styles/AppFonts";import N from"../TouchableScale";import{t as x}from"../../i18n";import{loadSettings as B,saveSettings as k}from"../../helpers/settingsStore";import{trackTelemetryEvent as V}from"../../helpers/telemetry";import{StarIcon as E,CloseWhite as Z,CheckIcon as St,GitHubIcon as Tt,NpmIcon as Ct}from"../NetworkIcons";const Bt=7200*60*1e3,kt="https://github.com/vengatmacuser/react-native-inapp-inspector",It="https://www.npmjs.com/package/react-native-inapp-inspector";export const NpmStarPrompt=()=>{const[j,H]=Q(!1),A=L(new r.Value(200)).current,O=L(new r.Value(0)).current,D=L(new r.Value(1)).current;J(()=>{let o=!0;async function Y(){try{const I=await B();if(I.starPromptActioned)return;const z=Date.now(),q=I.starPromptFirstSeen||z;I.starPromptFirstSeen||await k({...I,starPromptFirstSeen:z});const K=I.starPromptLastShown||q;z-K>=Bt&&Math.random()<.65&&o&&setTimeout(()=>{o&&G()},1800)}catch{}}return Y(),()=>{o=!1}},[]);const G=async()=>{H(!0);try{const o=await B();await k({...o,starPromptLastShown:Date.now()}),V("npm_star_prompt_shown",{trigger:"5_day_interval",platform:R.OS})}catch{}r.parallel([r.spring(A,{toValue:0,friction:8,tension:50,useNativeDriver:!0}),r.timing(O,{toValue:1,duration:250,useNativeDriver:!0})]).start(),r.loop(r.sequence([r.timing(D,{toValue:1.15,duration:900,useNativeDriver:!0}),r.timing(D,{toValue:1,duration:900,useNativeDriver:!0})])).start()},P=o=>{r.parallel([r.timing(O,{toValue:0,duration:180,useNativeDriver:!0}),r.timing(A,{toValue:200,duration:180,useNativeDriver:!0})]).start(()=>{H(!1),o&&o()})},W=async()=>{try{const o=await B();await k({...o,starPromptActioned:!0}),V("npm_star_prompt_action",{action:"starred",platform:R.OS})}catch{}P(()=>{M.openURL(kt).catch(()=>{M.openURL(It).catch(()=>{})})})},U=async()=>{try{const o=await B();await k({...o,starPromptActioned:!0}),V("npm_star_prompt_action",{action:"already_starred",platform:R.OS})}catch{}P()},v=async()=>{try{const o=await B();await k({...o,starPromptLastShown:Date.now()}),V("npm_star_prompt_action",{action:"remind_later",platform:R.OS})}catch{}P()},$=async()=>{try{const o=await B();await k({...o,starPromptActioned:!0}),V("npm_star_prompt_action",{action:"dont_ask_again",platform:R.OS})}catch{}P()};return j?<X transparent visible={j}animationType="none"onRequestClose={v}>
|
|
2
|
+
<r.View style={[e.backdrop,{opacity:O}]}>
|
|
3
|
+
<_ style={F.absoluteFill}activeOpacity={1}onPress={v}/>
|
|
4
4
|
|
|
5
|
-
<r.View style={[e.cardContainer,{transform:[{translateY:
|
|
5
|
+
<r.View style={[e.cardContainer,{transform:[{translateY:A}]}]}>
|
|
6
6
|
|
|
7
7
|
<S style={e.headerIconWrapper}>
|
|
8
|
-
<r.View style={[e.iconGlow,{transform:[{scale:
|
|
8
|
+
<r.View style={[e.iconGlow,{transform:[{scale:D}]}]}/>
|
|
9
9
|
<S style={e.iconCircle}>
|
|
10
|
-
<
|
|
10
|
+
<E size={26}color={t.amber500}/>
|
|
11
11
|
</S>
|
|
12
12
|
</S>
|
|
13
13
|
|
|
14
14
|
|
|
15
|
-
<
|
|
16
|
-
<
|
|
17
|
-
</
|
|
15
|
+
<_ onPress={v}hitSlop={{top:10,bottom:10,left:10,right:10}}style={e.closeBtn}>
|
|
16
|
+
<Z size={12}color={t.grayText}/>
|
|
17
|
+
</_>
|
|
18
18
|
|
|
19
19
|
|
|
20
20
|
<S style={e.pillBadge}>
|
|
21
|
-
<T style={e.pillBadgeText}>SUPPORT OPEN SOURCE</T>
|
|
21
|
+
<T style={e.pillBadgeText}>{x("support.supportOpenSource","SUPPORT OPEN SOURCE")}</T>
|
|
22
22
|
</S>
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
<T style={e.title}>Enjoying In-App Inspector
|
|
25
|
+
<T style={e.title}>{x("support.enjoyingTitle","Enjoying In-App Inspector?")}</T>
|
|
26
26
|
<T style={e.description}>
|
|
27
|
-
If this debugging tool saves you time, please consider giving us a
|
|
28
|
-
star on GitHub & npm. Your support helps us build more features!
|
|
27
|
+
{x("support.enjoyingSubtitle","If this debugging tool saves you time, please consider giving us a star on GitHub & npm. Your support helps us build more features!")}
|
|
29
28
|
</T>
|
|
30
29
|
|
|
31
30
|
|
|
32
31
|
<S style={e.metricsBar}>
|
|
33
32
|
<S style={e.metricItem}>
|
|
34
|
-
<
|
|
35
|
-
<T style={e.metricText}>GitHub Star</T>
|
|
33
|
+
<Tt size={13}color={t.grayText}/>
|
|
34
|
+
<T style={e.metricText}>{x("support.githubStar","GitHub Star")}</T>
|
|
36
35
|
</S>
|
|
37
36
|
<S style={e.metricDot}/>
|
|
38
37
|
<S style={e.metricItem}>
|
|
39
|
-
<
|
|
40
|
-
<T style={e.metricText}>npm Package</T>
|
|
38
|
+
<Ct size={13}color={t.npmRed}/>
|
|
39
|
+
<T style={e.metricText}>{x("support.npmPackage","npm Package")}</T>
|
|
41
40
|
</S>
|
|
42
41
|
<S style={e.metricDot}/>
|
|
43
42
|
<S style={e.metricItem}>
|
|
44
|
-
<T style={e.metricText}>100% Free</T>
|
|
43
|
+
<T style={e.metricText}>{x("support.free100","100% Free")}</T>
|
|
45
44
|
</S>
|
|
46
45
|
</S>
|
|
47
46
|
|
|
48
47
|
|
|
49
|
-
<
|
|
48
|
+
<N accessible={!0}accessibilityRole="button"accessibilityLabel="Star on GitHub"onPress={W}style={e.primaryButton}>
|
|
50
49
|
<S style={e.primaryButtonContent}>
|
|
51
|
-
<
|
|
52
|
-
<T style={e.primaryButtonText}>Star on GitHub & npm</T>
|
|
50
|
+
<E size={16}color={t.white}/>
|
|
51
|
+
<T style={e.primaryButtonText}>{x("support.starOnGithubNpm","Star on GitHub & npm")}</T>
|
|
53
52
|
</S>
|
|
54
|
-
</
|
|
53
|
+
</N>
|
|
55
54
|
|
|
56
55
|
|
|
57
|
-
<
|
|
56
|
+
<N accessible={!0}accessibilityRole="button"accessibilityLabel="I already starred"onPress={U}style={e.secondaryButton}>
|
|
58
57
|
<S style={e.secondaryButtonContent}>
|
|
59
|
-
<
|
|
60
|
-
<T style={e.secondaryButtonText}>I Already Starred</T>
|
|
58
|
+
<St size={13}color={t.purple}/>
|
|
59
|
+
<T style={e.secondaryButtonText}>{x("support.alreadyStarred","I Already Starred")}</T>
|
|
61
60
|
</S>
|
|
62
|
-
</
|
|
61
|
+
</N>
|
|
63
62
|
|
|
64
63
|
|
|
65
64
|
<S style={e.footerRow}>
|
|
66
|
-
<
|
|
67
|
-
<T style={e.footerLinkText}>Remind Me Later</T>
|
|
68
|
-
</
|
|
65
|
+
<_ onPress={v}hitSlop={{top:8,bottom:8,left:8,right:8}}>
|
|
66
|
+
<T style={e.footerLinkText}>{x("support.remindMeLater","Remind Me Later")}</T>
|
|
67
|
+
</_>
|
|
69
68
|
|
|
70
69
|
<S style={e.footerSeparator}/>
|
|
71
70
|
|
|
72
|
-
<
|
|
73
|
-
<T style={e.footerLinkTextMuted}>Don't Ask Again</T>
|
|
74
|
-
</
|
|
71
|
+
<_ onPress={$}hitSlop={{top:8,bottom:8,left:8,right:8}}>
|
|
72
|
+
<T style={e.footerLinkTextMuted}>{x("support.dontAskAgain","Don't Ask Again")}</T>
|
|
73
|
+
</_>
|
|
75
74
|
</S>
|
|
76
75
|
</r.View>
|
|
77
76
|
</r.View>
|
|
78
|
-
</
|
|
77
|
+
</X>:null};const e=F.create({backdrop:{...F.absoluteFillObject,backgroundColor:"rgba(15, 23, 42, 0.65)",justifyContent:"center",alignItems:"center",paddingHorizontal:20,zIndex:99999},cardContainer:{width:"100%",maxWidth:380,backgroundColor:t.white,borderRadius:22,padding:22,alignItems:"center",shadowColor:t.black,shadowOffset:{width:0,height:8},shadowOpacity:.22,shadowRadius:20,elevation:12,borderWidth:1.5,borderColor:`${t.purple}25`},headerIconWrapper:{position:"relative",alignItems:"center",justifyContent:"center",marginBottom:12},iconGlow:{position:"absolute",width:68,height:68,borderRadius:34,backgroundColor:`${t.amber500}22`},iconCircle:{width:54,height:54,borderRadius:27,backgroundColor:t.amber100,borderWidth:2,borderColor:t.amber200,alignItems:"center",justifyContent:"center"},closeBtn:{position:"absolute",top:14,right:14,width:28,height:28,borderRadius:14,backgroundColor:t.grayBackground,alignItems:"center",justifyContent:"center"},pillBadge:{backgroundColor:`${t.purple}14`,paddingHorizontal:9,paddingVertical:3,borderRadius:10,marginBottom:8},pillBadgeText:{fontFamily:C.interBold,fontSize:9.5,color:t.purple,letterSpacing:.6},title:{fontFamily:C.interBold,fontSize:18,lineHeight:23,color:t.primaryBlack,textAlign:"center",marginBottom:6},description:{fontFamily:C.interRegular,fontSize:12.5,lineHeight:18,color:t.grayText,textAlign:"center",marginBottom:14,paddingHorizontal:8},metricsBar:{flexDirection:"row",alignItems:"center",justifyContent:"center",backgroundColor:t.grayBackground,paddingVertical:7,paddingHorizontal:14,borderRadius:10,marginBottom:16,gap:8},metricItem:{flexDirection:"row",alignItems:"center",gap:4},metricText:{fontFamily:C.interMedium,fontSize:11,color:t.primaryBlack},metricDot:{width:3.5,height:3.5,borderRadius:2,backgroundColor:t.dividerColor},primaryButton:{width:"100%",backgroundColor:t.purple,borderRadius:12,paddingVertical:12,alignItems:"center",justifyContent:"center",marginBottom:8,shadowColor:t.purple,shadowOffset:{width:0,height:4},shadowOpacity:.3,shadowRadius:8,elevation:4},primaryButtonContent:{flexDirection:"row",alignItems:"center",gap:7},primaryButtonText:{fontFamily:C.interBold,fontSize:14,color:t.white},secondaryButton:{width:"100%",backgroundColor:`${t.purple}10`,borderWidth:1,borderColor:`${t.purple}30`,borderRadius:12,paddingVertical:10,alignItems:"center",justifyContent:"center",marginBottom:14},secondaryButtonContent:{flexDirection:"row",alignItems:"center",gap:6},secondaryButtonText:{fontFamily:C.interBold,fontSize:13,color:t.purple},footerRow:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:12},footerLinkText:{fontFamily:C.interMedium,fontSize:11.5,color:t.grayText},footerSeparator:{width:1,height:12,backgroundColor:t.dividerColor},footerLinkTextMuted:{fontFamily:C.interRegular,fontSize:11.5,color:t.grayTextWeak}});export default NpmStarPrompt;
|