react-native-inapp-inspector 2.3.24 → 2.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +26 -5
- package/dist/commonjs/components/AnalyticsDetail.js +15 -12
- package/dist/commonjs/components/AnalyticsEventCard.js +11 -8
- package/dist/commonjs/components/AppHeaderLogo.js +4 -6
- package/dist/commonjs/components/ConsoleLogCard.d.ts +1 -0
- package/dist/commonjs/components/ConsoleLogCard.js +92 -80
- package/dist/commonjs/components/EndOfListFooter.d.ts +5 -1
- package/dist/commonjs/components/EndOfListFooter.js +27 -5
- package/dist/commonjs/components/Inspector/AnalyticsFilterModal.js +1 -1
- package/dist/commonjs/components/Inspector/AnalyticsTab.js +27 -299
- package/dist/commonjs/components/Inspector/ConsoleTab.js +36 -94
- package/dist/commonjs/components/Inspector/CrashDetail.js +11 -10
- package/dist/commonjs/components/Inspector/CrashTab.js +43 -33
- package/dist/commonjs/components/Inspector/DebuggingTab.js +13 -13
- package/dist/commonjs/components/Inspector/DeviceInfoTab.js +107 -71
- package/dist/commonjs/components/Inspector/FabLauncher.js +8 -9
- package/dist/commonjs/components/Inspector/InspectorHeader.js +93 -70
- package/dist/commonjs/components/Inspector/LogDetail.js +10 -7
- package/dist/commonjs/components/Inspector/MainScreen.js +66 -30
- package/dist/commonjs/components/Inspector/MediaGalleryTab.js +1 -1
- package/dist/commonjs/components/Inspector/MediaPreviewModal.js +3 -3
- package/dist/commonjs/components/Inspector/NetworkDetail.js +29 -28
- package/dist/commonjs/components/Inspector/NetworkFilterModal.js +1 -1
- package/dist/commonjs/components/Inspector/NetworkTab.js +87 -85
- package/dist/commonjs/components/Inspector/NpmStarPrompt.js +3 -3
- package/dist/commonjs/components/Inspector/NpmUpdateToast.js +21 -22
- package/dist/commonjs/components/Inspector/PushCard.d.ts +4 -0
- package/dist/commonjs/components/Inspector/PushCard.js +89 -0
- package/dist/commonjs/components/Inspector/PushDetail.d.ts +4 -0
- package/dist/commonjs/components/Inspector/PushDetail.js +190 -0
- package/dist/commonjs/components/Inspector/PushTab.d.ts +3 -0
- package/dist/commonjs/components/Inspector/PushTab.js +45 -0
- package/dist/commonjs/components/Inspector/ReduxDetail.js +16 -13
- package/dist/commonjs/components/Inspector/ReduxTab.js +109 -106
- package/dist/commonjs/components/Inspector/SettingsPanel.js +230 -134
- package/dist/commonjs/components/Inspector/StorageTab.js +55 -51
- package/dist/commonjs/components/Inspector/TabBar.js +30 -26
- package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +2 -2
- package/dist/commonjs/components/JsonViewer.js +151 -159
- package/dist/commonjs/components/LogCard.js +34 -38
- package/dist/commonjs/components/LogSyntaxHighlighter.js +3 -3
- package/dist/commonjs/components/ModuleErrorBoundary.d.ts +24 -0
- package/dist/commonjs/components/ModuleErrorBoundary.js +33 -0
- package/dist/commonjs/components/NetworkIcons.d.ts +3 -3
- package/dist/commonjs/components/NetworkIcons.js +10 -6
- package/dist/commonjs/components/SegmentedTabs.d.ts +8 -2
- package/dist/commonjs/components/SegmentedTabs.js +11 -7
- package/dist/commonjs/components/ShareButton.d.ts +11 -0
- package/dist/commonjs/components/ShareButton.js +6 -0
- package/dist/commonjs/constants/index.js +1 -1
- package/dist/commonjs/constants/version.d.ts +1 -1
- package/dist/commonjs/constants/version.js +1 -1
- package/dist/commonjs/customHooks/crashHandler.js +4 -4
- package/dist/commonjs/customHooks/networkLogger.js +1 -2
- package/dist/commonjs/customHooks/pushNotificationLogger.d.ts +19 -0
- package/dist/commonjs/customHooks/pushNotificationLogger.js +1 -0
- package/dist/commonjs/helpers/index.d.ts +6 -0
- package/dist/commonjs/helpers/index.js +4 -4
- package/dist/commonjs/helpers/memoryManager.d.ts +2 -2
- package/dist/commonjs/helpers/memoryManager.js +1 -1
- package/dist/commonjs/helpers/remoteConfig.js +1 -1
- package/dist/commonjs/helpers/settingsStore.d.ts +1 -0
- package/dist/commonjs/helpers/settingsStore.js +1 -1
- package/dist/commonjs/helpers/shareFormatter.d.ts +13 -0
- package/dist/commonjs/helpers/shareFormatter.js +7 -0
- package/dist/commonjs/i18n/index.d.ts +35 -0
- package/dist/commonjs/i18n/index.js +1 -1
- package/dist/commonjs/i18n/locales/ar.json +1 -0
- package/dist/commonjs/i18n/locales/de.json +1 -0
- package/dist/commonjs/i18n/locales/en.json +1 -1
- package/dist/commonjs/i18n/locales/es.json +1 -0
- package/dist/commonjs/i18n/locales/fr.json +1 -0
- package/dist/commonjs/i18n/locales/hi.json +1 -0
- package/dist/commonjs/i18n/locales/ja.json +1 -0
- package/dist/commonjs/i18n/locales/ko.json +1 -0
- package/dist/commonjs/i18n/locales/pt.json +1 -0
- package/dist/commonjs/i18n/locales/ru.json +1 -0
- package/dist/commonjs/i18n/locales/zh.json +1 -0
- package/dist/commonjs/index.d.ts +6 -5
- package/dist/commonjs/index.js +4 -4
- package/dist/commonjs/push.d.ts +4 -0
- package/dist/commonjs/push.js +1 -0
- package/dist/commonjs/styles/AppColors.d.ts +40 -0
- package/dist/commonjs/styles/AppColors.js +1 -1
- package/dist/commonjs/styles/index.js +1 -1
- package/dist/commonjs/types/enums.d.ts +30 -20
- package/dist/commonjs/types/enums.js +1 -1
- package/dist/commonjs/types/index.d.ts +10 -0
- package/dist/commonjs/types/interfaces.d.ts +63 -7
- package/dist/esm/components/AnalyticsDetail.js +84 -81
- package/dist/esm/components/AnalyticsEventCard.js +20 -17
- package/dist/esm/components/AppHeaderLogo.js +5 -7
- package/dist/esm/components/ConsoleLogCard.d.ts +1 -0
- package/dist/esm/components/ConsoleLogCard.js +98 -86
- package/dist/esm/components/EndOfListFooter.d.ts +5 -1
- package/dist/esm/components/EndOfListFooter.js +36 -14
- package/dist/esm/components/Inspector/AnalyticsFilterModal.js +14 -14
- package/dist/esm/components/Inspector/AnalyticsTab.js +44 -316
- package/dist/esm/components/Inspector/ConsoleTab.js +55 -113
- package/dist/esm/components/Inspector/CrashDetail.js +53 -52
- package/dist/esm/components/Inspector/CrashTab.js +74 -64
- package/dist/esm/components/Inspector/DebuggingTab.js +33 -33
- package/dist/esm/components/Inspector/DeviceInfoTab.js +174 -138
- package/dist/esm/components/Inspector/FabLauncher.js +41 -42
- package/dist/esm/components/Inspector/InspectorHeader.js +138 -115
- package/dist/esm/components/Inspector/LogDetail.js +24 -21
- package/dist/esm/components/Inspector/MainScreen.js +98 -62
- package/dist/esm/components/Inspector/MediaGalleryTab.js +1 -1
- package/dist/esm/components/Inspector/MediaPreviewModal.js +31 -31
- package/dist/esm/components/Inspector/NetworkDetail.js +88 -87
- package/dist/esm/components/Inspector/NetworkFilterModal.js +8 -8
- package/dist/esm/components/Inspector/NetworkTab.js +132 -130
- package/dist/esm/components/Inspector/NpmStarPrompt.js +42 -42
- package/dist/esm/components/Inspector/NpmUpdateToast.js +45 -46
- package/dist/esm/components/Inspector/PushCard.d.ts +4 -0
- package/dist/esm/components/Inspector/PushCard.js +89 -0
- package/dist/esm/components/Inspector/PushDetail.d.ts +4 -0
- package/dist/esm/components/Inspector/PushDetail.js +190 -0
- package/dist/esm/components/Inspector/PushTab.d.ts +3 -0
- package/dist/esm/components/Inspector/PushTab.js +45 -0
- package/dist/esm/components/Inspector/ReduxDetail.js +40 -37
- package/dist/esm/components/Inspector/ReduxTab.js +155 -152
- package/dist/esm/components/Inspector/SettingsPanel.js +380 -284
- package/dist/esm/components/Inspector/StorageTab.js +177 -173
- package/dist/esm/components/Inspector/TabBar.js +38 -34
- package/dist/esm/components/Inspector/UpdateAvailableModal.js +1 -1
- package/dist/esm/components/JsonViewer.js +161 -169
- package/dist/esm/components/LogCard.js +38 -42
- package/dist/esm/components/LogSyntaxHighlighter.js +1 -1
- package/dist/esm/components/ModuleErrorBoundary.d.ts +24 -0
- package/dist/esm/components/ModuleErrorBoundary.js +33 -0
- package/dist/esm/components/NetworkIcons.d.ts +3 -3
- package/dist/esm/components/NetworkIcons.js +7 -3
- package/dist/esm/components/SegmentedTabs.d.ts +8 -2
- package/dist/esm/components/SegmentedTabs.js +12 -8
- package/dist/esm/components/ShareButton.d.ts +11 -0
- package/dist/esm/components/ShareButton.js +6 -0
- package/dist/esm/constants/index.js +1 -1
- package/dist/esm/constants/version.d.ts +1 -1
- package/dist/esm/constants/version.js +1 -1
- package/dist/esm/customHooks/crashHandler.js +6 -6
- package/dist/esm/customHooks/networkLogger.js +1 -2
- package/dist/esm/customHooks/pushNotificationLogger.d.ts +19 -0
- package/dist/esm/customHooks/pushNotificationLogger.js +1 -0
- package/dist/esm/helpers/index.d.ts +6 -0
- package/dist/esm/helpers/index.js +4 -4
- package/dist/esm/helpers/memoryManager.d.ts +2 -2
- package/dist/esm/helpers/memoryManager.js +1 -1
- package/dist/esm/helpers/remoteConfig.js +1 -1
- package/dist/esm/helpers/settingsStore.d.ts +1 -0
- package/dist/esm/helpers/settingsStore.js +1 -1
- package/dist/esm/helpers/shareFormatter.d.ts +13 -0
- package/dist/esm/helpers/shareFormatter.js +7 -0
- package/dist/esm/i18n/index.d.ts +35 -0
- package/dist/esm/i18n/index.js +1 -1
- package/dist/esm/i18n/locales/ar.json +1 -0
- package/dist/esm/i18n/locales/de.json +1 -0
- package/dist/esm/i18n/locales/en.json +1 -1
- package/dist/esm/i18n/locales/es.json +1 -0
- package/dist/esm/i18n/locales/fr.json +1 -0
- package/dist/esm/i18n/locales/hi.json +1 -0
- package/dist/esm/i18n/locales/ja.json +1 -0
- package/dist/esm/i18n/locales/ko.json +1 -0
- package/dist/esm/i18n/locales/pt.json +1 -0
- package/dist/esm/i18n/locales/ru.json +1 -0
- package/dist/esm/i18n/locales/zh.json +1 -0
- package/dist/esm/index.d.ts +6 -5
- package/dist/esm/index.js +7 -7
- package/dist/esm/push.d.ts +4 -0
- package/dist/esm/push.js +1 -0
- package/dist/esm/styles/AppColors.d.ts +40 -0
- package/dist/esm/styles/AppColors.js +1 -1
- package/dist/esm/styles/index.js +1 -1
- package/dist/esm/types/enums.d.ts +30 -20
- package/dist/esm/types/enums.js +1 -1
- package/dist/esm/types/index.d.ts +10 -0
- package/dist/esm/types/interfaces.d.ts +63 -7
- package/package.json +53 -24
- package/src/native/NativeInspector.ts +0 -1
- package/dist/commonjs/bundle.d.ts +0 -2
- package/dist/commonjs/bundle.js +0 -1
- package/dist/commonjs/components/BrandSquareIcon.d.ts +0 -5
- package/dist/commonjs/components/BrandSquareIcon.js +0 -112
- package/dist/commonjs/components/Inspector/BundleTab.d.ts +0 -48
- package/dist/commonjs/components/Inspector/BundleTab.js +0 -1297
- package/dist/commonjs/components/Inspector/PerformanceTab.d.ts +0 -27
- package/dist/commonjs/components/Inspector/PerformanceTab.js +0 -454
- package/dist/commonjs/customHooks/bundleAnalyzer.d.ts +0 -115
- package/dist/commonjs/customHooks/bundleAnalyzer.js +0 -1
- package/dist/commonjs/customHooks/performanceTracker.d.ts +0 -144
- package/dist/commonjs/customHooks/performanceTracker.js +0 -63
- package/dist/commonjs/performance.d.ts +0 -2
- package/dist/commonjs/performance.js +0 -1
- package/dist/esm/bundle.d.ts +0 -2
- package/dist/esm/bundle.js +0 -1
- package/dist/esm/components/BrandSquareIcon.d.ts +0 -5
- package/dist/esm/components/BrandSquareIcon.js +0 -112
- package/dist/esm/components/Inspector/BundleTab.d.ts +0 -48
- package/dist/esm/components/Inspector/BundleTab.js +0 -1297
- package/dist/esm/components/Inspector/PerformanceTab.d.ts +0 -27
- package/dist/esm/components/Inspector/PerformanceTab.js +0 -454
- package/dist/esm/customHooks/bundleAnalyzer.d.ts +0 -115
- package/dist/esm/customHooks/bundleAnalyzer.js +0 -1
- package/dist/esm/customHooks/performanceTracker.d.ts +0 -144
- package/dist/esm/customHooks/performanceTracker.js +0 -63
- package/dist/esm/performance.d.ts +0 -2
- package/dist/esm/performance.js +0 -1
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(i,a,g,o){o===void 0&&(o=g);var s=Object.getOwnPropertyDescriptor(a,g);(!s||("get"in s?!a.__esModule:s.writable||s.configurable))&&(s={enumerable:!0,get:function(){return a[g]}}),Object.defineProperty(i,o,s)}):(function(i,a,g,o){o===void 0&&(o=g),i[o]=a[g]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(i,a){Object.defineProperty(i,"default",{enumerable:!0,value:a})}):function(i,a){i.default=a}),__importStar=this&&this.__importStar||(function(){var i=function(a){return i=Object.getOwnPropertyNames||function(g){var o=[];for(var s in g)Object.prototype.hasOwnProperty.call(g,s)&&(o[o.length]=s);return o},i(a)};return function(a){if(a&&a.__esModule)return a;var g={};if(a!=null)for(var o=i(a),s=0;s<o.length;s++)o[s]!=="default"&&__createBinding(g,a,o[s]);return __setModuleDefault(g,a),g}})(),__importDefault=this&&this.__importDefault||function(i){return i&&i.__esModule?i:{default:i}};Object.defineProperty(exports,"__esModule",{value:!0}),exports.DeviceInfoTab=void 0;const react_1=__importStar(require("react")),react_native_1=require("react-native"),TouchableScale_1=__importDefault(require("../TouchableScale")),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),i18n_1=require("../../i18n"),NetworkIcons_1=require("../NetworkIcons"),NativeInspector_1=require("../../native/NativeInspector"),helpers_1=require("../../helpers"),toast_1=require("../../helpers/toast"),constants_1=require("../../constants"),InfoRow=react_1.default.memo(({label:i,value:a,copyable:g=!0,badge:o,subtext:s,isLast:l=!1})=>{const P=a==null?"\u2014":typeof a=="boolean"?a?"Yes":"No":typeof a=="number"?a.toLocaleString():String(a);return<react_native_1.View style={[styles.infoRow,l&&{borderBottomWidth:0}]}>
|
|
2
2
|
<react_native_1.View style={{flex:1,paddingRight:8,minWidth:0}}>
|
|
3
3
|
<react_native_1.View style={{flexDirection:"row",alignItems:"center",flexWrap:"wrap",gap:6}}>
|
|
4
|
-
<react_native_1.Text style={styles.infoLabel}numberOfLines={2}>{
|
|
5
|
-
{
|
|
6
|
-
<react_native_1.Text style={[styles.infoBadgeText,{color:
|
|
7
|
-
{
|
|
4
|
+
<react_native_1.Text style={styles.infoLabel}numberOfLines={2}>{i}</react_native_1.Text>
|
|
5
|
+
{o&&<react_native_1.View style={[styles.infoBadge,{backgroundColor:o.bg,borderColor:`${o.color}33`}]}>
|
|
6
|
+
<react_native_1.Text style={[styles.infoBadgeText,{color:o.color}]}>
|
|
7
|
+
{o.text}
|
|
8
8
|
</react_native_1.Text>
|
|
9
9
|
</react_native_1.View>}
|
|
10
10
|
</react_native_1.View>
|
|
11
|
-
{
|
|
11
|
+
{s&&<react_native_1.Text style={styles.infoSubtext}numberOfLines={2}>{s}</react_native_1.Text>}
|
|
12
12
|
</react_native_1.View>
|
|
13
13
|
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6,flexShrink:0,maxWidth:"58%",justifyContent:"flex-end"}}>
|
|
14
14
|
<react_native_1.Text style={[styles.infoValue,typeof a=="boolean"&&{color:a?AppColors_1.AppColors.emerald500:AppColors_1.AppColors.errorColor}]}numberOfLines={3}selectable>
|
|
15
15
|
{P}
|
|
16
16
|
</react_native_1.Text>
|
|
17
|
-
{
|
|
17
|
+
{g&&a!==null&&a!==void 0&&<TouchableScale_1.default hitSlop={8}onPress={()=>{(0,helpers_1.copyToClipboard)(P,i),(0,toast_1.showToast)(`Copied ${i}`)}}style={styles.rowCopyBtn}>
|
|
18
18
|
<NetworkIcons_1.CopyIcon size={11}color={AppColors_1.AppColors.grayTextWeak}/>
|
|
19
19
|
</TouchableScale_1.default>}
|
|
20
20
|
</react_native_1.View>
|
|
21
|
-
</react_native_1.View>});exports.DeviceInfoTab=react_1.default.memo(()=>{const{t:
|
|
21
|
+
</react_native_1.View>});exports.DeviceInfoTab=react_1.default.memo(()=>{const{t:i}=(0,i18n_1.useTranslation)(),[a,g]=(0,react_1.useState)("overview"),[o,s]=(0,react_1.useState)(""),[l,P]=(0,react_1.useState)(null),[J,j]=(0,react_1.useState)(null),[y,R]=(0,react_1.useState)("Detecting..."),[_,E]=(0,react_1.useState)("0s"),q=react_1.default.useRef(Date.now()),k=(0,react_1.useCallback)(async()=>{try{const[r,d]=await Promise.all([(0,NativeInspector_1.getNativeDeviceMetrics)(),(0,NativeInspector_1.getNativeSystemMetrics)()]);P(r),j(d)}catch{}},[]);(0,react_1.useEffect)(()=>{k();const r=setInterval(k,3e3);return()=>clearInterval(r)},[k]),(0,react_1.useEffect)(()=>{let r=!0;return(async()=>{try{const n=react_native_1.NativeModules?.PlatformConstants?.serverHost||react_native_1.NativeModules?.AndroidConstants?.serverHost||react_native_1.NativeModules?.DevSettings?.serverHost;if(n&&typeof n=="string"){const c=n.split(":")[0].replace(/https?:\/\//,"");if(c&&c!=="localhost"&&c!=="127.0.0.1"){r&&R(c);return}}}catch{}try{const n=new AbortController,c=setTimeout(()=>n.abort(),1200),S=await fetch("https://api.ipify.org?format=json",{signal:n.signal});if(clearTimeout(c),S.ok){const w=await S.json();if(w&&w.ip&&r){R(w.ip);return}}}catch{}r&&R(react_native_1.Platform.OS==="android"?"10.0.2.15 (Local)":"127.0.0.1 (Local)")})(),()=>{r=!1}},[]),(0,react_1.useEffect)(()=>{const r=()=>{const n=Math.floor((Date.now()-q.current)/1e3),c=Math.floor(n/3600),S=Math.floor(n%3600/60),w=n%60;c>0?E(`${c}h ${S}m ${w}s`):S>0?E(`${S}m ${w}s`):E(`${w}s`)},d=setInterval(r,1e3);return r(),()=>clearInterval(d)},[]);const f=react_native_1.Dimensions.get("window"),h=react_native_1.Dimensions.get("screen"),p=react_native_1.PixelRatio.get(),M=react_native_1.PixelRatio.getFontScale(),T=f.width>=600||f.height>=1e3,$=f.width>f.height,B=react_native_1.Platform.OS==="android"?react_native_1.StatusBar.currentHeight||24:f.height>=812?44:20,b=(0,react_1.useMemo)(()=>{const r=`${react_native_1.Platform.OS}-${react_native_1.Platform.Version}-${h.width}x${h.height}-${p}-${react_native_1.Platform.constants?.Brand||"generic"}-${react_native_1.Platform.constants?.Model||"device"}`;let d=3735928559,n=1103547991,c=305419896,S=2271560481;for(let G=0;G<r.length;G++){const L=r.charCodeAt(G);d=Math.imul(d^L,2654435761)>>>0,n=Math.imul(n^L,1597334677)>>>0,c=Math.imul(c^L,374761393)>>>0,S=Math.imul(S^L,668265263)>>>0}const w=d.toString(16).padStart(8,"0").toUpperCase(),Q=(n&65535).toString(16).padStart(4,"0").toUpperCase(),ee=(n>>>16&4095|16384).toString(16).padStart(4,"0").toUpperCase(),te=(c>>>16&16383|32768).toString(16).padStart(4,"0").toUpperCase(),oe=(c.toString(16).padStart(8,"0")+(S&65535).toString(16).padStart(4,"0")).slice(0,12).toUpperCase();return`${w}-${Q}-${ee}-${te}-${oe}`},[h.width,h.height,p]),m=!!global?.HermesInternal,x=!!globalThis?.__turboModuleProxy,V=(0,react_1.useMemo)(()=>{const r=react_native_1.Platform.constants?.reactNativeVersion;return r?`${r.major}.${r.minor}.${r.patch}${r.prerelease!=null?`-${r.prerelease}`:""}`:"0.74+"},[]),u=l?.totalRAM?Math.round(l.totalRAM/(1024*1024)):J?.totalPhysicalRamMb||4096,C=l?.freeRAM?Math.round(l.freeRAM/(1024*1024)):Math.max(0,u-(J?.residentRamMb||1200)),I=Math.max(0,u-C),D=u>0?Math.round(I/u*100):45,v=l?.totalStorage?(l.totalStorage/(1024*1024*1024)).toFixed(1):"128.0",A=l?.freeStorage?(l.freeStorage/(1024*1024*1024)).toFixed(1):"64.2",Y=(0,react_1.useMemo)(()=>[{key:"overview",label:i("device.subTabs.overview","Overview"),themeColor:AppColors_1.AppColors.sky600,icon:r=><NetworkIcons_1.LayersIcon size={12}color={r}/>},{key:"hardware",label:i("device.subTabs.hardware","Hardware"),themeColor:AppColors_1.AppColors.orange600,icon:r=><NetworkIcons_1.CpuIcon size={12}color={r}/>},{key:"network",label:i("device.subTabs.network","Network & IP"),themeColor:AppColors_1.AppColors.teal600,icon:r=><NetworkIcons_1.WifiIcon size={12}color={r}/>},{key:"display",label:i("device.subTabs.display","Display"),themeColor:AppColors_1.AppColors.pink600,icon:r=><NetworkIcons_1.ScreenIcon size={12}color={r}/>},{key:"runtime",label:i("device.subTabs.runtime","Runtime & App"),themeColor:AppColors_1.AppColors.amber600,icon:r=><NetworkIcons_1.BoltIcon size={12}color={r}/>},{key:"security",label:i("device.subTabs.security","Security & IDs"),themeColor:AppColors_1.AppColors.errorColor,icon:r=><NetworkIcons_1.KeyIcon size={12}color={r}/>}],[i]),t=(0,react_1.useMemo)(()=>({identifiers:{pseudoUDID:b,bundleId:l?.appBundleId||l?.appPackageName||"com.app.inspector"},hardware:{model:l?.deviceModel||react_native_1.Platform.constants?.Model||"Unknown Device",brand:l?.deviceBrand||react_native_1.Platform.constants?.Brand||(react_native_1.Platform.OS==="ios"?"Apple":"Android"),osVersion:`${react_native_1.Platform.OS} ${react_native_1.Platform.Version}`,apiLevel:l?.apiLevel||react_native_1.Platform.constants?.Version||null,cpuAbi:l?.cpuAbi||react_native_1.Platform.constants?.ServerHost||"arm64-v8a",totalRamMb:u,freeRamMb:C,usedRamMb:I,totalStorageGb:`${v} GB`,freeStorageGb:`${A} GB`,batteryPercent:l?.batteryPercent??100,isCharging:l?.isCharging??!1},network:{ipAddress:y,isWifi:!0,reachability:"Online"},display:{windowWidth:f.width,windowHeight:f.height,screenWidth:h.width,screenHeight:h.height,pixelRatio:p,fontScale:M,statusBarHeight:B,isTablet:T,orientation:$?"Landscape":"Portrait"},runtime:{appName:(0,helpers_1.getAppName)(),appVersion:l?.appVersion||"1.0.0",appBuild:l?.appBuild||"1",reactNativeVersion:V,inspectorVersion:constants_1.LIB_VERSION,isHermes:m,isTurboModule:x,isDev:__DEV__,jsEngine:m?"Hermes":"JSC",timezone:Intl.DateTimeFormat().resolvedOptions().timeZone,locale:Intl.DateTimeFormat().resolvedOptions().locale,sessionUptime:_}}),[b,l,u,C,I,v,A,y,f,h,p,M,B,T,$,V,m,x,_]),K=()=>{(0,helpers_1.copyToClipboard)(JSON.stringify(t,null,2),"Device Full Report"),(0,toast_1.showToast)(i("device.copiedJson","Copied Full Device JSON Report!"))},X=()=>{const r=`# Device Information Report
|
|
22
22
|
**Generated by React Native In-App Inspector v${constants_1.LIB_VERSION}**
|
|
23
23
|
|
|
24
24
|
## \u{1F4F1} Hardware & System
|
|
@@ -26,50 +26,38 @@
|
|
|
26
26
|
- **Brand / Manufacturer:** ${t.hardware.brand}
|
|
27
27
|
- **OS Version:** ${t.hardware.osVersion}
|
|
28
28
|
- **CPU Architecture:** ${t.hardware.cpuAbi}
|
|
29
|
-
- **Total RAM:** ${
|
|
30
|
-
- **Total Storage:** ${
|
|
29
|
+
- **Total RAM:** ${u} MB (Free: ${C} MB)
|
|
30
|
+
- **Total Storage:** ${v} GB (Free: ${A} GB)
|
|
31
31
|
- **Battery:** ${t.hardware.batteryPercent}% (${t.hardware.isCharging?"Charging":"Unplugged"})
|
|
32
32
|
|
|
33
33
|
## \u{1F310} Network & Connectivity
|
|
34
|
-
- **IP Address:** ${
|
|
34
|
+
- **IP Address:** ${y}
|
|
35
35
|
- **Status:** Online
|
|
36
36
|
|
|
37
37
|
## \u{1F5A5} Display & Geometry
|
|
38
|
-
- **Resolution:** ${
|
|
39
|
-
- **Form Factor:** ${
|
|
38
|
+
- **Resolution:** ${h.width} \xD7 ${h.height} pt (@${p}x)
|
|
39
|
+
- **Form Factor:** ${T?"Tablet":"Phone"} (${$?"Landscape":"Portrait"})
|
|
40
40
|
- **Status Bar Height:** ${B} pt
|
|
41
41
|
|
|
42
42
|
## \u2699\uFE0F Runtime & App
|
|
43
43
|
- **App Name:** ${t.runtime.appName}
|
|
44
44
|
- **App Version:** ${t.runtime.appVersion} (${t.runtime.appBuild})
|
|
45
45
|
- **React Native:** v${V}
|
|
46
|
-
- **JS Engine:** ${
|
|
46
|
+
- **JS Engine:** ${m?"Hermes":"JSC"} (Bridgeless TurboModule: ${x?"Yes":"No"})
|
|
47
47
|
- **Environment:** ${__DEV__?"Development (__DEV__)":"Production (Release)"}
|
|
48
48
|
- **Timezone:** ${t.runtime.timezone}
|
|
49
|
-
- **Session Uptime:** ${
|
|
49
|
+
- **Session Uptime:** ${_}
|
|
50
50
|
|
|
51
51
|
## \u{1F511} Identifiers & Security
|
|
52
|
-
- **Pseudo-UDID:** \`${
|
|
52
|
+
- **Pseudo-UDID:** \`${b}\`
|
|
53
53
|
- **Bundle ID:** \`${t.identifiers.bundleId}\`
|
|
54
|
-
`;(0,helpers_1.copyToClipboard)(
|
|
55
|
-
|
|
56
|
-
<react_native_1.View style={styles.subTabsWrapper}>
|
|
57
|
-
<react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={!1}contentContainerStyle={styles.subTabsContainer}>
|
|
58
|
-
{Y.map(o=>{const c=a===o.key,d=c?AppColors_1.AppColors.white:AppColors_1.AppColors.grayText;return<TouchableScale_1.default key={o.key}onPress={()=>u(o.key)}style={[styles.subTabPill,c&&styles.subTabPillActive]}>
|
|
59
|
-
{o.icon(d)}
|
|
60
|
-
<react_native_1.Text style={[styles.subTabPillText,c&&styles.subTabPillTextActive]}>
|
|
61
|
-
{o.label}
|
|
62
|
-
</react_native_1.Text>
|
|
63
|
-
</TouchableScale_1.default>})}
|
|
64
|
-
</react_native_1.ScrollView>
|
|
65
|
-
</react_native_1.View>
|
|
66
|
-
|
|
54
|
+
`;(0,helpers_1.copyToClipboard)(r,"Device Markdown Report"),(0,toast_1.showToast)(i("device.copiedMarkdown","Copied Markdown Report to Clipboard!"))},e=(0,react_1.useCallback)((r,d,n)=>{if(!o.trim())return!0;const c=o.toLowerCase().trim(),S=d!=null?typeof d=="object"?JSON.stringify(d):String(d):"",w=n!=null?String(n):"";return r.toLowerCase().includes(c)||S.toLowerCase().includes(c)||w.toLowerCase().includes(c)},[o]),O=(0,react_1.useMemo)(()=>o.trim()?e("Model",l?.deviceModel||react_native_1.Platform.constants?.Model)||e("OS",react_native_1.Platform.OS)||e("IP Address",y)||e("RAM",`${I.toLocaleString()}/${u.toLocaleString()}`)||e("Uptime",_):!0,[o,e,l,y,I,u,_]),F=(0,react_1.useMemo)(()=>o.trim()?e("Device Model",t.hardware.model)||e("Manufacturer",t.hardware.brand)||e("Operating System",t.hardware.osVersion)||e("IP Address",y)||e("RAM Memory",`${I.toLocaleString()} MB / ${u.toLocaleString()} MB (${D}%)`,`Free Memory: ${C.toLocaleString()} MB`)||e("Storage Capacity",`${A} GB Free / ${v} GB Total`)||e("App Version",`v${t.runtime.appVersion} (${t.runtime.appBuild})`)||e("JavaScript Engine",m?"Hermes Bytecode Engine":"JavaScriptCore (JSC)")||e("UDID Identifier",b):!0,[o,e,t,y,I,u,D,C,A,v,m,b]),N=(0,react_1.useMemo)(()=>o.trim()?e("CPU Architecture",t.hardware.cpuAbi)||e("Total RAM",`${u.toLocaleString()} MB`)||e("Free RAM",`${C.toLocaleString()} MB`)||e("Storage Capacity",`${v} GB`)||e("Available Storage",`${A} GB`)||e("Battery",`${l?.batteryPercent??100}%`)||e("API Level",`API ${l?.apiLevel||react_native_1.Platform.Version}`)||e("Thermal State","Nominal (Cool)"):!0,[o,e,t,u,C,v,A,l]),U=(0,react_1.useMemo)(()=>o.trim()?e("IP Address",y)||e("Internet Reachability","Connected")||e("Connection Type","Wi-Fi / Local Area Network")||e("Metro Dev Server",react_native_1.NativeModules?.PlatformConstants?.serverHost||react_native_1.NativeModules?.AndroidConstants?.serverHost||"localhost:8081")||e("WebSocket Protocol","Active & Enabled")||e("Network Inspector Interceptor","Intercepting XHR & Fetch"):!0,[o,e,y]),z=(0,react_1.useMemo)(()=>o.trim()?e("Window Resolution",`${Math.round(f.width).toLocaleString()} \xD7 ${Math.round(f.height).toLocaleString()} pt`)||e("Screen Physical Size",`${Math.round(h.width*p).toLocaleString()} \xD7 ${Math.round(h.height*p).toLocaleString()} px`)||e("Pixel Density",`@${p}x (${Math.round(p*160).toLocaleString()} dpi)`)||e("Font Scale",`${M}x`)||e("Form Factor",T?"Tablet":"Smartphone")||e("Orientation",$?"Landscape":"Portrait")||e("Status Bar Height",`${B} pt`):!0,[o,e,f,h,p,M,T,$,B]),H=(0,react_1.useMemo)(()=>o.trim()?e("App Name",t.runtime.appName)||e("Bundle ID",t.identifiers.bundleId)||e("App Version",`v${t.runtime.appVersion} (${t.runtime.appBuild})`)||e("React Native",`v${V}`)||e("In-App Inspector Version",`v${constants_1.LIB_VERSION}`)||e("Hermes Engine",m?"Enabled (AOT Bytecode)":"Disabled (JSC)")||e("New Architecture",x?"Enabled":"Legacy Bridge")||e("Build Type",__DEV__?"Debug (__DEV__ = true)":"Release / Production")||e("Timezone",t.runtime.timezone)||e("Locale",t.runtime.locale)||e("Session Uptime",_):!0,[o,e,t,V,m,x,_]),W=(0,react_1.useMemo)(()=>o.trim()?e("Pseudo-UDID",b)||e("Bundle ID",t.identifiers.bundleId)||e("Root / Jailbreak","Clean (Standard Sandbox)")||e("Simulator / Emulator",react_native_1.Platform.constants?.Model?.includes?.("sdk")||react_native_1.Platform.constants?.Model?.includes?.("Emulator")||react_native_1.Platform.constants?.Model?.includes?.("Simulator")?"Virtual Simulator":"Physical Device")||e("Sandbox Integrity","Enforced by OS Kernel"):!0,[o,e,b,t]),Z=(0,react_1.useMemo)(()=>o.trim()?O||F||N||U||z||H||W:!0,[o,O,F,N,U,z,H,W]);return<react_native_1.View style={styles.container}>
|
|
67
55
|
|
|
68
56
|
<react_native_1.View style={styles.actionBar}>
|
|
69
57
|
<react_native_1.View style={styles.searchBar}>
|
|
70
58
|
<NetworkIcons_1.SearchIcon size={14}color={AppColors_1.AppColors.grayTextWeak}/>
|
|
71
|
-
<react_native_1.TextInput value={
|
|
72
|
-
{
|
|
59
|
+
<react_native_1.TextInput value={o}onChangeText={s}placeholder={i("device.searchPlaceholder","Search specs, UDID, IP, screen...")}placeholderTextColor={AppColors_1.AppColors.grayTextWeak}style={styles.searchInput}clearButtonMode="while-editing"/>
|
|
60
|
+
{o.length>0&&<TouchableScale_1.default onPress={()=>s("")}hitSlop={8}>
|
|
73
61
|
<NetworkIcons_1.ClearIcon size={13}color={AppColors_1.AppColors.grayTextWeak}/>
|
|
74
62
|
</TouchableScale_1.default>}
|
|
75
63
|
</react_native_1.View>
|
|
@@ -86,19 +74,67 @@
|
|
|
86
74
|
</react_native_1.View>
|
|
87
75
|
|
|
88
76
|
|
|
77
|
+
<react_native_1.View style={styles.subTabsWrapper}>
|
|
78
|
+
<react_native_1.ScrollView horizontal showsHorizontalScrollIndicator={!1}contentContainerStyle={styles.subTabsContainer}>
|
|
79
|
+
{Y.map(r=>{const d=a===r.key,n=r.themeColor||AppColors_1.AppColors.purple,c=d?AppColors_1.AppColors.white:n;return<TouchableScale_1.default key={r.key}onPress={()=>g(r.key)}>
|
|
80
|
+
<react_native_1.View style={[styles.subTabPill,d&&{backgroundColor:n,borderColor:n},!d&&{backgroundColor:`${n}12`,borderColor:`${n}30`}]}>
|
|
81
|
+
{r.icon(c)}
|
|
82
|
+
<react_native_1.Text style={[styles.subTabPillText,d&&{color:AppColors_1.AppColors.white},!d&&{color:AppColors_1.AppColors.primaryBlack}]}>
|
|
83
|
+
{r.label}
|
|
84
|
+
</react_native_1.Text>
|
|
85
|
+
</react_native_1.View>
|
|
86
|
+
</TouchableScale_1.default>})}
|
|
87
|
+
</react_native_1.ScrollView>
|
|
88
|
+
</react_native_1.View>
|
|
89
|
+
|
|
90
|
+
|
|
89
91
|
<react_native_1.ScrollView style={styles.scrollArea}contentContainerStyle={styles.scrollContent}showsVerticalScrollIndicator={!1}>
|
|
90
92
|
|
|
91
|
-
{(!
|
|
93
|
+
{(!o.trim()||e("UDID Identifier",b)||e("UUID",b)||e("Device UUID",b))&&<react_native_1.View style={styles.featuredUuidCard}>
|
|
94
|
+
<react_native_1.View style={styles.featuredUuidHeader}>
|
|
95
|
+
<react_native_1.View style={styles.featuredUuidTitleRow}>
|
|
96
|
+
<react_native_1.View style={styles.featuredUuidIconWrap}>
|
|
97
|
+
<NetworkIcons_1.KeyIcon size={14}color={AppColors_1.AppColors.white}/>
|
|
98
|
+
</react_native_1.View>
|
|
99
|
+
<react_native_1.View style={{flex:1,minWidth:0}}>
|
|
100
|
+
<react_native_1.View style={{flexDirection:"row",alignItems:"center",gap:6}}>
|
|
101
|
+
<react_native_1.Text style={styles.featuredUuidLabel}>DEVICE UUID</react_native_1.Text>
|
|
102
|
+
<react_native_1.View style={styles.featuredBadge}>
|
|
103
|
+
<react_native_1.Text style={styles.featuredBadgeText}>FEATURED</react_native_1.Text>
|
|
104
|
+
</react_native_1.View>
|
|
105
|
+
</react_native_1.View>
|
|
106
|
+
<react_native_1.Text style={styles.featuredUuidSubtext}>
|
|
107
|
+
Deterministic hardware pseudo-identifier
|
|
108
|
+
</react_native_1.Text>
|
|
109
|
+
</react_native_1.View>
|
|
110
|
+
</react_native_1.View>
|
|
111
|
+
|
|
112
|
+
<TouchableScale_1.default onPress={()=>{(0,helpers_1.copyToClipboard)(b,"Device UUID"),(0,toast_1.showToast)(i("device.copiedUuid","Copied Device UUID to clipboard!"))}}style={styles.featuredCopyBtn}hitSlop={6}accessibilityRole="button"accessibilityLabel="Copy Device UUID">
|
|
113
|
+
<NetworkIcons_1.CopyIcon size={11}color={AppColors_1.AppColors.white}/>
|
|
114
|
+
<react_native_1.Text style={styles.featuredCopyBtnText}>Copy</react_native_1.Text>
|
|
115
|
+
</TouchableScale_1.default>
|
|
116
|
+
</react_native_1.View>
|
|
117
|
+
|
|
118
|
+
<TouchableScale_1.default onPress={()=>{(0,helpers_1.copyToClipboard)(b,"Device UUID"),(0,toast_1.showToast)(i("device.copiedUuid","Copied Device UUID to clipboard!"))}}style={styles.featuredUuidValueBox}hitSlop={4}accessibilityRole="button"accessibilityLabel="Tap to copy UUID">
|
|
119
|
+
<react_native_1.Text style={styles.featuredUuidValueText}numberOfLines={1}ellipsizeMode="middle"selectable>
|
|
120
|
+
{b}
|
|
121
|
+
</react_native_1.Text>
|
|
122
|
+
<NetworkIcons_1.CopyIcon size={12}color={AppColors_1.AppColors.brandPurple}/>
|
|
123
|
+
</TouchableScale_1.default>
|
|
124
|
+
</react_native_1.View>}
|
|
125
|
+
|
|
126
|
+
|
|
127
|
+
{(!o.trim()||O)&&<react_native_1.View style={styles.heroCard}>
|
|
92
128
|
<react_native_1.View style={styles.heroHeader}>
|
|
93
129
|
<react_native_1.View style={styles.heroIconWrap}>
|
|
94
130
|
{react_native_1.Platform.OS==="ios"?<NetworkIcons_1.AppleIcon size={20}color={AppColors_1.AppColors.white}/>:<NetworkIcons_1.AndroidIcon size={20}color={AppColors_1.AppColors.white}/>}
|
|
95
131
|
</react_native_1.View>
|
|
96
132
|
<react_native_1.View style={{flex:1,minWidth:0}}>
|
|
97
133
|
<react_native_1.Text style={styles.heroTitle}numberOfLines={1}ellipsizeMode="tail">
|
|
98
|
-
{
|
|
134
|
+
{l?.deviceModel||react_native_1.Platform.constants?.Model||(react_native_1.Platform.OS==="ios"?"Apple iPhone":"Android Device")}
|
|
99
135
|
</react_native_1.Text>
|
|
100
136
|
<react_native_1.Text style={styles.heroSubtitle}numberOfLines={1}ellipsizeMode="tail">
|
|
101
|
-
{react_native_1.Platform.OS==="ios"?`iOS ${react_native_1.Platform.Version}`:`Android ${react_native_1.Platform.Version} (API ${
|
|
137
|
+
{react_native_1.Platform.OS==="ios"?`iOS ${react_native_1.Platform.Version}`:`Android ${react_native_1.Platform.Version} (API ${l?.apiLevel||react_native_1.Platform.Version})`}
|
|
102
138
|
</react_native_1.Text>
|
|
103
139
|
</react_native_1.View>
|
|
104
140
|
<react_native_1.View style={styles.heroBadge}>
|
|
@@ -110,57 +146,57 @@
|
|
|
110
146
|
|
|
111
147
|
<react_native_1.View style={styles.heroMetricsStrip}>
|
|
112
148
|
<react_native_1.View style={styles.heroMetricItem}>
|
|
113
|
-
<react_native_1.Text style={styles.heroMetricLabel}numberOfLines={1}ellipsizeMode="tail">IP ADDRESS</react_native_1.Text>
|
|
149
|
+
<react_native_1.Text style={styles.heroMetricLabel}numberOfLines={1}ellipsizeMode="tail">{i("device.ipAddress","IP ADDRESS")}</react_native_1.Text>
|
|
114
150
|
<react_native_1.Text style={styles.heroMetricValue}numberOfLines={1}ellipsizeMode="tail">
|
|
115
|
-
{
|
|
151
|
+
{y}
|
|
116
152
|
</react_native_1.Text>
|
|
117
153
|
</react_native_1.View>
|
|
118
154
|
<react_native_1.View style={styles.heroMetricDivider}/>
|
|
119
155
|
<react_native_1.View style={styles.heroMetricItem}>
|
|
120
|
-
<react_native_1.Text style={styles.heroMetricLabel}numberOfLines={1}ellipsizeMode="tail">RAM (USED/TOTAL)</react_native_1.Text>
|
|
156
|
+
<react_native_1.Text style={styles.heroMetricLabel}numberOfLines={1}ellipsizeMode="tail">{i("device.ramUsedTotal","RAM (USED/TOTAL)")}</react_native_1.Text>
|
|
121
157
|
<react_native_1.Text style={styles.heroMetricValue}numberOfLines={1}ellipsizeMode="tail">
|
|
122
|
-
{
|
|
158
|
+
{I.toLocaleString()}/{u.toLocaleString()} MB
|
|
123
159
|
</react_native_1.Text>
|
|
124
160
|
</react_native_1.View>
|
|
125
161
|
<react_native_1.View style={styles.heroMetricDivider}/>
|
|
126
162
|
<react_native_1.View style={styles.heroMetricItem}>
|
|
127
|
-
<react_native_1.Text style={styles.heroMetricLabel}numberOfLines={1}ellipsizeMode="tail">UPTIME</react_native_1.Text>
|
|
128
|
-
<react_native_1.Text style={styles.heroMetricValue}numberOfLines={1}ellipsizeMode="tail">{
|
|
163
|
+
<react_native_1.Text style={styles.heroMetricLabel}numberOfLines={1}ellipsizeMode="tail">{i("device.uptime","UPTIME")}</react_native_1.Text>
|
|
164
|
+
<react_native_1.Text style={styles.heroMetricValue}numberOfLines={1}ellipsizeMode="tail">{_}</react_native_1.Text>
|
|
129
165
|
</react_native_1.View>
|
|
130
166
|
</react_native_1.View>
|
|
131
167
|
</react_native_1.View>}
|
|
132
168
|
|
|
133
169
|
|
|
134
|
-
{(a==="overview"||
|
|
170
|
+
{(a==="overview"||o.length>0)&&F&&<react_native_1.View style={styles.sectionCard}>
|
|
135
171
|
<react_native_1.Text style={styles.sectionTitle}>DEVICE OVERVIEW</react_native_1.Text>
|
|
136
172
|
{e("Device Model",t.hardware.model)&&<InfoRow label="Device Model"value={t.hardware.model}/>}
|
|
137
173
|
{e("Manufacturer",t.hardware.brand)&&<InfoRow label="Manufacturer / Brand"value={t.hardware.brand}/>}
|
|
138
174
|
{e("Operating System",t.hardware.osVersion)&&<InfoRow label="Operating System"value={t.hardware.osVersion}badge={{text:react_native_1.Platform.OS.toUpperCase(),color:AppColors_1.AppColors.blue500,bg:`${AppColors_1.AppColors.blue500}18`}}/>}
|
|
139
|
-
{e("IP Address",
|
|
140
|
-
{e("RAM Memory",`${
|
|
141
|
-
{e("Storage Capacity",`${
|
|
175
|
+
{e("IP Address",y)&&<InfoRow label="Local IP Address"value={y}badge={{text:"ONLINE",color:AppColors_1.AppColors.emerald500,bg:`${AppColors_1.AppColors.emerald500}18`}}/>}
|
|
176
|
+
{e("RAM Memory",`${I.toLocaleString()} MB / ${u.toLocaleString()} MB (${D}%)`,`Free Memory: ${C.toLocaleString()} MB`)&&<InfoRow label="RAM Memory"value={`${I.toLocaleString()} MB / ${u.toLocaleString()} MB (${D}%)`}subtext={`Free Memory: ${C.toLocaleString()} MB`}/>}
|
|
177
|
+
{e("Storage Capacity",`${A} GB Free / ${v} GB Total`)&&<InfoRow label="Internal Storage"value={`${A} GB Free / ${v} GB Total`}/>}
|
|
142
178
|
{e("App Version",`v${t.runtime.appVersion} (${t.runtime.appBuild})`)&&<InfoRow label="Host App Version"value={`v${t.runtime.appVersion} (${t.runtime.appBuild})`}/>}
|
|
143
|
-
{e("JavaScript Engine",
|
|
144
|
-
{e("UDID Identifier",
|
|
179
|
+
{e("JavaScript Engine",m?"Hermes Bytecode Engine":"JavaScriptCore (JSC)")&&<InfoRow label="JS Runtime Engine"value={m?"Hermes Bytecode Engine":"JavaScriptCore (JSC)"}badge={m?{text:"HERMES",color:AppColors_1.AppColors.purple,bg:`${AppColors_1.AppColors.purple}18`}:{text:"JSC",color:AppColors_1.AppColors.sky500,bg:`${AppColors_1.AppColors.sky500}18`}}/>}
|
|
180
|
+
{e("UDID Identifier",b)&&<InfoRow label="Pseudo-UDID"value={b}isLast/>}
|
|
145
181
|
</react_native_1.View>}
|
|
146
182
|
|
|
147
183
|
|
|
148
|
-
{(a==="hardware"||
|
|
184
|
+
{(a==="hardware"||o.length>0)&&N&&<react_native_1.View style={styles.sectionCard}>
|
|
149
185
|
<react_native_1.Text style={styles.sectionTitle}>HARDWARE & SYSTEM SPECIFICATIONS</react_native_1.Text>
|
|
150
186
|
{e("CPU Architecture",t.hardware.cpuAbi)&&<InfoRow label="CPU Architecture / ABI"value={t.hardware.cpuAbi}badge={{text:"64-BIT",color:AppColors_1.AppColors.purple,bg:`${AppColors_1.AppColors.purple}18`}}/>}
|
|
151
|
-
{e("Total RAM",`${
|
|
152
|
-
{e("Free RAM",`${C} MB`)&&<InfoRow label="Available Free RAM"value={`${C} MB`}badge={{text:C<500?"LOW":"HEALTHY",color:C<500?AppColors_1.AppColors.errorColor:AppColors_1.AppColors.emerald500,bg:C<500?`${AppColors_1.AppColors.errorColor}18`:`${AppColors_1.AppColors.emerald500}18`}}/>}
|
|
153
|
-
{e("Storage Capacity",`${
|
|
154
|
-
{e("Available Storage",`${
|
|
155
|
-
{e("Battery",`${
|
|
156
|
-
{e("API Level",`API ${
|
|
187
|
+
{e("Total RAM",`${u.toLocaleString()} MB`)&&<InfoRow label="Total Physical RAM"value={`${u.toLocaleString()} MB`}/>}
|
|
188
|
+
{e("Free RAM",`${C.toLocaleString()} MB`)&&<InfoRow label="Available Free RAM"value={`${C.toLocaleString()} MB`}badge={{text:C<500?"LOW":"HEALTHY",color:C<500?AppColors_1.AppColors.errorColor:AppColors_1.AppColors.emerald500,bg:C<500?`${AppColors_1.AppColors.errorColor}18`:`${AppColors_1.AppColors.emerald500}18`}}/>}
|
|
189
|
+
{e("Storage Capacity",`${v} GB`)&&<InfoRow label="Disk Storage Total"value={`${v} GB`}/>}
|
|
190
|
+
{e("Available Storage",`${A} GB`)&&<InfoRow label="Disk Storage Available"value={`${A} GB`}/>}
|
|
191
|
+
{e("Battery",`${l?.batteryPercent??100}%`)&&<InfoRow label="Battery Level"value={`${l?.batteryPercent??100}%`}badge={{text:l?.isCharging?"CHARGING":"DISCHARGING",color:l?.isCharging?AppColors_1.AppColors.emerald500:AppColors_1.AppColors.grayText,bg:l?.isCharging?`${AppColors_1.AppColors.emerald500}18`:`${AppColors_1.AppColors.grayText}18`}}/>}
|
|
192
|
+
{e("API Level",`API ${l?.apiLevel||react_native_1.Platform.Version}`)&&react_native_1.Platform.OS==="android"&&<InfoRow label="Android API SDK Level"value={`API ${l?.apiLevel||react_native_1.Platform.Version}`}/>}
|
|
157
193
|
{e("Thermal State","Nominal (Cool)")&&<InfoRow label="Thermal State"value="Nominal (Cool)"badge={{text:"OPTIMAL",color:AppColors_1.AppColors.emerald500,bg:`${AppColors_1.AppColors.emerald500}18`}}isLast/>}
|
|
158
194
|
</react_native_1.View>}
|
|
159
195
|
|
|
160
196
|
|
|
161
|
-
{(a==="network"||
|
|
197
|
+
{(a==="network"||o.length>0)&&U&&<react_native_1.View style={styles.sectionCard}>
|
|
162
198
|
<react_native_1.Text style={styles.sectionTitle}>NETWORK & CONNECTIVITY</react_native_1.Text>
|
|
163
|
-
{e("IP Address",
|
|
199
|
+
{e("IP Address",y)&&<InfoRow label="Local Device IP"value={y}badge={{text:"IPV4",color:AppColors_1.AppColors.blue500,bg:`${AppColors_1.AppColors.blue500}18`}}/>}
|
|
164
200
|
{e("Internet Reachability","Connected")&&<InfoRow label="Internet Reachability"value="Connected"badge={{text:"ONLINE",color:AppColors_1.AppColors.emerald500,bg:`${AppColors_1.AppColors.emerald500}18`}}/>}
|
|
165
201
|
{e("Connection Type","Wi-Fi / Local Area Network")&&<InfoRow label="Active Connection Type"value="Wi-Fi / Local Area Network"/>}
|
|
166
202
|
{e("Metro Dev Server",react_native_1.NativeModules?.PlatformConstants?.serverHost||react_native_1.NativeModules?.AndroidConstants?.serverHost||"localhost:8081")&&<InfoRow label="Metro Packager Host"value={react_native_1.NativeModules?.PlatformConstants?.serverHost||react_native_1.NativeModules?.AndroidConstants?.serverHost||"localhost:8081"}/>}
|
|
@@ -169,37 +205,37 @@
|
|
|
169
205
|
</react_native_1.View>}
|
|
170
206
|
|
|
171
207
|
|
|
172
|
-
{(a==="display"||
|
|
208
|
+
{(a==="display"||o.length>0)&&z&&<react_native_1.View style={styles.sectionCard}>
|
|
173
209
|
<react_native_1.Text style={styles.sectionTitle}>DISPLAY & SCREEN GEOMETRY</react_native_1.Text>
|
|
174
|
-
{e("Window Resolution",`${
|
|
175
|
-
{e("Screen Physical Size",`${(
|
|
176
|
-
{e("Pixel Density",`@${
|
|
177
|
-
{e("Font Scale",`${
|
|
178
|
-
{e("Form Factor",
|
|
210
|
+
{e("Window Resolution",`${Math.round(f.width).toLocaleString()} \xD7 ${Math.round(f.height).toLocaleString()} pt`)&&<InfoRow label="Window Logical Size"value={`${Math.round(f.width).toLocaleString()} \xD7 ${Math.round(f.height).toLocaleString()} pt`}/>}
|
|
211
|
+
{e("Screen Physical Size",`${Math.round(h.width*p).toLocaleString()} \xD7 ${Math.round(h.height*p).toLocaleString()} px`)&&<InfoRow label="Physical Screen Size"value={`${Math.round(h.width*p).toLocaleString()} \xD7 ${Math.round(h.height*p).toLocaleString()} px`}/>}
|
|
212
|
+
{e("Pixel Density",`@${p}x (${Math.round(p*160).toLocaleString()} dpi)`)&&<InfoRow label="Pixel Ratio (DPI Scale)"value={`@${p}x (${Math.round(p*160).toLocaleString()} dpi)`}badge={{text:`@${p}x`,color:AppColors_1.AppColors.purple,bg:`${AppColors_1.AppColors.purple}18`}}/>}
|
|
213
|
+
{e("Font Scale",`${M}x`)&&<InfoRow label="User Font Scale"value={`${M}x (${M===1?"Default":M>1?"Enlarged":"Compact"})`}/>}
|
|
214
|
+
{e("Form Factor",T?"Tablet":"Smartphone")&&<InfoRow label="Device Form Factor"value={T?"Tablet":"Smartphone"}badge={{text:T?"TABLET":"PHONE",color:T?AppColors_1.AppColors.blue500:AppColors_1.AppColors.purple,bg:T?`${AppColors_1.AppColors.blue500}18`:`${AppColors_1.AppColors.purple}18`}}/>}
|
|
179
215
|
{e("Orientation",$?"Landscape":"Portrait")&&<InfoRow label="Screen Orientation"value={$?"Landscape":"Portrait"}/>}
|
|
180
216
|
{e("Status Bar Height",`${B} pt`)&&<InfoRow label="Status Bar Inset"value={`${B} pt`}isLast/>}
|
|
181
217
|
</react_native_1.View>}
|
|
182
218
|
|
|
183
219
|
|
|
184
|
-
{(a==="runtime"||
|
|
220
|
+
{(a==="runtime"||o.length>0)&&H&&<react_native_1.View style={styles.sectionCard}>
|
|
185
221
|
<react_native_1.Text style={styles.sectionTitle}>RUNTIME & APPLICATION</react_native_1.Text>
|
|
186
222
|
{e("App Name",t.runtime.appName)&&<InfoRow label="Application Name"value={t.runtime.appName}/>}
|
|
187
223
|
{e("Bundle ID",t.identifiers.bundleId)&&<InfoRow label="Bundle Identifier / Package"value={t.identifiers.bundleId}/>}
|
|
188
224
|
{e("App Version",`v${t.runtime.appVersion} (${t.runtime.appBuild})`)&&<InfoRow label="Application Version"value={`v${t.runtime.appVersion} (${t.runtime.appBuild})`}/>}
|
|
189
225
|
{e("React Native",`v${V}`)&&<InfoRow label="React Native Framework"value={`v${V}`}badge={{text:"RN",color:AppColors_1.AppColors.sky500,bg:`${AppColors_1.AppColors.sky500}18`}}/>}
|
|
190
226
|
{e("In-App Inspector Version",`v${constants_1.LIB_VERSION}`)&&<InfoRow label="In-App Inspector Library"value={`v${constants_1.LIB_VERSION}`}badge={{text:"LATEST",color:AppColors_1.AppColors.purple,bg:`${AppColors_1.AppColors.purple}18`}}/>}
|
|
191
|
-
{e("Hermes Engine",
|
|
192
|
-
{e("New Architecture",
|
|
227
|
+
{e("Hermes Engine",m?"Enabled (AOT Bytecode)":"Disabled (JSC)")&&<InfoRow label="Hermes JavaScript Engine"value={m?"Enabled (AOT Bytecode)":"Disabled (JSC)"}badge={{text:m?"HERMES":"JSC",color:m?AppColors_1.AppColors.purple:AppColors_1.AppColors.grayText,bg:m?`${AppColors_1.AppColors.purple}18`:`${AppColors_1.AppColors.grayText}18`}}/>}
|
|
228
|
+
{e("New Architecture",x?"Enabled":"Legacy Bridge")&&<InfoRow label="Bridgeless TurboModules (New Arch)"value={x?"Enabled":"Legacy Bridge"}badge={{text:x?"NEW ARCH":"LEGACY",color:x?AppColors_1.AppColors.emerald500:AppColors_1.AppColors.blue500,bg:x?`${AppColors_1.AppColors.emerald500}18`:`${AppColors_1.AppColors.blue500}18`}}/>}
|
|
193
229
|
{e("Build Type",__DEV__?"Debug (__DEV__ = true)":"Release / Production")&&<InfoRow label="Build Configuration"value={__DEV__?"Debug (__DEV__ = true)":"Release / Production"}badge={{text:__DEV__?"DEBUG":"RELEASE",color:__DEV__?AppColors_1.AppColors.warningIconGold:AppColors_1.AppColors.emerald500,bg:__DEV__?`${AppColors_1.AppColors.warningIconGold}18`:`${AppColors_1.AppColors.emerald500}18`}}/>}
|
|
194
230
|
{e("Timezone",t.runtime.timezone)&&<InfoRow label="System Timezone"value={t.runtime.timezone}/>}
|
|
195
231
|
{e("Locale",t.runtime.locale)&&<InfoRow label="System Language & Locale"value={t.runtime.locale}/>}
|
|
196
|
-
{e("Session Uptime",
|
|
232
|
+
{e("Session Uptime",_)&&<InfoRow label="Inspector Session Uptime"value={_}isLast/>}
|
|
197
233
|
</react_native_1.View>}
|
|
198
234
|
|
|
199
235
|
|
|
200
|
-
{(a==="security"||
|
|
236
|
+
{(a==="security"||o.length>0)&&W&&<react_native_1.View style={styles.sectionCard}>
|
|
201
237
|
<react_native_1.Text style={styles.sectionTitle}>DEVICE IDENTIFIERS & SECURITY</react_native_1.Text>
|
|
202
|
-
{e("Pseudo-UDID",
|
|
238
|
+
{e("Pseudo-UDID",b)&&<InfoRow label="Deterministic Pseudo-UDID"value={b}subtext="Stable hardware signature hash for testing & diagnostics"badge={{text:"PERSISTENT",color:AppColors_1.AppColors.purple,bg:`${AppColors_1.AppColors.purple}18`}}/>}
|
|
203
239
|
{e("Bundle ID",t.identifiers.bundleId)&&<InfoRow label="Application Bundle ID"value={t.identifiers.bundleId}/>}
|
|
204
240
|
{e("Root / Jailbreak","Clean (Standard Sandbox)")&&<InfoRow label="Root / Jailbreak Heuristic"value="Clean (Standard Sandbox)"badge={{text:"SECURE",color:AppColors_1.AppColors.emerald500,bg:`${AppColors_1.AppColors.emerald500}18`}}/>}
|
|
205
241
|
{e("Simulator / Emulator",react_native_1.Platform.constants?.Model?.includes?.("sdk")||react_native_1.Platform.constants?.Model?.includes?.("Emulator")||react_native_1.Platform.constants?.Model?.includes?.("Simulator")?"Virtual Simulator":"Physical Device")&&<InfoRow label="Emulator / Physical Device"value={react_native_1.Platform.constants?.Model?.includes?.("sdk")||react_native_1.Platform.constants?.Model?.includes?.("Emulator")||react_native_1.Platform.constants?.Model?.includes?.("Simulator")?"Virtual Simulator":"Physical Device"}/>}
|
|
@@ -207,17 +243,17 @@
|
|
|
207
243
|
</react_native_1.View>}
|
|
208
244
|
|
|
209
245
|
|
|
210
|
-
{
|
|
246
|
+
{o.trim().length>0&&!Z&&<react_native_1.View style={styles.emptySearchCard}>
|
|
211
247
|
<NetworkIcons_1.SearchIcon size={26}color={AppColors_1.AppColors.grayTextWeak}/>
|
|
212
248
|
<react_native_1.Text style={styles.emptySearchTitle}>No matching device specifications</react_native_1.Text>
|
|
213
249
|
<react_native_1.Text style={styles.emptySearchSubtitle}>
|
|
214
|
-
No properties matched “{
|
|
250
|
+
No properties matched “{o}”
|
|
215
251
|
</react_native_1.Text>
|
|
216
|
-
<TouchableScale_1.default onPress={()=>
|
|
252
|
+
<TouchableScale_1.default onPress={()=>s("")}style={styles.clearSearchBtn}>
|
|
217
253
|
<react_native_1.Text style={styles.clearSearchBtnText}>Clear Search</react_native_1.Text>
|
|
218
254
|
</TouchableScale_1.default>
|
|
219
255
|
</react_native_1.View>}
|
|
220
256
|
|
|
221
257
|
<react_native_1.View style={{height:48}}/>
|
|
222
258
|
</react_native_1.ScrollView>
|
|
223
|
-
</react_native_1.View>});const styles=react_native_1.StyleSheet.create({container:{flex:1,backgroundColor:AppColors_1.AppColors.grayBackground},subTabsWrapper:{backgroundColor:AppColors_1.AppColors.primaryLight,borderBottomWidth:1,borderBottomColor:AppColors_1.AppColors.dividerColor,paddingVertical:
|
|
259
|
+
</react_native_1.View>});const styles=react_native_1.StyleSheet.create({container:{flex:1,backgroundColor:AppColors_1.AppColors.grayBackground},subTabsWrapper:{backgroundColor:AppColors_1.AppColors.primaryLight,borderBottomWidth:1,borderBottomColor:AppColors_1.AppColors.dividerColor,paddingVertical:6},subTabsContainer:{paddingHorizontal:12,flexDirection:"row",alignItems:"center",gap:6},subTabPill:{flexDirection:"row",alignItems:"center",gap:5,paddingHorizontal:9,paddingVertical:4.5,borderRadius:8,borderWidth:1},subTabPillText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10.5},featuredUuidCard:{backgroundColor:AppColors_1.AppColors.primaryLight,borderRadius:14,borderWidth:1.5,borderColor:`${AppColors_1.AppColors.brandPurple}40`,padding:12,gap:10,shadowColor:AppColors_1.AppColors.brandPurple,shadowOpacity:.08,shadowRadius:6,shadowOffset:{width:0,height:2},elevation:2},featuredUuidHeader:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",gap:8},featuredUuidTitleRow:{flexDirection:"row",alignItems:"center",gap:8,flex:1,minWidth:0},featuredUuidIconWrap:{width:28,height:28,borderRadius:7,backgroundColor:AppColors_1.AppColors.brandPurple,alignItems:"center",justifyContent:"center"},featuredUuidLabel:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:11,color:AppColors_1.AppColors.primaryBlack,letterSpacing:.3},featuredUuidSubtext:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:9.5,color:AppColors_1.AppColors.grayTextWeak,marginTop:.5},featuredBadge:{backgroundColor:`${AppColors_1.AppColors.brandPurple}18`,paddingHorizontal:5,paddingVertical:1.5,borderRadius:4,borderWidth:1,borderColor:`${AppColors_1.AppColors.brandPurple}30`},featuredBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:8,color:AppColors_1.AppColors.brandPurple,letterSpacing:.4},featuredCopyBtn:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:AppColors_1.AppColors.brandPurple,paddingHorizontal:10,paddingVertical:5.5,borderRadius:7,shadowColor:AppColors_1.AppColors.brandPurple,shadowOpacity:.25,shadowRadius:3,shadowOffset:{width:0,height:1},elevation:1},featuredCopyBtnText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10.5,color:AppColors_1.AppColors.white},featuredUuidValueBox:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",backgroundColor:`${AppColors_1.AppColors.brandPurple}0C`,borderRadius:8,borderWidth:1,borderColor:`${AppColors_1.AppColors.brandPurple}28`,paddingHorizontal:10,paddingVertical:7,gap:8},featuredUuidValueText:{flex:1,fontFamily:react_native_1.Platform.select({ios:"Menlo",android:"monospace",default:"monospace"}),fontSize:11.5,color:AppColors_1.AppColors.brandPurple,letterSpacing:.5},actionBar:{flexDirection:"row",alignItems:"center",paddingHorizontal:12,paddingVertical:8,backgroundColor:AppColors_1.AppColors.primaryLight,borderBottomWidth:1,borderBottomColor:AppColors_1.AppColors.dividerColor,gap:8},searchBar:{flex:1,flexDirection:"row",alignItems:"center",backgroundColor:AppColors_1.AppColors.grayBackground,borderRadius:8,paddingHorizontal:9,paddingVertical:react_native_1.Platform.OS==="ios"?6:2,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary,gap:6},searchInput:{flex:1,fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:12,color:AppColors_1.AppColors.primaryBlack,padding:0},exportButton:{flexDirection:"row",alignItems:"center",gap:4,paddingHorizontal:9,paddingVertical:6,borderRadius:8,backgroundColor:`${AppColors_1.AppColors.purple}14`,borderWidth:1,borderColor:`${AppColors_1.AppColors.purple}33`},exportButtonText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:11,color:AppColors_1.AppColors.purple},scrollArea:{flex:1},scrollContent:{padding:12,gap:12,paddingBottom:100},heroCard:{backgroundColor:AppColors_1.AppColors.primaryLight,borderRadius:14,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary,padding:14,shadowColor:AppColors_1.AppColors.black,shadowOpacity:.04,shadowRadius:4,shadowOffset:{width:0,height:2},elevation:1,gap:12},heroHeader:{flexDirection:"row",alignItems:"center",gap:10},heroIconWrap:{width:38,height:38,borderRadius:10,backgroundColor:AppColors_1.AppColors.purple,alignItems:"center",justifyContent:"center",shadowColor:AppColors_1.AppColors.purple,shadowOpacity:.25,shadowRadius:4,shadowOffset:{width:0,height:2},elevation:2},heroTitle:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:15,color:AppColors_1.AppColors.primaryBlack,letterSpacing:-.2},heroSubtitle:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:11.5,color:AppColors_1.AppColors.grayText,marginTop:1},heroBadge:{flexDirection:"row",alignItems:"center",gap:4,backgroundColor:`${AppColors_1.AppColors.emerald500}18`,paddingHorizontal:7,paddingVertical:3,borderRadius:6},pulseDot:{width:6,height:6,borderRadius:3,backgroundColor:AppColors_1.AppColors.emerald500},heroBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:9.5,color:AppColors_1.AppColors.emerald500},heroMetricsStrip:{flexDirection:"row",alignItems:"center",backgroundColor:AppColors_1.AppColors.grayBackground,borderRadius:10,paddingVertical:8,paddingHorizontal:10},heroMetricItem:{flex:1,alignItems:"center",paddingHorizontal:2,minWidth:0},heroMetricLabel:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:8.5,color:AppColors_1.AppColors.grayTextWeak,letterSpacing:.4},heroMetricValue:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:11,color:AppColors_1.AppColors.primaryBlack,marginTop:2},heroMetricDivider:{width:1,height:20,backgroundColor:AppColors_1.AppColors.dividerColor},sectionCard:{backgroundColor:AppColors_1.AppColors.primaryLight,borderRadius:14,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary,padding:14,shadowColor:AppColors_1.AppColors.black,shadowOpacity:.03,shadowRadius:3,shadowOffset:{width:0,height:1},elevation:1},sectionTitle:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:10.5,color:AppColors_1.AppColors.grayTextWeak,letterSpacing:.8,marginBottom:8,textTransform:"uppercase"},infoRow:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",paddingVertical:9,borderBottomWidth:1,borderBottomColor:AppColors_1.AppColors.dividerColor},infoLabel:{fontFamily:AppFonts_1.AppFonts.interMedium,fontSize:12.5,color:AppColors_1.AppColors.primaryBlack},infoSubtext:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:10,color:AppColors_1.AppColors.grayTextWeak,marginTop:1},infoBadge:{paddingHorizontal:5,paddingVertical:1,borderRadius:4,borderWidth:1},infoBadgeText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:8.5},infoValue:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:12,color:AppColors_1.AppColors.primaryBlack,flexShrink:1,textAlign:"right"},rowCopyBtn:{padding:4,borderRadius:4,backgroundColor:AppColors_1.AppColors.grayBackground},emptySearchCard:{backgroundColor:AppColors_1.AppColors.primaryLight,borderRadius:14,borderWidth:1,borderColor:AppColors_1.AppColors.grayBorderSecondary,padding:24,alignItems:"center",justifyContent:"center",gap:8,marginTop:8},emptySearchTitle:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:13.5,color:AppColors_1.AppColors.primaryBlack,textAlign:"center"},emptySearchSubtitle:{fontFamily:AppFonts_1.AppFonts.interRegular,fontSize:11.5,color:AppColors_1.AppColors.grayTextWeak,textAlign:"center"},clearSearchBtn:{marginTop:6,paddingHorizontal:14,paddingVertical:6.5,borderRadius:8,backgroundColor:AppColors_1.AppColors.purple},clearSearchBtnText:{fontFamily:AppFonts_1.AppFonts.interBold,fontSize:11,color:AppColors_1.AppColors.white}});exports.default=exports.DeviceInfoTab;
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(t,r,a,n){n===void 0&&(n=a);var o=Object.getOwnPropertyDescriptor(r,a);(!o||("get"in o?!r.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return r[a]}}),Object.defineProperty(t,n,o)}):(function(t,r,a,n){n===void 0&&(n=a),t[n]=r[a]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(t,r){Object.defineProperty(t,"default",{enumerable:!0,value:r})}):function(t,r){t.default=r}),__importStar=this&&this.__importStar||(function(){var t=function(r){return t=Object.getOwnPropertyNames||function(a){var n=[];for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[n.length]=o);return n},t(r)};return function(r){if(r&&r.__esModule)return r;var a={};if(r!=null)for(var n=t(r),o=0;o<n.length;o++)n[o]!=="default"&&__createBinding(a,r,n[o]);return __setModuleDefault(a,r),a}})(),__importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),react_native_linear_gradient_1=__importDefault(require("react-native-linear-gradient")),InspectorContext_1=require("./InspectorContext"),TouchableScale_1=__importDefault(require("../TouchableScale")),AppHeaderLogo_1=__importDefault(require("../AppHeaderLogo")),BrandCircleIcon_1=__importDefault(require("../BrandCircleIcon")),NetworkIcons_1=require("../NetworkIcons"),capture_1=require("../../capture"),NativeInspector_1=require("../../native/NativeInspector"),toast_1=require("../../helpers/toast"),helpers_1=require("../../helpers"),constants_1=require("../../constants"),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),styles_1=__importDefault(require("../../styles")),i18n_1=require("../../i18n"),MediaPreviewModal_1=require("./MediaPreviewModal"),FabLauncher=()=>{const{setVisible:t,isMinimized:r,setIsMinimized:a,appIcon:n,fabPan:o,fabPanResponder:v,fabDraggedRef:C,pulseAnim:S,fabShineAnim:y,
|
|
1
|
+
"use strict";var __createBinding=this&&this.__createBinding||(Object.create?(function(t,r,a,n){n===void 0&&(n=a);var o=Object.getOwnPropertyDescriptor(r,a);(!o||("get"in o?!r.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return r[a]}}),Object.defineProperty(t,n,o)}):(function(t,r,a,n){n===void 0&&(n=a),t[n]=r[a]})),__setModuleDefault=this&&this.__setModuleDefault||(Object.create?(function(t,r){Object.defineProperty(t,"default",{enumerable:!0,value:r})}):function(t,r){t.default=r}),__importStar=this&&this.__importStar||(function(){var t=function(r){return t=Object.getOwnPropertyNames||function(a){var n=[];for(var o in a)Object.prototype.hasOwnProperty.call(a,o)&&(n[n.length]=o);return n},t(r)};return function(r){if(r&&r.__esModule)return r;var a={};if(r!=null)for(var n=t(r),o=0;o<n.length;o++)n[o]!=="default"&&__createBinding(a,r,n[o]);return __setModuleDefault(a,r),a}})(),__importDefault=this&&this.__importDefault||function(t){return t&&t.__esModule?t:{default:t}};Object.defineProperty(exports,"__esModule",{value:!0});const react_1=__importStar(require("react")),react_native_1=require("react-native"),react_native_linear_gradient_1=__importDefault(require("react-native-linear-gradient")),InspectorContext_1=require("./InspectorContext"),TouchableScale_1=__importDefault(require("../TouchableScale")),AppHeaderLogo_1=__importDefault(require("../AppHeaderLogo")),BrandCircleIcon_1=__importDefault(require("../BrandCircleIcon")),NetworkIcons_1=require("../NetworkIcons"),capture_1=require("../../capture"),NativeInspector_1=require("../../native/NativeInspector"),toast_1=require("../../helpers/toast"),helpers_1=require("../../helpers"),constants_1=require("../../constants"),AppColors_1=require("../../styles/AppColors"),AppFonts_1=require("../../styles/AppFonts"),styles_1=__importDefault(require("../../styles")),i18n_1=require("../../i18n"),MediaPreviewModal_1=require("./MediaPreviewModal"),FabLauncher=()=>{const{setVisible:t,isMinimized:r,setIsMinimized:a,appIcon:n,fabPan:o,fabPanResponder:v,fabDraggedRef:C,pulseAnim:S,fabShineAnim:y,refreshMediaCount:u}=(0,InspectorContext_1.useInspector)(),{width:x}=(0,react_native_1.useWindowDimensions)(),{t:s}=(0,i18n_1.useTranslation)(),[R]=(0,react_1.useState)(()=>(0,helpers_1.getAppVersionAndBuild)().formatted),[c,g]=(0,react_1.useState)(!1),[A,b]=(0,react_1.useState)(0),p=(0,react_1.useRef)(null),[_,h]=(0,react_1.useState)(null),l=(0,react_1.useRef)(new react_native_1.Animated.ValueXY({x:0,y:0})).current,m=(0,react_1.useRef)({x:0,y:0});(0,react_1.useEffect)(()=>{const e=l.x.addListener(f=>m.current.x=f.value),i=l.y.addListener(f=>m.current.y=f.value);return()=>{l.x.removeListener(e),l.y.removeListener(i)}},[l]);const d=(0,react_1.useRef)(!1),T=(0,react_1.useRef)(react_native_1.PanResponder.create({onStartShouldSetPanResponder:()=>!1,onMoveShouldSetPanResponder:(e,i)=>Math.abs(i.dx)>4||Math.abs(i.dy)>4,onPanResponderGrant:()=>{d.current=!0,l.setOffset({x:m.current.x,y:m.current.y}),l.setValue({x:0,y:0})},onPanResponderMove:react_native_1.Animated.event([null,{dx:l.x,dy:l.y}],{useNativeDriver:!1}),onPanResponderRelease:()=>{l.flattenOffset(),setTimeout(()=>{d.current=!1},50)},onPanResponderTerminate:()=>{l.flattenOffset(),d.current=!1}})).current;(0,react_1.useEffect)(()=>{capture_1.ScreenCapture.isRecording().then(e=>{g(!!e)}).catch(()=>{})},[]),(0,react_1.useEffect)(()=>(c?(b(0),p.current=setInterval(()=>{b(e=>e+1)},1e3)):(p.current&&(clearInterval(p.current),p.current=null),b(0)),()=>{p.current&&clearInterval(p.current)}),[c]);const I=(0,react_1.useCallback)(async()=>{if(!d.current)try{(0,NativeInspector_1.triggerNativeHaptic)("light");const e=await capture_1.ScreenCapture.takeScreenshot({format:"png",quality:.9,hideInspector:!0});if(e){(0,NativeInspector_1.triggerNativeHaptic)("success");const i={id:`screenshot_${e.timestamp}.png`,type:"image",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||`screenshot_${e.timestamp}.png`,sizeBytes:e.sizeBytes,timestamp:e.timestamp,width:e.width,height:e.height};h(i),u?.().catch(()=>{}),(0,toast_1.showToast)(s("header.screenshotCaptured","Screenshot captured"))}else(0,toast_1.showToast)(s("header.screenshotFailed","Failed to capture screenshot"))}catch{(0,toast_1.showToast)(s("header.screenshotError","Error capturing screenshot"))}},[u,s]),V=(0,react_1.useCallback)(async()=>{if(!d.current)try{if(c){(0,NativeInspector_1.triggerNativeHaptic)("medium");const e=await capture_1.ScreenCapture.stopRecording();if(g(!1),e){(0,NativeInspector_1.triggerNativeHaptic)("success");const i={id:`video_${e.timestamp}.${e.format}`,type:e.format==="gif"?"gif":"video",format:e.format,uri:e.uri,filename:e.uri.split("/").pop()||`video_${e.timestamp}.${e.format}`,sizeBytes:e.sizeBytes,timestamp:e.timestamp,durationMs:e.durationMs,width:e.width,height:e.height,hasAudio:e.hasAudio};h(i),u?.().catch(()=>{}),(0,toast_1.showToast)(s("header.recordingSaved",{duration:(e.durationMs/1e3).toFixed(1),defaultValue:`Recording saved (${(e.durationMs/1e3).toFixed(1)}s)`}))}}else(0,NativeInspector_1.triggerNativeHaptic)("medium"),await capture_1.ScreenCapture.startRecording({fps:24,audioSource:"none"})?(g(!0),(0,toast_1.showToast)(s("header.recordingStarted","Recording started"))):(0,toast_1.showToast)(s("header.recordingStartFailed","Failed to start recording"))}catch{(0,toast_1.showToast)(s("header.recordingError","Error during screen recording")),g(!1)}},[c,u,s]),w=(0,react_1.useCallback)(()=>{d.current||((0,NativeInspector_1.triggerNativeHaptic)("light"),a?.(!1),t(!0))},[a,t]),P=(0,react_1.useCallback)(()=>{d.current||((0,NativeInspector_1.triggerNativeHaptic)("light"),a?.(!1),t(!1))},[a,t]),M=e=>{const i=Math.floor(e/60),f=e%60;return`${i}:${f<10?"0":""}${f}`};return<>
|
|
2
2
|
|
|
3
|
-
{r?<react_native_1.Animated.View style={[fabStyles.playerContainer,{transform:l.getTranslateTransform()}]}{...
|
|
3
|
+
{r?<react_native_1.Animated.View style={[fabStyles.playerContainer,{transform:l.getTranslateTransform()}]}{...T.panHandlers}>
|
|
4
4
|
|
|
5
5
|
<react_native_linear_gradient_1.default colors={[AppColors_1.AppColors.indigo600,AppColors_1.AppColors.violet600]}start={{x:0,y:0}}end={{x:1,y:1}}style={fabStyles.gradientBg}pointerEvents="none"/>
|
|
6
6
|
|
|
7
7
|
|
|
8
8
|
<react_native_1.View pointerEvents="none"style={fabStyles.playerShineClip}>
|
|
9
|
-
<react_native_1.Animated.View style={[fabStyles.playerShineStreak,{transform:[{translateX:y.interpolate({inputRange:[0,1],outputRange:[-80,
|
|
9
|
+
<react_native_1.Animated.View style={[fabStyles.playerShineStreak,{transform:[{translateX:y.interpolate({inputRange:[0,1],outputRange:[-80,x+80]})},{rotate:"28deg"}]}]}>
|
|
10
10
|
<react_native_linear_gradient_1.default colors={["rgba(255, 255, 255, 0)","rgba(255, 255, 255, 0.18)","rgba(255, 255, 255, 0.70)","rgba(255, 255, 255, 1)","rgba(255, 255, 255, 0.70)","rgba(255, 255, 255, 0.18)","rgba(255, 255, 255, 0)"]}locations={[0,.22,.44,.5,.56,.78,1]}start={{x:0,y:.5}}end={{x:1,y:.5}}style={{flex:1}}/>
|
|
11
11
|
</react_native_1.Animated.View>
|
|
12
12
|
</react_native_1.View>
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
<react_native_1.View style={fabStyles.versionChip}>
|
|
24
24
|
{react_native_1.Platform.OS==="ios"?<NetworkIcons_1.AppleIcon color={`${AppColors_1.AppColors.white}E6`}size={9}/>:<NetworkIcons_1.AndroidIcon color={`${AppColors_1.AppColors.white}E6`}size={9}/>}
|
|
25
25
|
<react_native_1.Text style={fabStyles.versionChipText}numberOfLines={1}>
|
|
26
|
-
{
|
|
26
|
+
{R}
|
|
27
27
|
</react_native_1.Text>
|
|
28
28
|
</react_native_1.View>
|
|
29
29
|
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
|
|
42
42
|
<react_native_1.View style={fabStyles.actionsRow}>
|
|
43
43
|
|
|
44
|
-
<TouchableScale_1.default onPress={
|
|
44
|
+
<TouchableScale_1.default onPress={I}hitSlop={{top:6,bottom:6,left:4,right:4}}style={fabStyles.actionBtn}>
|
|
45
45
|
<NetworkIcons_1.CameraIcon size={12}color={AppColors_1.AppColors.white}/>
|
|
46
46
|
<react_native_1.Text style={fabStyles.actionText}>
|
|
47
47
|
{s("header.photo","Photo")}
|
|
@@ -49,10 +49,10 @@
|
|
|
49
49
|
</TouchableScale_1.default>
|
|
50
50
|
|
|
51
51
|
|
|
52
|
-
<TouchableScale_1.default onPress={
|
|
52
|
+
<TouchableScale_1.default onPress={V}hitSlop={{top:6,bottom:6,left:4,right:4}}style={[fabStyles.actionBtn,c&&fabStyles.recordingBtnActive]}>
|
|
53
53
|
{c?<react_native_1.View style={fabStyles.recordingDot}/>:<NetworkIcons_1.VideoCameraIcon size={12}color={AppColors_1.AppColors.white}/>}
|
|
54
54
|
<react_native_1.Text style={[fabStyles.actionText,c&&{color:AppColors_1.AppColors.red300}]}>
|
|
55
|
-
{c?`${s("header.rec","REC")} ${
|
|
55
|
+
{c?`${s("header.rec","REC")} ${M(A)}`:s("header.record","Record")}
|
|
56
56
|
</react_native_1.Text>
|
|
57
57
|
</TouchableScale_1.default>
|
|
58
58
|
|
|
@@ -62,7 +62,7 @@
|
|
|
62
62
|
</TouchableScale_1.default>
|
|
63
63
|
|
|
64
64
|
|
|
65
|
-
<TouchableScale_1.default onPress={
|
|
65
|
+
<TouchableScale_1.default onPress={P}hitSlop={{top:6,bottom:6,left:4,right:6}}accessibilityRole="button"accessibilityLabel={s("common.close","Close")}style={fabStyles.actionBtnSquare}>
|
|
66
66
|
<NetworkIcons_1.CloseWhite size={10}color={AppColors_1.AppColors.white}/>
|
|
67
67
|
</TouchableScale_1.default>
|
|
68
68
|
</react_native_1.View>
|
|
@@ -76,7 +76,6 @@
|
|
|
76
76
|
<react_native_linear_gradient_1.default colors={["rgba(255, 255, 255, 0)","rgba(255, 255, 255, 0.25)","rgba(255, 255, 255, 0.95)","rgba(255, 255, 255, 0.25)","rgba(255, 255, 255, 0)"]}locations={[0,.25,.5,.75,1]}start={{x:0,y:.5}}end={{x:1,y:.5}}style={{flex:1}}/>
|
|
77
77
|
</react_native_1.Animated.View>
|
|
78
78
|
</react_native_1.View>
|
|
79
|
-
{(R.length>0||A.length>0)&&<react_native_1.Animated.View style={[styles_1.default.fabGreenDot,{transform:[{scale:x}]}]}/>}
|
|
80
79
|
</TouchableScale_1.default>
|
|
81
80
|
</react_native_1.Animated.View>}
|
|
82
81
|
|