react-native-inapp-inspector 2.5.0 → 2.5.2
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.ar.md +151 -53
- package/README.de.md +150 -52
- package/README.es.md +139 -42
- package/README.fr.md +151 -53
- package/README.hi.md +141 -43
- package/README.ja.md +150 -69
- package/README.ko.md +153 -55
- package/README.md +73 -14
- package/README.pt-BR.md +152 -54
- package/README.ru.md +153 -55
- package/README.zh-CN.md +95 -219
- package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +154 -9
- package/dist/commonjs/capture.d.ts +5 -2
- package/dist/commonjs/capture.js +1 -1
- package/dist/commonjs/components/Inspector/FabLauncher.js +12 -12
- package/dist/commonjs/components/Inspector/FloatingCaptureWidget.js +17 -17
- package/dist/commonjs/components/Inspector/InspectorHeader.js +41 -41
- package/dist/commonjs/components/Inspector/MainScreen.js +15 -15
- package/dist/commonjs/components/Inspector/MediaGalleryTab.js +52 -34
- package/dist/commonjs/components/Inspector/MediaPreviewModal.d.ts +20 -18
- package/dist/commonjs/components/Inspector/MediaPreviewModal.js +744 -304
- package/dist/commonjs/components/NetworkIcons.d.ts +12 -0
- package/dist/commonjs/components/NetworkIcons.js +56 -3
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- 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.js +1 -1
- package/dist/commonjs/native/NativeInspector.d.ts +4 -0
- package/dist/commonjs/native/NativeInspector.js +1 -1
- package/dist/commonjs/native/NativeNetworkInspector.d.ts +1 -0
- package/dist/commonjs/types/interfaces.d.ts +2 -0
- package/dist/esm/capture.d.ts +5 -2
- package/dist/esm/capture.js +1 -1
- package/dist/esm/components/Inspector/FabLauncher.js +37 -37
- package/dist/esm/components/Inspector/FloatingCaptureWidget.js +30 -30
- package/dist/esm/components/Inspector/InspectorHeader.js +34 -34
- package/dist/esm/components/Inspector/MainScreen.js +51 -51
- package/dist/esm/components/Inspector/MediaGalleryTab.js +100 -82
- package/dist/esm/components/Inspector/MediaPreviewModal.d.ts +20 -18
- package/dist/esm/components/Inspector/MediaPreviewModal.js +774 -334
- package/dist/esm/components/NetworkIcons.d.ts +12 -0
- package/dist/esm/components/NetworkIcons.js +256 -203
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- 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.js +3 -3
- package/dist/esm/native/NativeInspector.d.ts +4 -0
- package/dist/esm/native/NativeInspector.js +1 -1
- package/dist/esm/native/NativeNetworkInspector.d.ts +1 -0
- package/dist/esm/types/interfaces.d.ts +2 -0
- package/ios/NetworkInspectorModule.mm +487 -224
- package/package.json +1 -1
- package/react-native-inapp-inspector.podspec +1 -1
- package/src/native/NativeInspector.ts +22 -0
- package/src/native/NativeNetworkInspector.ts +1 -1
|
@@ -1,54 +1,54 @@
|
|
|
1
|
-
import{useCallback as
|
|
1
|
+
import{useCallback as te,useEffect as N,useRef as v,useState as W}from"react";import{Animated as n,Dimensions as De,PanResponder as Fe,Platform as q,StyleSheet as re,Text as X,View as S}from"react-native";import Se from"react-native-linear-gradient";import{useInspector as Be}from"./InspectorContext";import Y from"../TouchableScale";import{GripVerticalIcon as Ee,ScreenshotCaptureIcon as Ae,ScreenRecordIcon as Le}from"../NetworkIcons";import{ScreenCapture as M,generateCaptureId as $}from"../../capture";import{triggerNativeHaptic as B}from"../../native/NativeInspector";import{showToast as x}from"../../helpers/toast";import{AppColors as I}from"../../styles/AppColors";import{AppFonts as ve}from"../../styles/AppFonts";import{useTranslation as Oe}from"../../i18n";import{MediaPreviewModal as Ge}from"./MediaPreviewModal";export const FloatingCaptureWidget=()=>{const{refreshMediaCount:R,captureFps:H,captureScale:U,captureBitrate:E,captureMaxDurationSeconds:_,captureAudioMode:J,activeTab:xe,settingsPage:Ie,peekMode:je,previewMediaItem:A,setPreviewMediaItem:V}=Be(),{t:a}=Oe(),[k,P]=W(!1),[Re,L]=W(!1),[Ce,O]=W(0),C=v(null),D=v(new n.Value(1)).current,z=v(new n.Value(0)).current,i=v(new n.ValueXY({x:0,y:0})).current,T=v({x:0,y:0});N(()=>{const e=i.x.addListener(o=>T.current.x=o.value),t=i.y.addListener(o=>T.current.y=o.value);return()=>{i.x.removeListener(e),i.y.removeListener(t)}},[i]);const F=v(!1),Te=v(Fe.create({onStartShouldSetPanResponder:()=>!0,onStartShouldSetPanResponderCapture:()=>!1,onMoveShouldSetPanResponder:(e,t)=>Math.abs(t.dx)>2||Math.abs(t.dy)>2,onMoveShouldSetPanResponderCapture:(e,t)=>Math.abs(t.dx)>4||Math.abs(t.dy)>4,onPanResponderGrant:()=>{F.current=!0,i.setOffset({x:T.current.x,y:T.current.y}),i.setValue({x:0,y:0})},onPanResponderMove:n.event([null,{dx:i.x,dy:i.y}],{useNativeDriver:!1}),onPanResponderTerminationRequest:()=>!1,onShouldBlockNativeResponder:()=>!0,onPanResponderRelease:()=>{i.flattenOffset(),setTimeout(()=>{F.current=!1},100);const{width:e,height:t}=De.get("window"),o=e/2-20,Q=-o,Z=20,ee=-(t-140),G=T.current.x,j=T.current.y;if(G<Q||G>o||j<ee||j>Z){const ke=Math.min(Math.max(G,Q),o),Pe=Math.min(Math.max(j,ee),Z);n.spring(i,{toValue:{x:ke,y:Pe},friction:7,tension:50,useNativeDriver:!1}).start()}},onPanResponderTerminate:()=>{i.flattenOffset(),F.current=!1}})).current;N(()=>{M.isRecording().then(e=>{P(e)}).catch(()=>{})},[]),N(()=>{let e=null;return k?(O(0),C.current=setInterval(()=>{O(t=>t+1)},1e3),e=n.loop(n.sequence([n.timing(D,{toValue:1.15,duration:500,useNativeDriver:!0}),n.timing(D,{toValue:1,duration:500,useNativeDriver:!0})])),e.start()):(C.current&&(clearInterval(C.current),C.current=null),O(0),D.setValue(1)),()=>{C.current&&clearInterval(C.current),e&&e.stop()}},[k,D]);const Me=te(async()=>{if(!F.current)try{B("light"),L(!0),await new Promise(t=>setTimeout(t,60));const e=await M.takeScreenshot({format:"png",quality:.9,hideInspector:!1});if(L(!1),n.sequence([n.timing(z,{toValue:.65,duration:70,useNativeDriver:!0}),n.timing(z,{toValue:0,duration:200,useNativeDriver:!0})]).start(),e){B("success");const t=$("screenshot",e.format||"png"),o={id:t,type:"image",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,width:e.width,height:e.height};V(o),R?.().catch(()=>{}),x(a("header.screenshotCaptured","Screenshot captured"))}else x(a("header.screenshotFailed","Failed to capture screenshot"))}catch{L(!1),x(a("header.screenshotError","Error capturing screenshot"))}},[R,z,a]),K=te(async()=>{if(!F.current)try{if(k){B("medium");const e=await M.stopRecording();if(P(!1),e){B("success");const t=$("video",e.format),o={id:t,type:e.format==="gif"?"gif":"video",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||t,sizeBytes:e.sizeBytes,timestamp:e.timestamp,durationMs:e.durationMs,width:e.width,height:e.height,hasAudio:e.hasAudio,thumbnailUri:e.thumbnailUri};V(o),R?.().catch(()=>{}),x(a("header.recordingSaved",{duration:(e.durationMs/1e3).toFixed(1),defaultValue:`Recording saved (${(e.durationMs/1e3).toFixed(1)}s)`}))}}else B("medium"),P(!0),await M.startRecording({fps:H,scale:U,audioSource:J,bitrate:E>0?E:void 0,maxDurationSeconds:_})?x(a("header.recordingStarted","Recording started")):(P(!1),x(a("header.recordingStartFailed","Failed to start recording")))}catch{x(a("header.recordingError","Error during screen recording")),P(!1)}},[k,H,U,E,_,J,R,a]),Ve=e=>{const t=Math.floor(e/60),o=e%60;return`${t<10?"0":""}${t}:${o<10?"0":""}${o}`};return xe==="media"||Ie==="media"?null:<>
|
|
2
2
|
|
|
3
|
-
<
|
|
3
|
+
<n.View pointerEvents="none"style={[r.flashOverlay,{opacity:z}]}/>
|
|
4
4
|
|
|
5
|
-
{!
|
|
5
|
+
{!Re&&!A&&<n.View{...Te.panHandlers}style={[r.container,{transform:i.getTranslateTransform()}]}>
|
|
6
6
|
|
|
7
|
-
{
|
|
8
|
-
<
|
|
7
|
+
{k?<S style={r.recordingShadowWrapper}>
|
|
8
|
+
<Y onPress={K}style={r.recordingPillWrapper}>
|
|
9
9
|
<Se colors={["#E11D48","#BE123C"]}start={{x:0,y:0}}end={{x:1,y:0}}style={r.recordingPill}>
|
|
10
|
-
<
|
|
11
|
-
<
|
|
12
|
-
REC {
|
|
13
|
-
</
|
|
10
|
+
<n.View style={[r.recordingDot,{transform:[{scale:D}]}]}/>
|
|
11
|
+
<X style={r.recordingText}>
|
|
12
|
+
REC {Ve(Ce)}
|
|
13
|
+
</X>
|
|
14
14
|
<S style={r.stopIconBadge}>
|
|
15
15
|
<S style={r.stopIconSquare}/>
|
|
16
16
|
</S>
|
|
17
17
|
</Se>
|
|
18
|
-
</
|
|
18
|
+
</Y>
|
|
19
19
|
</S>:<S style={r.dockShadowWrapper}>
|
|
20
20
|
<Se colors={["#0E1326","#1A1E38","#0E1326"]}start={{x:0,y:0}}end={{x:1,y:0}}style={r.dockBar}>
|
|
21
21
|
|
|
22
|
-
<
|
|
23
|
-
<Ee size={13}color="rgba(255, 255, 255, 0.45)"/>
|
|
24
|
-
</S>
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
<N onPress={Me}style={r.menuItemBtn}accessible={!0}accessibilityLabel="Take Screenshot">
|
|
22
|
+
<Y onPress={Me}style={r.menuItemBtn}accessible={!0}accessibilityLabel="Take Screenshot">
|
|
28
23
|
<S style={[r.menuItemIconCircle,{backgroundColor:"rgba(56, 189, 248, 0.22)"}]}>
|
|
29
|
-
<
|
|
24
|
+
<Ae size={14}color={I.sky400}/>
|
|
30
25
|
</S>
|
|
31
|
-
<
|
|
32
|
-
{
|
|
33
|
-
</
|
|
34
|
-
</
|
|
26
|
+
<X style={r.menuItemText}>
|
|
27
|
+
{a("header.screenshot","Screenshot")}
|
|
28
|
+
</X>
|
|
29
|
+
</Y>
|
|
35
30
|
|
|
36
31
|
|
|
37
32
|
<S style={r.dockDivider}/>
|
|
38
33
|
|
|
39
34
|
|
|
40
|
-
<
|
|
35
|
+
<Y onPress={K}style={r.menuItemBtn}accessible={!0}accessibilityLabel={a("header.recordScreen","Record Screen")}>
|
|
41
36
|
<S style={[r.menuItemIconCircle,{backgroundColor:"rgba(244, 63, 94, 0.24)"}]}>
|
|
42
|
-
|
|
37
|
+
<Le size={14}color={I.rose400||"#FB7185"}/>
|
|
43
38
|
</S>
|
|
44
|
-
<
|
|
45
|
-
{
|
|
46
|
-
</
|
|
47
|
-
</
|
|
39
|
+
<X style={r.menuItemText}>
|
|
40
|
+
{a("header.record","Record")}
|
|
41
|
+
</X>
|
|
42
|
+
</Y>
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
<S style={r.dragGripArea}>
|
|
46
|
+
<Ee size={14}color="rgba(255, 255, 255, 0.55)"/>
|
|
47
|
+
</S>
|
|
48
48
|
</Se>
|
|
49
49
|
</S>}
|
|
50
|
-
</
|
|
50
|
+
</n.View>}
|
|
51
51
|
|
|
52
52
|
|
|
53
|
-
<
|
|
54
|
-
</>};const r=
|
|
53
|
+
<Ge item={A}visible={!!A}onClose={()=>V(null)}onDelete={async e=>{await M.deleteMedia(e.uri),R?.().catch(()=>{}),V(null)}}onConvertToGif={async e=>{const t=await M.convertToGif(e.uri,{fps:12,width:480});if(t){R?.().catch(()=>{});const o=$("anim","gif");V({id:o,type:"gif",format:"gif",uri:t.uri,filename:t.uri.split("/").pop()||o,sizeBytes:t.sizeBytes,timestamp:t.timestamp,durationMs:t.durationMs})}}}/>
|
|
54
|
+
</>};const r=re.create({flashOverlay:{...re.absoluteFillObject,backgroundColor:I.white,zIndex:999999},container:{position:"absolute",bottom:q.OS==="ios"?22:16,alignSelf:"center",alignItems:"center",justifyContent:"center",zIndex:999999,elevation:999999},dockShadowWrapper:{borderRadius:24,backgroundColor:"#0D1120",...q.select({ios:{shadowColor:I.black,shadowOffset:{width:0,height:6},shadowOpacity:.45,shadowRadius:14},android:{elevation:16}})},dockBar:{flexDirection:"row",alignItems:"center",borderRadius:24,overflow:"hidden"},dragGripArea:{paddingLeft:6,paddingRight:12,paddingVertical:10,alignItems:"center",justifyContent:"center"},dockDivider:{width:1,height:18,backgroundColor:"rgba(255, 255, 255, 0.14)"},menuItemBtn:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:7,paddingVertical:8.5,paddingHorizontal:12},menuItemIconCircle:{width:24,height:24,borderRadius:12,alignItems:"center",justifyContent:"center"},menuItemText:{fontFamily:ve.interSemiBold,fontSize:12,color:I.white,letterSpacing:.1},recordingShadowWrapper:{borderRadius:22,alignItems:"center",justifyContent:"center",...q.select({ios:{shadowColor:"#E11D48",shadowOffset:{width:0,height:4},shadowOpacity:.5,shadowRadius:12},android:{elevation:14}})},recordingPillWrapper:{borderRadius:22,overflow:"hidden"},recordingPill:{flexDirection:"row",alignItems:"center",justifyContent:"center",gap:8,height:38,paddingHorizontal:14,borderRadius:22,borderWidth:1.5,borderColor:"rgba(255, 255, 255, 0.45)"},recordingDot:{width:8,height:8,borderRadius:4,backgroundColor:"#FFFFFF"},recordingText:{fontFamily:ve.interBold,fontSize:12,color:I.white,letterSpacing:.4},stopIconBadge:{width:18,height:18,borderRadius:9,backgroundColor:"rgba(255, 255, 255, 0.28)",alignItems:"center",justifyContent:"center",marginLeft:3},stopIconSquare:{width:6,height:6,borderRadius:1.5,backgroundColor:I.white}});export default FloatingCaptureWidget;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import $,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as Ye,Platform as
|
|
1
|
+
import $,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as Ye,Platform as se,Pressable as Se,StatusBar as Ze,Text as C,TouchableOpacity as Te,useWindowDimensions as et,View as S}from"react-native";import St from"react-native-linear-gradient";import{useInspector as Tt}from"./InspectorContext";import G from"../TouchableScale";import{BrandCircleIcon as Ct}from"../BrandCircleIcon";import i from"../../styles";import{AppColors as t}from"../../styles/AppColors";import{AppFonts as D}from"../../styles/AppFonts";import{METHOD_COLORS as xt}from"../../constants";import{LIB_VERSION as de}from"../../constants";import{getStatusColor as ce,formatTime as zt,formatTimeShort as Ce,getSize as xe,formatByteSize as Vt,getAppVersionAndBuild as Dt,showToast as A}from"../../helpers";import{triggerNativeHaptic as O}from"../../native/NativeInspector";import{ScreenCapture as W,generateCaptureId as ue}from"../../capture";import{UpdateAvailableModal as Rt}from"./UpdateAvailableModal";import{MediaPreviewModal as It}from"./MediaPreviewModal";import{LanguageSelectorModal as Mt}from"./LanguageSelectorModal";import{WhiteBackNavigation as $t,SettingsIcon as Bt,CloseWhite as Lt,ChevronDownIcon as Ve,ClockIcon as _,SizeIcon as De,AppleIcon as Ht,AndroidIcon as At,NpmIcon as Ot,ResetIcon as Pt,BoltIcon as Et,EyeIcon as Wt}from"../NetworkIcons";import{useTranslation as Ft,SUPPORTED_LANGUAGES as ke,getLanguage as Ut}from"../../i18n";const Nt=$.memo(()=>{const{t:I,language:ge}=Ft(),{modalHeightPercent:ee,appIcon:jt,selected:R,setSelected:Re,selectedEvent:B,setSelectedEvent:Ie,selectedLog:L,setSelectedLog:Me,selectedReduxSlice:F,setSelectedReduxSlice:$e,selectedReduxAction:q,setSelectedReduxAction:Be,reduxState:Le,reduxLastActionMap:ve,updateAvailable:te,latestNpmVersion:He,clearAnim:Gt,activePulseAnim:Ae,unreadPulseAnim:Oe,runClearAllWithAnimation:_t,settingsPage:P,setSettingsPage:ie,isAboutOpen:re,setIsAboutOpen:Pe,resetToDefaults:Ee,closeModal:he,minimizeInspector:We,detailTitle:Fe,activeTab:V,environment:pe,selectedCrash:M,setSelectedCrash:Ue,selectedPush:k,setSelectedPush:Ne,selectedSocket:z,setSelectedSocket:je,refreshMediaCount:U,peekMode:oe,setPeekMode:Ge,previewMediaItem:me,setPreviewMediaItem:N}=Tt(),{width:Q}=et(),e=Q<360,j=Q<400,[_e,ae]=$.useState(!1),[qt,Qt]=$.useState(!1),[qe,fe]=$.useState(!1),[Qe]=$.useState(()=>Dt().formatted),be=Z(()=>{const T=ge||Ut();return ke.find(x=>x.code===T)||ke[0]},[ge]),[J,K]=$.useState(!1),[Jt,le]=$.useState(0),E=$.useRef(null);$.useEffect(()=>{W.isRecording().then(T=>{K(T)}).catch(()=>{})},[]),$.useEffect(()=>(J?(le(0),E.current=setInterval(()=>{le(T=>T+1)},1e3)):(E.current&&(clearInterval(E.current),E.current=null),le(0)),()=>{E.current&&clearInterval(E.current)}),[J]);const Kt=$.useCallback(async()=>{try{O("light");const T=await W.takeScreenshot({format:"png",quality:.9,hideInspector:!0});if(T){O("success");const x=ue("screenshot",T.format||"png"),H={id:x,type:"image",format:T.format,uri:T.uri,filename:T.uri.split("/").pop()||x,sizeBytes:T.sizeBytes,timestamp:T.timestamp,width:T.width,height:T.height};N(H),U?.().catch(()=>{}),A(I("header.screenshotCaptured"))}else A(I("header.screenshotFailed"))}catch{A(I("header.screenshotError"))}},[U,I]),Xt=$.useCallback(async()=>{try{if(J){O("medium");const T=await W.stopRecording();if(K(!1),T){O("success");const x=ue("video",T.format),H={id:x,type:T.format==="gif"?"gif":"video",format:T.format,uri:T.uri,filename:T.uri.split("/").pop()||x,sizeBytes:T.sizeBytes,timestamp:T.timestamp,durationMs:T.durationMs,width:T.width,height:T.height,hasAudio:T.hasAudio};N(H),U?.().catch(()=>{}),A(I("header.recordingSaved",{duration:(T.durationMs/1e3).toFixed(1)}))}}else O("medium"),await W.startRecording({fps:24,audioSource:"none"})?(K(!0),A(I("header.recordingStarted"))):A(I("header.recordingStartFailed"))}catch{A(I("header.recordingError")),K(!1)}},[J,I]),Yt=T=>{const x=Math.floor(T/60),H=T%60;return`${x.toString().padStart(2,"0")}:${H.toString().padStart(2,"0")}`},Zt=Z(()=>{const T=(pe||(__DEV__?"DEV":"PROD")).trim(),x=T.toUpperCase();return x==="DEV"||x.includes("DEV")||x==="LOCAL"?{label:T,bg:`${t.emerald500}40`,border:`${t.emerald400}8C`,text:t.mintGreenBorder}:x==="UAT"||x==="QA"||x==="TEST"?{label:T,bg:`${t.amber500}47`,border:`${t.amber400}99`,text:t.amberWarmBorder}:x==="PREPROD"||x==="STAGE"||x==="STAGING"?{label:T,bg:`${t.purple500}47`,border:`${t.purple400}99`,text:t.violetSoftBorder}:{label:T,bg:`${t.rose500}40`,border:`${t.roseBorder}8C`,text:t.errorBorder}},[pe]),X=V==="apis"&&R!=null||V==="analytics"&&B!=null||V==="logs"&&L!=null||V==="redux"&&(F!=null||q!=null)||V==="crash"&&M!=null||V==="push"&&k!=null||V==="socket"&&z!=null,Y=P!==null,ne=X||Y||re,Je=Z(()=>{switch(P){case"apis":return"APIs (Network)";case"logs":return"Console Logs";case"crash":return"Crash Protection";case"analytics":return"Analytics Logger";case"redux":return"Redux Inspector";case"media":return"Screencast (Media)";case"push":return"Push Notifications";default:return"Settings & Modules"}},[P]),ye=Z(()=>se.OS==="ios"?ee>=98?Q>=390?50:44:0:se.OS==="android"&&ee>=98?Ze.currentHeight||24:0,[ee,Q]),v=e?25:j?26.5:27,ei=e?36:j?38:40;return<>
|
|
2
2
|
<S style={[i.headerGradient,{minHeight:(e?44:48)+ye}]}>
|
|
3
3
|
|
|
4
4
|
<St colors={[t.indigo600,t.violet600]}start={{x:0,y:0}}end={{x:1,y:1}}style={{position:"absolute",top:0,left:0,right:0,bottom:0,borderTopLeftRadius:20,borderTopRightRadius:20}}pointerEvents="none"/>
|
|
5
5
|
<S style={{paddingTop:ye,width:"100%"}}>
|
|
6
6
|
<S style={[i.header,{width:"100%",justifyContent:"space-between",paddingHorizontal:e?10:12,paddingVertical:5.5,minHeight:e?44:48}]}>
|
|
7
7
|
<S style={{flexDirection:"row",alignItems:"center",gap:e?7:8,flex:X?void 0:1,flexShrink:X?0:1,minWidth:0}}>
|
|
8
|
-
{ne&&<
|
|
8
|
+
{ne&&<G onPress={()=>{if(re){Pe(!1);return}if(Y){ie(P==="main"?null:"main");return}Re(null),Ie(null),Me(null),$e(null),Be(null),Ue(null),Ne(null),je(null)}}hitSlop={15}style={{width:e?32:36,height:e?32:36,borderRadius:e?16:18,alignItems:"center",justifyContent:"center",backgroundColor:`${t.white}2E`,borderWidth:1,borderColor:`${t.white}4D`}}>
|
|
9
9
|
<S style={{position:"absolute",width:e?40:44,height:e?40:44,borderRadius:22,backgroundColor:`${t.white}1A`}}/>
|
|
10
10
|
<$t/>
|
|
11
|
-
</
|
|
11
|
+
</G>}
|
|
12
12
|
|
|
13
13
|
{re?<S style={{gap:3,flex:1,minWidth:0,justifyContent:"center"}}>
|
|
14
14
|
<S style={{flexDirection:"row",alignItems:"center",gap:6}}>
|
|
@@ -17,7 +17,7 @@ import $,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
|
|
|
17
17
|
</C>
|
|
18
18
|
<S style={{backgroundColor:`${t.white}26`,paddingHorizontal:e?5:6,paddingVertical:2,borderRadius:8,borderWidth:1,borderColor:`${t.white}20`}}>
|
|
19
19
|
<C style={{fontFamily:D.interBold,fontSize:e?8.5:9.5,lineHeight:12,color:t.white}}>
|
|
20
|
-
v{
|
|
20
|
+
v{de}
|
|
21
21
|
</C>
|
|
22
22
|
</S>
|
|
23
23
|
</S>
|
|
@@ -29,39 +29,39 @@ import $,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
|
|
|
29
29
|
<C style={{fontFamily:D.interBold,fontSize:e?15:16.5,lineHeight:e?19:21,color:t.white,letterSpacing:-.2}}numberOfLines={1}>
|
|
30
30
|
{Je}
|
|
31
31
|
</C>
|
|
32
|
-
{
|
|
32
|
+
{P==="main"&&<S style={{backgroundColor:`${t.white}26`,paddingHorizontal:e?5:6,paddingVertical:2,borderRadius:8,borderWidth:1,borderColor:`${t.white}20`}}>
|
|
33
33
|
<C style={{fontFamily:D.interBold,fontSize:e?8.5:9.5,lineHeight:12,color:t.white}}>
|
|
34
|
-
v{
|
|
34
|
+
v{de}
|
|
35
35
|
</C>
|
|
36
36
|
</S>}
|
|
37
37
|
</S>
|
|
38
38
|
<C style={{fontFamily:D.interRegular,fontSize:e?10:11,lineHeight:e?14:15,color:`${t.white}CC`,marginTop:1}}numberOfLines={1}>
|
|
39
|
-
{
|
|
39
|
+
{P==="main"?"Manage modules and preferences":"Configure module parameters"}
|
|
40
40
|
</C>
|
|
41
41
|
</S>:ne?null:<S style={{flexDirection:"row",alignItems:"center",gap:e?8:10,flex:1,minWidth:0,marginRight:4}}>
|
|
42
|
-
<Ct size={e?44:
|
|
42
|
+
<Ct size={e?44:j?46:48}/>
|
|
43
43
|
<S style={{gap:3,flex:1,minWidth:0,justifyContent:"center"}}>
|
|
44
44
|
|
|
45
|
-
<C style={[i.headerTitle,{fontFamily:D.interBold,fontWeight:"700",fontSize:e?13:
|
|
45
|
+
<C style={[i.headerTitle,{fontFamily:D.interBold,fontWeight:"700",fontSize:e?13:j?13.5:14.5,lineHeight:e?17:j?18:19.5,color:t.white,letterSpacing:-.2,paddingBottom:0}]}numberOfLines={1}ellipsizeMode="tail">
|
|
46
46
|
react-native-inapp-inspector
|
|
47
47
|
</C>
|
|
48
48
|
|
|
49
49
|
|
|
50
50
|
<S style={{flexDirection:"row",alignItems:"center",gap:4.5,minWidth:0,marginTop:1.5}}>
|
|
51
51
|
|
|
52
|
-
<
|
|
52
|
+
<G onPress={()=>{O("light"),fe(!0)}}hitSlop={6}accessible={!0}accessibilityRole="button"accessibilityLabel={I("settings.general.selectLanguage","Select Language")}style={{flexDirection:"row",alignItems:"center",backgroundColor:`${t.white}24`,borderRadius:5,paddingHorizontal:5.5,paddingVertical:2,gap:3.5,borderWidth:1,borderColor:`${t.white}38`,flexShrink:0}}>
|
|
53
53
|
<C style={{fontSize:9,lineHeight:11}}>
|
|
54
|
-
{
|
|
54
|
+
{be?.flag||"\u{1F310}"}
|
|
55
55
|
</C>
|
|
56
56
|
<C style={{fontFamily:D.interBold,fontSize:8.5,lineHeight:11,color:t.white,letterSpacing:.2}}numberOfLines={1}>
|
|
57
|
-
{
|
|
57
|
+
{be?.code?.toUpperCase()||"EN"}
|
|
58
58
|
</C>
|
|
59
59
|
<Ve size={6.5}color={`${t.white}CC`}/>
|
|
60
|
-
</
|
|
60
|
+
</G>
|
|
61
61
|
|
|
62
62
|
|
|
63
63
|
<S style={{flexDirection:"row",alignItems:"center",backgroundColor:`${t.white}1F`,borderRadius:5,paddingHorizontal:5.5,paddingVertical:2,gap:3.5,borderWidth:1,borderColor:`${t.white}2E`,flexShrink:1,minWidth:0}}>
|
|
64
|
-
{
|
|
64
|
+
{se.OS==="ios"?<Ht color={`${t.white}E6`}size={9}/>:<At color={`${t.white}E6`}size={9}/>}
|
|
65
65
|
<C style={{fontFamily:D.interMedium,fontSize:8.5,lineHeight:11,color:`${t.white}EB`,letterSpacing:.1}}numberOfLines={1}ellipsizeMode="tail">
|
|
66
66
|
{Qe}
|
|
67
67
|
</C>
|
|
@@ -71,7 +71,7 @@ import $,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
|
|
|
71
71
|
<Se onPress={()=>{te?ae(!0):Ye.openURL("https://www.npmjs.com/package/react-native-inapp-inspector").catch(()=>{})}}style={{flexDirection:"row",alignItems:"center",backgroundColor:`${t.white}1F`,borderRadius:5,paddingHorizontal:6,paddingVertical:2,gap:3.5,borderWidth:1,borderColor:`${t.white}2E`,flexShrink:0}}>
|
|
72
72
|
<Ot size={9}color={t.npmRedLight}/>
|
|
73
73
|
<C style={{fontFamily:D.interMedium,fontSize:8.5,lineHeight:11,color:`${t.white}EB`,letterSpacing:.1}}>
|
|
74
|
-
v{
|
|
74
|
+
v{de}
|
|
75
75
|
</C>
|
|
76
76
|
{te&&<C style={{fontFamily:D.interBold,fontSize:8,color:t.warningAmber}}>
|
|
77
77
|
●
|
|
@@ -104,14 +104,14 @@ import $,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
|
|
|
104
104
|
</C>
|
|
105
105
|
</S>
|
|
106
106
|
<S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
|
|
107
|
-
<S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${
|
|
108
|
-
<S style={[i.headerStatusDot,{backgroundColor:
|
|
107
|
+
<S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${ce(R.status)}26`,borderWidth:1,borderColor:`${ce(R.status)}55`}}>
|
|
108
|
+
<S style={[i.headerStatusDot,{backgroundColor:ce(R.status),width:e?6:7,height:e?6:7}]}/>
|
|
109
109
|
<C style={[i.headerSubTitle,{fontFamily:D.interBold,fontSize:e?10:11}]}>
|
|
110
110
|
{R.status===0?"Failed":R.status??"Pending"}
|
|
111
111
|
</C>
|
|
112
112
|
</S>
|
|
113
113
|
<S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
|
|
114
|
-
<
|
|
114
|
+
<_ color={t.white}size={e?10:11}/>
|
|
115
115
|
<C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
|
|
116
116
|
{R.duration!=null?`${R.duration}ms`:"\u2014"}
|
|
117
117
|
</C>
|
|
@@ -159,13 +159,13 @@ import $,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
|
|
|
159
159
|
</S>
|
|
160
160
|
<S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
|
|
161
161
|
<S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
|
|
162
|
-
<
|
|
162
|
+
<_ color={t.white}size={e?10:11}/>
|
|
163
163
|
<C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
|
|
164
164
|
{zt(L.timestamp)}
|
|
165
165
|
</C>
|
|
166
166
|
</S>
|
|
167
167
|
</S>
|
|
168
|
-
</S>:V==="redux"&&
|
|
168
|
+
</S>:V==="redux"&&F!=null?(()=>{const T=Le?.[F],x=T&&typeof T=="object"?Object.keys(T).length:typeof T<"u"?1:0,H=xe(T),we=ve[F];return<S style={i.headerDetailCenter}>
|
|
169
169
|
<S style={i.headerDetailRow}>
|
|
170
170
|
<S style={[i.headerMethodBadge,{backgroundColor:`${t.purple}4D`,paddingHorizontal:e?5:6,paddingVertical:e?2:3}]}>
|
|
171
171
|
<C style={[i.headerMethodText,{fontSize:e?9:10}]}>
|
|
@@ -173,7 +173,7 @@ import $,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
|
|
|
173
173
|
</C>
|
|
174
174
|
</S>
|
|
175
175
|
<C style={[i.headerDetailTitle,{fontSize:e?13.5:15}]}numberOfLines={1}ellipsizeMode="middle">
|
|
176
|
-
{
|
|
176
|
+
{F}
|
|
177
177
|
</C>
|
|
178
178
|
</S>
|
|
179
179
|
<S style={{flexDirection:"row",alignItems:"center",gap:e?4:6,marginTop:3,paddingVertical:1}}>
|
|
@@ -191,14 +191,14 @@ import $,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
|
|
|
191
191
|
•
|
|
192
192
|
</C>
|
|
193
193
|
<C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
|
|
194
|
-
{
|
|
194
|
+
{H}
|
|
195
195
|
</C>
|
|
196
196
|
{we?.timestamp&&<>
|
|
197
197
|
<C style={[i.headerSubTitle,{opacity:.6,fontSize:e?10:11}]}>
|
|
198
198
|
•
|
|
199
199
|
</C>
|
|
200
200
|
<S style={{flexDirection:"row",alignItems:"center",gap:3}}>
|
|
201
|
-
<
|
|
201
|
+
<_ color={t.white}size={e?9:10}/>
|
|
202
202
|
<C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
|
|
203
203
|
{we.timestamp}
|
|
204
204
|
</C>
|
|
@@ -266,7 +266,7 @@ import $,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
|
|
|
266
266
|
</C>
|
|
267
267
|
</S>
|
|
268
268
|
<S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2,borderRadius:20,backgroundColor:`${t.white}29`}}>
|
|
269
|
-
<
|
|
269
|
+
<_ color={t.white}size={e?9.5:10.5}/>
|
|
270
270
|
<C style={[i.headerSubTitle,{fontSize:e?9.5:10.5}]}>
|
|
271
271
|
{Ce(k.timestamp)}
|
|
272
272
|
</C>
|
|
@@ -291,7 +291,7 @@ import $,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
|
|
|
291
291
|
</C>
|
|
292
292
|
</S>
|
|
293
293
|
<S style={{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:e?6:8,paddingVertical:2.5,borderRadius:20,backgroundColor:`${t.white}29`}}>
|
|
294
|
-
<
|
|
294
|
+
<_ color={t.white}size={e?10:11}/>
|
|
295
295
|
<C style={[i.headerSubTitle,{fontSize:e?10:11}]}>
|
|
296
296
|
{z.duration!=null?`${z.duration}ms`:Ce(z.startTime)}
|
|
297
297
|
</C>
|
|
@@ -308,18 +308,18 @@ import $,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
|
|
|
308
308
|
|
|
309
309
|
<S style={[i.headerRight,{flexDirection:"row",alignItems:"center",justifyContent:"flex-end",flexShrink:0,gap:e?4:5}]}>
|
|
310
310
|
|
|
311
|
-
{Y?<
|
|
311
|
+
{Y?<G onPress={()=>{Ke.alert("Reset All Settings","This restores all module visibility and UI preferences to defaults. Continue?",[{text:"Cancel",style:"cancel"},{text:"Reset",style:"destructive",onPress:Ee}])}}hitSlop={15}style={[i.closeButtonSquare,{width:v,height:v,borderRadius:e?6:7,backgroundColor:"rgba(245, 158, 11, 0.26)",borderColor:"rgba(252, 211, 77, 0.45)",borderWidth:1}]}>
|
|
312
312
|
<Pt color={t.white}size={e?12:14}/>
|
|
313
|
-
</
|
|
313
|
+
</G>:ne?null:<>
|
|
314
314
|
|
|
315
|
-
<
|
|
315
|
+
<G accessible={!0}accessibilityRole="button"accessibilityLabel={oe?"Disable peek-through":"Enable peek-through"}onPress={()=>{O("light"),Ge(T=>!T)}}hitSlop={15}style={[i.closeButtonSquare,{width:v,height:v,borderRadius:e?6:7,backgroundColor:oe?"rgba(6, 182, 212, 0.38)":"rgba(6, 182, 212, 0.18)",borderColor:oe?"rgba(103, 232, 249, 0.65)":"rgba(103, 232, 249, 0.35)",borderWidth:1}]}>
|
|
316
316
|
<Wt color={t.white}size={e?12:14}/>
|
|
317
|
-
</
|
|
317
|
+
</G>
|
|
318
318
|
|
|
319
319
|
|
|
320
|
-
<
|
|
320
|
+
<G accessible={!0}accessibilityRole="button"accessibilityLabel="Settings"onPress={()=>ie("main")}hitSlop={15}style={[i.closeButtonSquare,{width:v,height:v,borderRadius:e?6:7,backgroundColor:"rgba(168, 85, 247, 0.28)",borderColor:"rgba(216, 180, 254, 0.45)",borderWidth:1}]}>
|
|
321
321
|
<Bt color={t.white}size={e?12:14}/>
|
|
322
|
-
</
|
|
322
|
+
</G>
|
|
323
323
|
</>}
|
|
324
324
|
|
|
325
325
|
|
|
@@ -337,11 +337,11 @@ import $,{useMemo as Z}from"react";import{Alert as Ke,Animated as Xe,Linking as
|
|
|
337
337
|
</S>
|
|
338
338
|
|
|
339
339
|
|
|
340
|
-
<Rt visible={
|
|
340
|
+
<Rt visible={_e}latestVersion={He}onClose={()=>ae(!1)}/>
|
|
341
341
|
|
|
342
342
|
|
|
343
|
-
<Mt visible={qe}onClose={()=>
|
|
343
|
+
<Mt visible={qe}onClose={()=>fe(!1)}/>
|
|
344
344
|
|
|
345
345
|
|
|
346
|
-
<It item={
|
|
346
|
+
<It item={me}visible={!!me}onClose={()=>N(null)}onDelete={async T=>{await W.deleteMedia(T.uri),U?.().catch(()=>{}),N(null)}}onConvertToGif={async T=>{const x=await W.convertToGif(T.uri,{fps:12,width:480});if(x){U?.().catch(()=>{});const H=ue("anim","gif");N({id:H,type:"gif",format:"gif",uri:x.uri,filename:x.uri.split("/").pop()||H,sizeBytes:x.sizeBytes,timestamp:x.timestamp,durationMs:x.durationMs})}}}/>
|
|
347
347
|
</>});export default Nt;
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
import
|
|
2
|
-
{(
|
|
3
|
-
<Se visible={
|
|
4
|
-
<Me onClose={
|
|
5
|
-
<B style={[
|
|
6
|
-
<Be style={
|
|
7
|
-
<B style={[
|
|
1
|
+
import se,{useEffect as P,useRef as L}from"react";import{Animated as o,Modal as Se,Platform as G,Pressable as Be,StatusBar as Ce,StyleSheet as N,View as B}from"react-native";import{useInspector as Ve}from"./InspectorContext";import Me from"../ErrorBoundary";import S from"../ModuleErrorBoundary";import Ne from"./FabLauncher";import Re from"./InspectorHeader";import{SecondaryTelemetryStrip as De}from"./SecondaryTelemetryStrip";import Te from"./TabBar";import Ee from"./NetworkTab";import Ae from"./NetworkDetail";import Pe from"./LogDetail";import Le from"./ConsoleTab";import Ie from"./AnalyticsTab";import Oe from"../AnalyticsDetail";import We from"./ReduxTab";import Fe from"./ReduxDetail";import Ge from"./CrashTab";import He from"./CrashDetail";import Ye from"./PushTab";import Ue from"./PushDetail";import _e from"./SocketTab";import $e from"./SocketDetail";import Je from"./DeviceInfoTab";import Ke from"./StorageTab";import Qe from"./DebuggingTab";import{MediaGalleryTab as Xe}from"./MediaGalleryTab";import Ze from"./SettingsPanel";import So from"./AboutModal";import{SupportPage as Bo}from"./SupportPage";import{ConfirmationModal as Co}from"./ConfirmationModal";import{FloatingCaptureWidget as Vo}from"./FloatingCaptureWidget";import Mo from"./NpmUpdateToast";import No from"./NpmStarPrompt";import Ro from"../Toast";import q from"../../styles";import{AppColors as C}from"../../styles/AppColors";import Do from"./NavigationTracker";import{isLocalDebugEnvironment as To}from"../../helpers";const xo=()=>{const{visible:I,modalAnimationType:V,closeModal:M,modalHeightPercent:O,selected:H,selectedEvent:W,selectedLog:Y,selectedReduxSlice:j,selectedReduxAction:J,selectedCrash:U,selectedPush:F,setSelectedPush:K,selectedSocket:z,setSelectedSocket:Q,settingsPage:R,isAboutOpen:D,setIsAboutOpen:X,isSupportOpen:T,setIsSupportOpen:Z,activeTab:e,isReady:ee,enabled:oe,isDismissed:te,hasNavigationContext:re,setNavState:ae,confirmModal:v,setConfirmModal:ie,peekMode:le,peekOpacity:_}=Ve(),$=e==="apis"&&H!=null||e==="analytics"&&W!=null||e==="logs"&&Y!=null||e==="redux"&&(j!=null||J!=null)||e==="crash"&&U!=null||e==="push"&&F!=null||e==="socket"&&z!=null,x=L(new o.Value(0)).current;P(()=>{R!==null&&(x.setValue(0),o.spring(x,{toValue:1,friction:8,tension:65,useNativeDriver:!1}).start())},[R!==null]);const E=L(new o.Value(0)).current;P(()=>{D&&(E.setValue(0),o.spring(E,{toValue:1,friction:8,tension:65,useNativeDriver:!1}).start())},[D]);const A=L(new o.Value(0)).current;return P(()=>{T&&(A.setValue(0),o.spring(A,{toValue:1,friction:8,tension:65,useNativeDriver:!1}).start())},[T]),<>
|
|
2
|
+
{(G.OS==="ios"||G.OS==="android")&&oe&&!te&&!I&&<Ne/>}
|
|
3
|
+
<Se visible={I}animationType={V}transparent statusBarTranslucent={!0}onRequestClose={M}>
|
|
4
|
+
<Me onClose={M}>
|
|
5
|
+
<B style={[q.modalBackdrop,{zIndex:999999,elevation:999999}]}>
|
|
6
|
+
<Be style={q.modalBackdropPressable}onPress={M}/>
|
|
7
|
+
<B style={[q.modalContentCard,{height:`${O}%`,borderTopLeftRadius:O>=100?0:20,borderTopRightRadius:O>=100?0:20,opacity:le?Math.max(.05,Math.min(1,typeof _=="number"?_:.75)):1,zIndex:9999999,elevation:999999}]}>
|
|
8
8
|
<Ce translucent backgroundColor="transparent"barStyle="light-content"/>
|
|
9
9
|
|
|
10
10
|
<Re/>
|
|
11
11
|
<De/>
|
|
12
12
|
|
|
13
|
-
<B style={{flex:1,overflow:"hidden",backgroundColor:
|
|
13
|
+
<B style={{flex:1,overflow:"hidden",backgroundColor:C.grayBackground}}>
|
|
14
14
|
|
|
15
|
-
<B style={{flex:1}}pointerEvents={
|
|
15
|
+
<B style={{flex:1}}pointerEvents={$||R!==null||D||T?"none":"auto"}>
|
|
16
16
|
<Te/>
|
|
17
|
-
{
|
|
17
|
+
{ee?<B style={{flex:1}}>
|
|
18
18
|
{e==="apis"&&<S moduleName="Network API Monitor">
|
|
19
19
|
<Ee/>
|
|
20
20
|
</S>}
|
|
@@ -45,55 +45,55 @@ import ne,{useEffect as A,useRef as P}from"react";import{Animated as o,Modal as
|
|
|
45
45
|
{e==="media"&&<S moduleName="Media Gallery">
|
|
46
46
|
<Xe/>
|
|
47
47
|
</S>}
|
|
48
|
-
{
|
|
48
|
+
{G.OS==="android"&&To()&&e==="debugging"&&<S moduleName="Debugging Utilities">
|
|
49
49
|
<Qe/>
|
|
50
50
|
</S>}
|
|
51
51
|
</B>:<Eo/>}
|
|
52
52
|
</B>
|
|
53
53
|
|
|
54
54
|
|
|
55
|
-
{
|
|
56
|
-
{e==="apis"&&
|
|
55
|
+
{$&&<B style={[N.absoluteFill,{backgroundColor:C.contentBg,zIndex:10}]}>
|
|
56
|
+
{e==="apis"&&H!=null&&<S moduleName="Network Request Details">
|
|
57
57
|
<Ae/>
|
|
58
58
|
</S>}
|
|
59
|
-
{e==="analytics"&&
|
|
60
|
-
<Oe event={
|
|
59
|
+
{e==="analytics"&&W!=null&&<S moduleName="Analytics Event Details">
|
|
60
|
+
<Oe event={W}/>
|
|
61
61
|
</S>}
|
|
62
|
-
{e==="logs"&&
|
|
62
|
+
{e==="logs"&&Y!=null&&<S moduleName="Console Log Details">
|
|
63
63
|
<Pe/>
|
|
64
64
|
</S>}
|
|
65
65
|
{e==="redux"&&<S moduleName="Redux Action & State Details">
|
|
66
66
|
<Fe/>
|
|
67
67
|
</S>}
|
|
68
|
-
{e==="crash"&&
|
|
68
|
+
{e==="crash"&&U!=null&&<S moduleName="Crash Log Details">
|
|
69
69
|
<He/>
|
|
70
70
|
</S>}
|
|
71
|
-
{e==="push"&&
|
|
72
|
-
<Ue item={
|
|
71
|
+
{e==="push"&&F!=null&&<S moduleName="Push Notification Details">
|
|
72
|
+
<Ue item={F}onClose={()=>K(null)}/>
|
|
73
73
|
</S>}
|
|
74
|
-
{e==="socket"&&
|
|
75
|
-
<$e item={
|
|
74
|
+
{e==="socket"&&z!=null&&<S moduleName="WebSocket & Socket.IO Details">
|
|
75
|
+
<$e item={z}onClose={()=>Q(null)}/>
|
|
76
76
|
</S>}
|
|
77
77
|
</B>}
|
|
78
78
|
|
|
79
79
|
|
|
80
|
-
{
|
|
80
|
+
{R!==null&&<o.View style={[N.absoluteFill,{backgroundColor:C.grayBackground,opacity:x,transform:[{translateY:x.interpolate({inputRange:[0,1],outputRange:[24,0]})}]}]}>
|
|
81
81
|
<S moduleName="Settings Panel">
|
|
82
82
|
<Ze/>
|
|
83
83
|
</S>
|
|
84
84
|
</o.View>}
|
|
85
85
|
|
|
86
86
|
|
|
87
|
-
{
|
|
87
|
+
{D&&<o.View style={[N.absoluteFill,{backgroundColor:C.primaryLight,opacity:E,transform:[{translateY:E.interpolate({inputRange:[0,1],outputRange:[24,0]})}]}]}>
|
|
88
88
|
<S moduleName="About & Diagnostics">
|
|
89
|
-
<So onClose={()=>
|
|
89
|
+
<So onClose={()=>X(!1)}/>
|
|
90
90
|
</S>
|
|
91
91
|
</o.View>}
|
|
92
92
|
|
|
93
93
|
|
|
94
|
-
{
|
|
94
|
+
{T&&<o.View style={[N.absoluteFill,{backgroundColor:C.primaryLight,opacity:A,transform:[{translateY:A.interpolate({inputRange:[0,1],outputRange:[24,0]})}]}]}>
|
|
95
95
|
<S moduleName="Support & Community">
|
|
96
|
-
<Bo onClose={()=>
|
|
96
|
+
<Bo onClose={()=>Z(!1)}/>
|
|
97
97
|
</S>
|
|
98
98
|
</o.View>}
|
|
99
99
|
</B>
|
|
@@ -111,44 +111,44 @@ import ne,{useEffect as A,useRef as P}from"react";import{Animated as o,Modal as
|
|
|
111
111
|
<Vo/>
|
|
112
112
|
|
|
113
113
|
|
|
114
|
-
<Co visible={
|
|
114
|
+
<Co visible={v.visible}title={v.title}message={v.message}confirmText={v.confirmText}cancelText={v.cancelText}isDestructive={!0}icon="trash"onConfirm={v.onConfirm}onCancel={()=>ie(ne=>({...ne,visible:!1}))}/>
|
|
115
115
|
</B>
|
|
116
116
|
</B>
|
|
117
117
|
</Me>
|
|
118
|
-
{
|
|
118
|
+
{re&&<Do onStateChange={ae}/>}
|
|
119
119
|
</Se>
|
|
120
|
-
</>},Eo=
|
|
120
|
+
</>},Eo=se.memo(function(){const V=L(new o.Value(.35)).current;return P(()=>{const M=o.loop(o.sequence([o.timing(V,{toValue:.85,duration:750,useNativeDriver:!1}),o.timing(V,{toValue:.35,duration:750,useNativeDriver:!1})]));return M.start(),()=>M.stop()},[V]),<B style={t.container}>
|
|
121
121
|
|
|
122
|
-
<B style={
|
|
123
|
-
<o.View style={[
|
|
124
|
-
<B style={
|
|
125
|
-
<o.View style={[
|
|
126
|
-
<o.View style={[
|
|
122
|
+
<B style={t.toolbarSkeleton}>
|
|
123
|
+
<o.View style={[t.searchBarSkeleton,{opacity:V}]}/>
|
|
124
|
+
<B style={t.actionButtonsRow}>
|
|
125
|
+
<o.View style={[t.iconButtonSkeleton,{opacity:V}]}/>
|
|
126
|
+
<o.View style={[t.iconButtonSkeleton,{opacity:V}]}/>
|
|
127
127
|
</B>
|
|
128
128
|
</B>
|
|
129
129
|
|
|
130
130
|
|
|
131
|
-
<B style={
|
|
132
|
-
<o.View style={[
|
|
133
|
-
<o.View style={[
|
|
134
|
-
<o.View style={[
|
|
135
|
-
<o.View style={[
|
|
131
|
+
<B style={t.chipStripSkeleton}>
|
|
132
|
+
<o.View style={[t.chipSkeleton,{width:48,opacity:V}]}/>
|
|
133
|
+
<o.View style={[t.chipSkeleton,{width:68,opacity:V}]}/>
|
|
134
|
+
<o.View style={[t.chipSkeleton,{width:76,opacity:V}]}/>
|
|
135
|
+
<o.View style={[t.chipSkeleton,{width:58,opacity:V}]}/>
|
|
136
136
|
</B>
|
|
137
137
|
|
|
138
138
|
|
|
139
|
-
{[0,1,2,3].map(
|
|
140
|
-
<B style={
|
|
141
|
-
<B style={
|
|
142
|
-
<B style={
|
|
143
|
-
<B style={
|
|
139
|
+
{[0,1,2,3].map(M=><o.View key={`skeleton_card_${M}`}style={[t.cardSkeleton,{opacity:V}]}>
|
|
140
|
+
<B style={t.cardTopRow}>
|
|
141
|
+
<B style={t.badgeGroup}>
|
|
142
|
+
<B style={t.statusBadgeSkeleton}/>
|
|
143
|
+
<B style={t.methodBadgeSkeleton}/>
|
|
144
144
|
</B>
|
|
145
|
-
<B style={
|
|
145
|
+
<B style={t.timeSkeleton}/>
|
|
146
146
|
</B>
|
|
147
|
-
<B style={
|
|
148
|
-
<B style={
|
|
149
|
-
<B style={
|
|
150
|
-
<B style={
|
|
151
|
-
<B style={
|
|
147
|
+
<B style={t.urlLineLong}/>
|
|
148
|
+
<B style={t.urlLineShort}/>
|
|
149
|
+
<B style={t.cardBottomRow}>
|
|
150
|
+
<B style={t.metaPillSkeleton}/>
|
|
151
|
+
<B style={t.metaPillSkeleton}/>
|
|
152
152
|
</B>
|
|
153
153
|
</o.View>)}
|
|
154
|
-
</B>}),
|
|
154
|
+
</B>}),t=N.create({container:{flex:1,paddingHorizontal:12,paddingTop:8},toolbarSkeleton:{flexDirection:"row",alignItems:"center",gap:8,marginBottom:8},searchBarSkeleton:{flex:1,height:36,borderRadius:8,backgroundColor:C.graySurface,borderWidth:1,borderColor:C.dividerColor},actionButtonsRow:{flexDirection:"row",gap:6},iconButtonSkeleton:{width:36,height:36,borderRadius:8,backgroundColor:C.graySurface,borderWidth:1,borderColor:C.dividerColor},chipStripSkeleton:{flexDirection:"row",gap:6,marginBottom:10},chipSkeleton:{height:24,borderRadius:6,backgroundColor:C.graySurface,borderWidth:1,borderColor:C.dividerColor},cardSkeleton:{backgroundColor:C.primaryLight,borderRadius:10,padding:12,marginBottom:8,borderWidth:1,borderColor:C.dividerColor},cardTopRow:{flexDirection:"row",justifyContent:"space-between",alignItems:"center",marginBottom:8},badgeGroup:{flexDirection:"row",alignItems:"center",gap:6},statusBadgeSkeleton:{width:38,height:18,borderRadius:4,backgroundColor:C.graySurface},methodBadgeSkeleton:{width:44,height:18,borderRadius:4,backgroundColor:C.graySurface},timeSkeleton:{width:48,height:12,borderRadius:4,backgroundColor:C.graySurface},urlLineLong:{height:13,borderRadius:4,backgroundColor:C.graySurface,marginBottom:5,width:"90%"},urlLineShort:{height:11,borderRadius:4,backgroundColor:C.graySurface,marginBottom:8,width:"55%"},cardBottomRow:{flexDirection:"row",gap:8,marginTop:2},metaPillSkeleton:{width:52,height:14,borderRadius:4,backgroundColor:C.graySurface}});export default xo;
|