react-native-inapp-inspector 2.3.16 → 2.3.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (346) hide show
  1. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +438 -7
  2. package/bin/cli.js +0 -0
  3. package/dist/commonjs/capture.d.ts +26 -0
  4. package/dist/commonjs/capture.js +32 -0
  5. package/dist/commonjs/components/AnalyticsEventCard.js +11 -11
  6. package/dist/commonjs/components/AnimatedEntrance.js +6 -70
  7. package/dist/commonjs/components/DomainHeader.js +3 -48
  8. package/dist/commonjs/components/EmptyState.js +2 -2
  9. package/dist/commonjs/components/HeadersSection.js +14 -34
  10. package/dist/commonjs/components/Inspector/AnalyticsTab.js +1 -2
  11. package/dist/commonjs/components/Inspector/ConsoleTab.js +1 -1
  12. package/dist/commonjs/components/Inspector/CrashTab.js +4 -2
  13. package/dist/commonjs/components/Inspector/DebuggingTab.js +2 -2
  14. package/dist/commonjs/components/Inspector/InspectorHeader.js +651 -313
  15. package/dist/commonjs/components/Inspector/MainScreen.js +25 -70
  16. package/dist/commonjs/components/Inspector/MediaGalleryTab.d.ts +2 -0
  17. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +307 -0
  18. package/dist/commonjs/components/Inspector/MediaPreviewModal.d.ts +11 -0
  19. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +393 -0
  20. package/dist/commonjs/components/Inspector/NetworkTab.js +183 -182
  21. package/dist/commonjs/components/Inspector/NpmUpdateToast.js +4 -9
  22. package/dist/commonjs/components/Inspector/ReduxTab.js +4 -2
  23. package/dist/commonjs/components/Inspector/SettingsPanel.js +245 -0
  24. package/dist/commonjs/components/Inspector/SkeletonPlaceholder.js +2 -2
  25. package/dist/commonjs/components/Inspector/StorageTab.js +3 -3
  26. package/dist/commonjs/components/Inspector/TabBar.js +5 -10
  27. package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +5 -10
  28. package/dist/commonjs/components/JsonViewer.js +43 -20
  29. package/dist/commonjs/components/LogCard.js +5 -5
  30. package/dist/commonjs/components/MetaAccordion.js +78 -80
  31. package/dist/commonjs/components/NetworkIcons.d.ts +8 -0
  32. package/dist/commonjs/components/NetworkIcons.js +51 -1
  33. package/dist/commonjs/components/SectionHeader.js +3 -48
  34. package/dist/commonjs/components/SkeletonPlaceholder.js +2 -2
  35. package/dist/commonjs/components/SourcePageCard.js +43 -45
  36. package/dist/commonjs/components/Toast.js +4 -4
  37. package/dist/commonjs/components/TouchableScale.js +9 -65
  38. package/dist/commonjs/components/TreeNode.js +2 -14
  39. package/dist/commonjs/constants/telemetryConfig.d.ts +3 -3
  40. package/dist/commonjs/constants/telemetryConfig.js +3 -3
  41. package/dist/commonjs/constants/version.d.ts +1 -1
  42. package/dist/commonjs/constants/version.js +1 -1
  43. package/dist/commonjs/customHooks/useAccordion.d.ts +3 -8
  44. package/dist/commonjs/customHooks/useAccordion.js +6 -36
  45. package/dist/commonjs/helpers/index.d.ts +2 -1
  46. package/dist/commonjs/helpers/index.js +10 -1
  47. package/dist/commonjs/i18n/locales/en.json +66 -2
  48. package/dist/commonjs/index.d.ts +1 -0
  49. package/dist/commonjs/index.js +39 -22
  50. package/dist/commonjs/native/NativeInspector.d.ts +60 -0
  51. package/dist/commonjs/native/NativeInspector.js +109 -2
  52. package/dist/commonjs/native/NativeNetworkInspector.d.ts +8 -0
  53. package/dist/commonjs/styles/AppColors.d.ts +36 -0
  54. package/dist/commonjs/styles/AppColors.js +36 -0
  55. package/dist/commonjs/styles/index.d.ts +3 -1
  56. package/dist/commonjs/styles/index.js +3 -1
  57. package/dist/commonjs/types/enums.d.ts +1 -0
  58. package/dist/commonjs/types/enums.js +1 -0
  59. package/dist/commonjs/types/index.d.ts +2 -2
  60. package/dist/esm/capture.d.ts +26 -0
  61. package/dist/esm/capture.js +29 -0
  62. package/dist/esm/components/AnalyticsEventCard.js +11 -11
  63. package/dist/esm/components/AnimatedEntrance.js +4 -38
  64. package/dist/esm/components/DomainHeader.js +4 -16
  65. package/dist/esm/components/EmptyState.js +2 -2
  66. package/dist/esm/components/HeadersSection.js +16 -36
  67. package/dist/esm/components/Inspector/AnalyticsTab.js +2 -3
  68. package/dist/esm/components/Inspector/ConsoleTab.js +2 -2
  69. package/dist/esm/components/Inspector/CrashTab.js +5 -3
  70. package/dist/esm/components/Inspector/DebuggingTab.js +3 -3
  71. package/dist/esm/components/Inspector/InspectorHeader.js +654 -316
  72. package/dist/esm/components/Inspector/MainScreen.js +25 -70
  73. package/dist/esm/components/Inspector/MediaGalleryTab.d.ts +2 -0
  74. package/dist/esm/components/Inspector/MediaGalleryTab.js +267 -0
  75. package/dist/esm/components/Inspector/MediaPreviewModal.d.ts +11 -0
  76. package/dist/esm/components/Inspector/MediaPreviewModal.js +353 -0
  77. package/dist/esm/components/Inspector/NetworkTab.js +185 -184
  78. package/dist/esm/components/Inspector/NpmUpdateToast.js +5 -10
  79. package/dist/esm/components/Inspector/ReduxTab.js +5 -3
  80. package/dist/esm/components/Inspector/SettingsPanel.js +246 -1
  81. package/dist/esm/components/Inspector/SkeletonPlaceholder.js +2 -2
  82. package/dist/esm/components/Inspector/StorageTab.js +3 -3
  83. package/dist/esm/components/Inspector/TabBar.js +6 -11
  84. package/dist/esm/components/Inspector/UpdateAvailableModal.js +6 -11
  85. package/dist/esm/components/JsonViewer.js +43 -20
  86. package/dist/esm/components/LogCard.js +5 -5
  87. package/dist/esm/components/MetaAccordion.js +79 -81
  88. package/dist/esm/components/NetworkIcons.d.ts +8 -0
  89. package/dist/esm/components/NetworkIcons.js +42 -0
  90. package/dist/esm/components/SectionHeader.js +4 -16
  91. package/dist/esm/components/SkeletonPlaceholder.js +2 -2
  92. package/dist/esm/components/SourcePageCard.js +44 -46
  93. package/dist/esm/components/Toast.js +4 -4
  94. package/dist/esm/components/TouchableScale.js +7 -33
  95. package/dist/esm/components/TreeNode.js +4 -16
  96. package/dist/esm/constants/telemetryConfig.d.ts +3 -3
  97. package/dist/esm/constants/telemetryConfig.js +3 -3
  98. package/dist/esm/constants/version.d.ts +1 -1
  99. package/dist/esm/constants/version.js +1 -1
  100. package/dist/esm/customHooks/useAccordion.d.ts +3 -8
  101. package/dist/esm/customHooks/useAccordion.js +7 -37
  102. package/dist/esm/helpers/index.d.ts +2 -1
  103. package/dist/esm/helpers/index.js +8 -0
  104. package/dist/esm/i18n/locales/en.json +66 -2
  105. package/dist/esm/index.d.ts +1 -0
  106. package/dist/esm/index.js +36 -21
  107. package/dist/esm/native/NativeInspector.d.ts +60 -0
  108. package/dist/esm/native/NativeInspector.js +100 -1
  109. package/dist/esm/native/NativeNetworkInspector.d.ts +8 -0
  110. package/dist/esm/styles/AppColors.d.ts +36 -0
  111. package/dist/esm/styles/AppColors.js +36 -0
  112. package/dist/esm/styles/index.d.ts +3 -1
  113. package/dist/esm/styles/index.js +3 -1
  114. package/dist/esm/types/enums.d.ts +1 -0
  115. package/dist/esm/types/enums.js +1 -0
  116. package/dist/esm/types/index.d.ts +2 -2
  117. package/ios/NetworkInspectorModule.h +1 -0
  118. package/ios/NetworkInspectorModule.mm +736 -7
  119. package/package.json +10 -2
  120. package/react-native-inapp-inspector.podspec +1 -0
  121. package/src/capture.ts +101 -0
  122. package/src/components/AnalyticsEventCard.tsx +15 -13
  123. package/src/components/AnimatedEntrance.tsx +3 -47
  124. package/src/components/DomainHeader.tsx +4 -17
  125. package/src/components/EmptyState.tsx +2 -2
  126. package/src/components/HeadersSection.tsx +31 -56
  127. package/src/components/Inspector/AnalyticsTab.tsx +2 -2
  128. package/src/components/Inspector/ConsoleTab.tsx +2 -1
  129. package/src/components/Inspector/CrashTab.tsx +4 -2
  130. package/src/components/Inspector/DebuggingTab.tsx +2 -2
  131. package/src/components/Inspector/InspectorHeader.tsx +1215 -789
  132. package/src/components/Inspector/MainScreen.tsx +44 -85
  133. package/src/components/Inspector/MediaGalleryTab.tsx +355 -0
  134. package/src/components/Inspector/MediaPreviewModal.tsx +435 -0
  135. package/src/components/Inspector/NetworkTab.tsx +14 -15
  136. package/src/components/Inspector/NpmUpdateToast.tsx +4 -9
  137. package/src/components/Inspector/ReduxTab.tsx +5 -2
  138. package/src/components/Inspector/SettingsPanel.tsx +303 -0
  139. package/src/components/Inspector/SkeletonPlaceholder.tsx +2 -2
  140. package/src/components/Inspector/StorageTab.tsx +3 -3
  141. package/src/components/Inspector/TabBar.tsx +6 -12
  142. package/src/components/Inspector/UpdateAvailableModal.tsx +6 -10
  143. package/src/components/JsonViewer.tsx +101 -60
  144. package/src/components/LogCard.tsx +10 -8
  145. package/src/components/MetaAccordion.tsx +6 -6
  146. package/src/components/NetworkIcons.tsx +150 -0
  147. package/src/components/SectionHeader.tsx +4 -16
  148. package/src/components/SkeletonPlaceholder.tsx +2 -2
  149. package/src/components/SourcePageCard.tsx +57 -55
  150. package/src/components/Toast.tsx +4 -4
  151. package/src/components/TouchableScale.tsx +8 -38
  152. package/src/components/TreeNode.tsx +5 -20
  153. package/src/constants/telemetryConfig.ts +3 -5
  154. package/src/constants/version.ts +1 -1
  155. package/src/customHooks/useAccordion.tsx +10 -43
  156. package/src/helpers/index.ts +10 -1
  157. package/src/i18n/locales/en.json +69 -2
  158. package/src/index.tsx +51 -23
  159. package/src/native/NativeInspector.ts +186 -1
  160. package/src/native/NativeNetworkInspector.ts +9 -0
  161. package/src/styles/AppColors.ts +38 -0
  162. package/src/styles/index.ts +3 -1
  163. package/src/types/enums.ts +3 -0
  164. package/src/types/index.ts +2 -2
  165. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  166. package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
  167. package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
  168. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  169. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  170. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  171. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  172. package/android/.gradle/8.9/gc.properties +0 -0
  173. package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
  174. package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
  175. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  176. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  177. package/android/.gradle/9.2.0/gc.properties +0 -0
  178. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  179. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  180. package/android/.gradle/vcs-1/gc.properties +0 -0
  181. package/android/build/.transforms/6683d6eeaa3e1dfa689c3385111a0386/results.bin +0 -1
  182. package/android/build/.transforms/6683d6eeaa3e1dfa689c3385111a0386/transformed/classes/classes_dex/classes.dex +0 -0
  183. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/results.bin +0 -1
  184. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/BuildConfig.dex +0 -0
  185. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView$iconView$1.dex +0 -0
  186. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView.dex +0 -0
  187. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NativeNetworkInspectorSpec.dex +0 -0
  188. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$Companion.dex +0 -0
  189. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$frameCallback$1.dex +0 -0
  190. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$shakeListener$1.dex +0 -0
  191. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule.dex +0 -0
  192. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorPackage.dex +0 -0
  193. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  194. package/android/build/generated/source/buildConfig/debug/com/inappinspector/BuildConfig.java +0 -10
  195. package/android/build/generated/source/codegen/java/com/inappinspector/NativeNetworkInspectorSpec.java +0 -104
  196. package/android/build/generated/source/codegen/jni/CMakeLists.txt +0 -28
  197. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec-generated.cpp +0 -128
  198. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec.h +0 -31
  199. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.cpp +0 -22
  200. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.h +0 -24
  201. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.cpp +0 -16
  202. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.h +0 -17
  203. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.cpp +0 -19
  204. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.h +0 -18
  205. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/RNInAppInspectorSpecJSI.h +0 -177
  206. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.cpp +0 -17
  207. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.h +0 -23
  208. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.cpp +0 -16
  209. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.h +0 -20
  210. package/android/build/generated/source/codegen/schema.json +0 -1
  211. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +0 -7
  212. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +0 -18
  213. package/android/build/intermediates/aar_main_jar/debug/syncDebugLibJars/classes.jar +0 -0
  214. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +0 -6
  215. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +0 -1
  216. package/android/build/intermediates/annotations_typedef_file/debug/extractDebugAnnotations/typedefs.txt +0 -0
  217. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  218. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  219. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  220. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -1
  221. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -2
  222. package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
  223. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
  224. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
  225. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +0 -2
  226. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  227. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/BuildConfig.class +0 -0
  228. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  229. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +0 -2
  230. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +0 -7
  231. package/android/build/intermediates/merged_java_res/debug/mergeDebugJavaResource/feature-react-native-inapp-inspector.jar +0 -0
  232. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +0 -7
  233. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +0 -1
  234. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +0 -1
  235. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  236. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/BuildConfig.class +0 -0
  237. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  238. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  239. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  240. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  241. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  242. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  243. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule.class +0 -0
  244. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  245. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  246. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +0 -1
  247. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  248. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  249. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  250. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  251. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  252. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  253. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  254. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  255. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  256. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  257. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  258. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  259. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  260. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  261. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  262. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  263. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  264. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  265. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  266. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  267. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  268. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  269. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  270. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  271. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  272. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  273. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  274. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  275. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  276. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  277. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  278. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  279. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  280. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  281. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  282. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  283. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  284. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  285. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  286. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  287. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  288. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  289. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  290. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  291. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  292. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  293. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  294. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  295. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  296. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  297. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  298. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  299. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  300. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  301. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  302. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  303. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  304. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  305. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  306. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  307. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  308. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  309. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  310. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +0 -2
  311. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  312. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  313. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  314. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  315. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  316. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  317. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  318. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  319. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  320. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  321. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  322. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  323. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  324. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  325. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  326. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  327. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  328. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  329. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  330. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  331. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  332. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  333. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  334. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  335. package/android/build/outputs/aar/react-native-inapp-inspector-debug.aar +0 -0
  336. package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -17
  337. package/android/build/reports/problems/problems-report.html +0 -659
  338. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  339. package/android/build/tmp/kotlin-classes/debug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  340. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  341. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  342. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  343. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  344. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  345. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule.class +0 -0
  346. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorPackage.class +0 -0
@@ -64,7 +64,15 @@ import {
64
64
  GitHubIcon,
65
65
  InfoCircleIcon,
66
66
  CopyIcon,
67
+ FilmIcon,
68
+ CameraIcon,
69
+ VideoCameraIcon,
70
+ MicrophoneIcon,
71
+ GifIcon,
72
+ ImageIcon,
67
73
  } from '../NetworkIcons';
74
+ import {ScreenCapture} from '../../capture';
75
+
68
76
  import {LIB_VERSION} from '../../constants';
69
77
  import {
70
78
  copyToClipboard,
@@ -270,6 +278,7 @@ const SettingsPanel = () => {
270
278
  });
271
279
  }, [tabVisibility]);
272
280
 
281
+
273
282
  const hasUnsavedChanges = useMemo(() => {
274
283
  return allModules.some(
275
284
  m =>
@@ -306,6 +315,7 @@ const SettingsPanel = () => {
306
315
  performance: Boolean(tabVisibility?.performance),
307
316
  debugging: Boolean(tabVisibility?.debugging),
308
317
  });
318
+
309
319
  },
310
320
  },
311
321
  {
@@ -579,6 +589,11 @@ const SettingsPanel = () => {
579
589
  label: t('settings.ramLimits', 'RAM & Limits'),
580
590
  Icon: BrainIcon,
581
591
  },
592
+ {
593
+ key: 'capture' as const,
594
+ label: t('settings.screenVideoCapture', 'Screen & Video Capture'),
595
+ Icon: CameraIcon,
596
+ },
582
597
  {
583
598
  key: 'about' as const,
584
599
  label: t('settings.aboutAndSpecs', 'About & Specs'),
@@ -2284,6 +2299,293 @@ const SettingsPanel = () => {
2284
2299
  </View>
2285
2300
  </View>
2286
2301
  )}
2302
+ {settingsActiveSubTab === 'capture' && (
2303
+ <View style={{gap: 12}}>
2304
+ {/* Screenshot Preferences Card */}
2305
+ <View
2306
+ style={{
2307
+ backgroundColor: AppColors.primaryLight,
2308
+ padding: 16,
2309
+ borderRadius: 14,
2310
+ borderWidth: 1,
2311
+ borderColor: AppColors.grayBorderSecondary,
2312
+ gap: 12,
2313
+ }}>
2314
+ <View style={{flexDirection: 'row', alignItems: 'center', gap: 10}}>
2315
+ <View
2316
+ style={{
2317
+ width: 36,
2318
+ height: 36,
2319
+ borderRadius: 10,
2320
+ backgroundColor: AppColors.purpleShade50,
2321
+ alignItems: 'center',
2322
+ justifyContent: 'center',
2323
+ }}>
2324
+ <CameraIcon color={AppColors.purple} size={16} />
2325
+ </View>
2326
+ <View style={{flex: 1}}>
2327
+ <Text
2328
+ style={{
2329
+ fontFamily: AppFonts.interBold,
2330
+ fontSize: 14,
2331
+ lineHeight: 18,
2332
+ color: AppColors.primaryBlack,
2333
+ }}>
2334
+ {t('settings.media.screenshotCardTitle', 'Screenshot Capture Settings')}
2335
+ </Text>
2336
+ <Text
2337
+ style={{
2338
+ fontFamily: AppFonts.interRegular,
2339
+ fontSize: 11,
2340
+ lineHeight: 15,
2341
+ color: AppColors.grayText,
2342
+ marginTop: 1,
2343
+ }}>
2344
+ {t('settings.media.screenshotCardDesc', 'Image encoding format, compression quality and overlay auto-hide')}
2345
+ </Text>
2346
+ </View>
2347
+ </View>
2348
+
2349
+ {renderSettingRow({
2350
+ icon: <ImageIcon color={AppColors.purple} size={16} />,
2351
+ label: t('settings.media.imageFormat', 'Image Format'),
2352
+ description: t('settings.media.imageFormatDesc', 'Export formats (PNG lossless, JPEG lossy, WebP)'),
2353
+ right: (
2354
+ <View style={{flexDirection: 'row', gap: 4}}>
2355
+ {['PNG', 'JPEG', 'WEBP'].map(fmt => (
2356
+ <View
2357
+ key={fmt}
2358
+ style={{
2359
+ paddingHorizontal: 8,
2360
+ paddingVertical: 4,
2361
+ borderRadius: 6,
2362
+ backgroundColor: fmt === 'PNG' ? AppColors.purple : `${AppColors.purple}1A`,
2363
+ }}>
2364
+ <Text
2365
+ style={{
2366
+ fontFamily: AppFonts.interBold,
2367
+ fontSize: 10,
2368
+ color: fmt === 'PNG' ? AppColors.white : AppColors.purple,
2369
+ }}>
2370
+ {fmt}
2371
+ </Text>
2372
+ </View>
2373
+ ))}
2374
+ </View>
2375
+ ),
2376
+ })}
2377
+
2378
+ {renderSettingRow({
2379
+ icon: <EyeIcon color={AppColors.purple} size={16} />,
2380
+ label: t('settings.media.autoHide', 'Auto-Hide Inspector During Capture'),
2381
+ description: t('settings.media.autoHideDesc', 'Temporarily hides the inspector overlay during screen capture'),
2382
+ isLast: true,
2383
+ right: (
2384
+ <View
2385
+ style={{
2386
+ paddingHorizontal: 8,
2387
+ paddingVertical: 4,
2388
+ borderRadius: 6,
2389
+ backgroundColor: `${AppColors.emerald500}26`,
2390
+ }}>
2391
+ <Text
2392
+ style={{
2393
+ fontFamily: AppFonts.interBold,
2394
+ fontSize: 10,
2395
+ color: AppColors.emerald500,
2396
+ }}>
2397
+ {t('settings.media.enabled', 'ON')}
2398
+ </Text>
2399
+ </View>
2400
+ ),
2401
+ })}
2402
+ </View>
2403
+
2404
+ {/* Video & GIF Recording Card */}
2405
+ <View
2406
+ style={{
2407
+ backgroundColor: AppColors.primaryLight,
2408
+ padding: 16,
2409
+ borderRadius: 14,
2410
+ borderWidth: 1,
2411
+ borderColor: AppColors.grayBorderSecondary,
2412
+ gap: 12,
2413
+ }}>
2414
+ <View style={{flexDirection: 'row', alignItems: 'center', gap: 10}}>
2415
+ <View
2416
+ style={{
2417
+ width: 36,
2418
+ height: 36,
2419
+ borderRadius: 10,
2420
+ backgroundColor: AppColors.purpleShade50,
2421
+ alignItems: 'center',
2422
+ justifyContent: 'center',
2423
+ }}>
2424
+ <VideoCameraIcon color={AppColors.purple} size={16} />
2425
+ </View>
2426
+ <View style={{flex: 1}}>
2427
+ <Text
2428
+ style={{
2429
+ fontFamily: AppFonts.interBold,
2430
+ fontSize: 14,
2431
+ lineHeight: 18,
2432
+ color: AppColors.primaryBlack,
2433
+ }}>
2434
+ {t('settings.media.videoCardTitle', 'Video Recording & GIF Conversion')}
2435
+ </Text>
2436
+ <Text
2437
+ style={{
2438
+ fontFamily: AppFonts.interRegular,
2439
+ fontSize: 11,
2440
+ lineHeight: 15,
2441
+ color: AppColors.grayText,
2442
+ marginTop: 1,
2443
+ }}>
2444
+ {t('settings.media.videoCardDesc', 'ReplayKit hardware encoding, frame capture fallback and GIF generation')}
2445
+ </Text>
2446
+ </View>
2447
+ </View>
2448
+
2449
+ {renderSettingRow({
2450
+ icon: <MicrophoneIcon color={AppColors.purple} size={16} />,
2451
+ label: t('settings.media.audioMode', 'Audio Source'),
2452
+ description: t('settings.media.audioModeDesc', 'Record video with muted, app audio, or microphone commentary'),
2453
+ right: (
2454
+ <View style={{flexDirection: 'row', gap: 4}}>
2455
+ {['Muted', 'App', 'Mic'].map((aud, i) => (
2456
+ <View
2457
+ key={aud}
2458
+ style={{
2459
+ paddingHorizontal: 7,
2460
+ paddingVertical: 4,
2461
+ borderRadius: 6,
2462
+ backgroundColor: i === 0 ? AppColors.purple : `${AppColors.purple}1A`,
2463
+ }}>
2464
+ <Text
2465
+ style={{
2466
+ fontFamily: AppFonts.interBold,
2467
+ fontSize: 10,
2468
+ color: i === 0 ? AppColors.white : AppColors.purple,
2469
+ }}>
2470
+ {aud}
2471
+ </Text>
2472
+ </View>
2473
+ ))}
2474
+ </View>
2475
+ ),
2476
+ })}
2477
+
2478
+ {renderSettingRow({
2479
+ icon: <FilmIcon color={AppColors.purple} size={16} />,
2480
+ label: t('settings.media.frameRate', 'Recording Frame Rate (FPS)'),
2481
+ description: t('settings.media.frameRateDesc', 'Target video smoothness: 15, 24, 30, or 60 FPS'),
2482
+ right: (
2483
+ <View style={{flexDirection: 'row', gap: 4}}>
2484
+ {['15', '24', '30', '60'].map(fps => (
2485
+ <View
2486
+ key={fps}
2487
+ style={{
2488
+ paddingHorizontal: 6,
2489
+ paddingVertical: 4,
2490
+ borderRadius: 6,
2491
+ backgroundColor: fps === '24' ? AppColors.purple : `${AppColors.purple}1A`,
2492
+ }}>
2493
+ <Text
2494
+ style={{
2495
+ fontFamily: AppFonts.interBold,
2496
+ fontSize: 10,
2497
+ color: fps === '24' ? AppColors.white : AppColors.purple,
2498
+ }}>
2499
+ {fps}fps
2500
+ </Text>
2501
+ </View>
2502
+ ))}
2503
+ </View>
2504
+ ),
2505
+ })}
2506
+
2507
+ {renderSettingRow({
2508
+ icon: <GifIcon color={AppColors.purple} size={16} />,
2509
+ label: t('settings.media.gifAutoOpt', 'Auto GIF Optimization'),
2510
+ description: t('settings.media.gifAutoOptDesc', 'Automatic palette reduction and frame skip for lightweight animated GIFs'),
2511
+ isLast: true,
2512
+ right: (
2513
+ <View
2514
+ style={{
2515
+ paddingHorizontal: 8,
2516
+ paddingVertical: 4,
2517
+ borderRadius: 6,
2518
+ backgroundColor: `${AppColors.emerald500}26`,
2519
+ }}>
2520
+ <Text
2521
+ style={{
2522
+ fontFamily: AppFonts.interBold,
2523
+ fontSize: 10,
2524
+ color: AppColors.emerald500,
2525
+ }}>
2526
+ ON
2527
+ </Text>
2528
+ </View>
2529
+ ),
2530
+ })}
2531
+ </View>
2532
+
2533
+ {/* Media Storage Cache Management */}
2534
+ <View
2535
+ style={{
2536
+ backgroundColor: AppColors.primaryLight,
2537
+ borderRadius: 14,
2538
+ borderWidth: 1,
2539
+ borderColor: AppColors.grayBorderSecondary,
2540
+ padding: 16,
2541
+ }}>
2542
+ {renderSettingRow({
2543
+ icon: <TrashIcon color={AppColors.errorColor} size={16} />,
2544
+ label: t('settings.media.purgeAll', 'Purge Captured Media Cache'),
2545
+ description: t('settings.media.purgeAllDesc', 'Delete all local screenshots, screen recordings and converted GIFs'),
2546
+ isLast: true,
2547
+ onPress: () => {
2548
+ Alert.alert(
2549
+ t('settings.media.purgeConfirmTitle', 'Purge Media Storage?'),
2550
+ t('settings.media.purgeConfirmMessage', 'This will permanently delete all captured screenshots and videos from disk.'),
2551
+ [
2552
+ {text: t('common.cancel', 'Cancel'), style: 'cancel'},
2553
+ {
2554
+ text: t('settings.media.purgeCacheBtn', 'Purge All'),
2555
+ style: 'destructive',
2556
+ onPress: async () => {
2557
+ await ScreenCapture.clearAllMedia();
2558
+ showToast(t('settings.media.purgedSuccess', 'Media cache cleared successfully'));
2559
+ },
2560
+ },
2561
+ ],
2562
+ );
2563
+ },
2564
+ right: (
2565
+ <View
2566
+ style={{
2567
+ paddingHorizontal: 12,
2568
+ paddingVertical: 6,
2569
+ borderRadius: 8,
2570
+ backgroundColor: `${AppColors.errorColor}14`,
2571
+ borderWidth: 1,
2572
+ borderColor: `${AppColors.errorColor}33`,
2573
+ }}>
2574
+ <Text
2575
+ style={{
2576
+ fontFamily: AppFonts.interBold,
2577
+ fontSize: 11,
2578
+ lineHeight: 14,
2579
+ color: AppColors.errorColor,
2580
+ }}>
2581
+ {t('settings.media.purgeCacheBtn', 'Purge All')}
2582
+ </Text>
2583
+ </View>
2584
+ ),
2585
+ })}
2586
+ </View>
2587
+ </View>
2588
+ )}
2287
2589
  {settingsActiveSubTab === 'about' && (
2288
2590
  <View style={{gap: 14}}>
2289
2591
  {/* Header Hero Branding Card */}
@@ -4221,6 +4523,7 @@ const SettingsPanel = () => {
4221
4523
  );
4222
4524
  }
4223
4525
 
4526
+
4224
4527
  const subPageAnim = useRef(new Animated.Value(0)).current;
4225
4528
  useEffect(() => {
4226
4529
  if (settingsPage !== 'main') {
@@ -17,12 +17,12 @@ export const SkeletonPlaceholder = React.memo(function SkeletonPlaceholder({
17
17
  Animated.timing(shimmerAnim, {
18
18
  toValue: 0.85,
19
19
  duration: 750,
20
- useNativeDriver: true,
20
+ useNativeDriver: false,
21
21
  }),
22
22
  Animated.timing(shimmerAnim, {
23
23
  toValue: 0.35,
24
24
  duration: 750,
25
- useNativeDriver: true,
25
+ useNativeDriver: false,
26
26
  }),
27
27
  ]),
28
28
  );
@@ -949,7 +949,7 @@ const styles = StyleSheet.create({
949
949
  borderColor: `${AppColors.grayBorderSecondary}80`,
950
950
  },
951
951
  valuePreviewText: {
952
- fontFamily: Platform.OS === 'ios' ? 'Menlo' : 'monospace',
952
+ fontFamily: AppFonts.interRegular,
953
953
  fontSize: 11,
954
954
  color: AppColors.primaryBlack,
955
955
  lineHeight: 16,
@@ -1014,7 +1014,7 @@ const styles = StyleSheet.create({
1014
1014
  color: AppColors.purple,
1015
1015
  },
1016
1016
  connectGuideCode: {
1017
- fontFamily: Platform.OS === 'ios' ? 'Menlo' : 'monospace',
1017
+ fontFamily: AppFonts.interRegular,
1018
1018
  fontSize: 10,
1019
1019
  color: AppColors.grayText,
1020
1020
  lineHeight: 15,
@@ -1079,7 +1079,7 @@ const styles = StyleSheet.create({
1079
1079
  textAreaInput: {
1080
1080
  minHeight: 90,
1081
1081
  maxHeight: 160,
1082
- fontFamily: Platform.OS === 'ios' ? 'Menlo' : 'monospace',
1082
+ fontFamily: AppFonts.interRegular,
1083
1083
  fontSize: 11,
1084
1084
  },
1085
1085
  typeSelectorStrip: {
@@ -148,14 +148,11 @@ const TabBar = React.memo(() => {
148
148
  : tab.key === 'crash' && tab.count > 0
149
149
  ? AppColors.errorColor
150
150
  : AppColors.grayText;
151
- const countLabel =
152
- tab.count > 9 ? '9+' : String(tab.count);
151
+ const countLabel = tab.count > 9 ? '9+' : String(tab.count);
153
152
  const hasUnreadApis =
154
- activeTab !== 'apis' &&
155
- logs.length > lastReadApisCount;
153
+ activeTab !== 'apis' && logs.length > lastReadApisCount;
156
154
  const hasUnreadLogs =
157
- activeTab !== 'logs' &&
158
- consoleLogs.length > lastReadLogsCount;
155
+ activeTab !== 'logs' && consoleLogs.length > lastReadLogsCount;
159
156
  const hasUnreadCrashes =
160
157
  activeTab !== 'crash' &&
161
158
  (crashRecords?.length || 0) > (lastReadCrashesCount || 0);
@@ -236,16 +233,14 @@ const TabBar = React.memo(() => {
236
233
  ellipsizeMode="tail"
237
234
  style={[
238
235
  styles.contentTabButtonText,
239
- isActive &&
240
- styles.contentTabButtonTextActive,
236
+ isActive && styles.contentTabButtonTextActive,
241
237
  ]}>
242
- {tab.label}{' '}
243
- {tab.count > 0 ? `(${countLabel})` : ''}
238
+ {tab.label} {tab.count > 0 ? `(${countLabel})` : ''}
244
239
  </Text>
245
240
  {((tab.key === 'apis' && hasUnreadApis) ||
246
241
  (tab.key === 'logs' && hasUnreadLogs) ||
247
242
  (tab.key === 'crash' && hasUnreadCrashes)) && (
248
- <Animated.View
243
+ <View
249
244
  style={{
250
245
  width: 6,
251
246
  height: 6,
@@ -253,7 +248,6 @@ const TabBar = React.memo(() => {
253
248
  backgroundColor: AppColors.errorColor,
254
249
  marginLeft: 4,
255
250
  alignSelf: 'center',
256
- transform: [{scale: unreadPulseAnim}],
257
251
  }}
258
252
  />
259
253
  )}
@@ -15,6 +15,8 @@ import {NpmIcon} from '../NetworkIcons';
15
15
  import {LIB_VERSION} from '../../constants';
16
16
  import {copyToClipboard} from '../../helpers';
17
17
  import {showToast} from '../../helpers/toast';
18
+ import {AppFonts} from '../../styles/AppFonts';
19
+ import {AppColors} from '../../styles/AppColors';
18
20
 
19
21
  // ─── Crisp SVG Icons ─────────────────────────────────────────────────────────
20
22
 
@@ -289,15 +291,9 @@ export const UpdateAvailableModal: React.FC<UpdateAvailableModalProps> = ({
289
291
  );
290
292
  };
291
293
 
292
- const fontStack = Platform.select({
293
- ios: {
294
- fontFamily: 'System',
295
- },
296
- android: {
297
- fontFamily: 'sans-serif',
298
- },
299
- default: {},
300
- });
294
+ const fontStack = {
295
+ fontFamily: AppFonts.interRegular,
296
+ };
301
297
 
302
298
  const styles = StyleSheet.create({
303
299
  overlay: {
@@ -499,7 +495,7 @@ const styles = StyleSheet.create({
499
495
  commandText: {
500
496
  flex: 1,
501
497
  fontSize: 11,
502
- fontFamily: Platform.OS === 'ios' ? 'Courier' : 'monospace',
498
+ fontFamily: AppFonts.interRegular,
503
499
  color: '#38BDF8',
504
500
  },
505
501
  copyIconWrapper: {
@@ -293,89 +293,130 @@ const JsonViewer = React.memo(({
293
293
  </Text>
294
294
  </View>
295
295
  ) : (
296
- wrap ? (
297
- fullHeight ? (
298
- <ScrollView style={{flex: 1}} contentContainerStyle={{flexGrow: 1}}>
299
- <View style={[styles.codeBlock, {width: '100%'}]}>{tree}</View>
300
- </ScrollView>
301
- ) : (
302
- <ScrollView style={scrollStyle} contentContainerStyle={{flexGrow: 1}}>
296
+ wrap ? (
297
+ fullHeight ? (
298
+ <ScrollView style={{flex: 1}} contentContainerStyle={{flexGrow: 1}}>
299
+ <View style={[styles.codeBlock, {width: '100%'}]}>{tree}</View>
300
+ </ScrollView>
301
+ ) : (
303
302
  <View style={[styles.codeBlock, {width: '100%'}]}>{tree}</View>
304
- </ScrollView>
305
- )
306
- ) : (
307
- fullHeight ? (
308
- <ScrollView style={{flex: 1}} contentContainerStyle={{flexGrow: 1}}>
309
- <View style={styles.codeBlock}>{tree}</View>
310
- </ScrollView>
303
+ )
311
304
  ) : (
312
- <ScrollView style={scrollStyle}>
305
+ fullHeight ? (
306
+ <ScrollView style={{flex: 1}} contentContainerStyle={{flexGrow: 1}}>
307
+ <ScrollView
308
+ horizontal
309
+ showsHorizontalScrollIndicator={true}
310
+ style={styles.codeBlockScroll}>
311
+ <View style={styles.codeBlock}>{tree}</View>
312
+ </ScrollView>
313
+ </ScrollView>
314
+ ) : (
313
315
  <ScrollView
314
316
  horizontal
315
317
  showsHorizontalScrollIndicator={true}
316
318
  style={styles.codeBlockScroll}>
317
319
  <View style={styles.codeBlock}>{tree}</View>
318
320
  </ScrollView>
319
- </ScrollView>
321
+ )
320
322
  )
321
323
  )
322
- )
323
324
  )}
324
325
 
325
326
  {mode === 'raw' && (
326
- <ScrollView
327
- style={scrollStyle}
328
- contentContainerStyle={localStyles.rawContainer}
329
- showsVerticalScrollIndicator={true}
330
- nestedScrollEnabled={true}>
331
- <HighlightText
332
- text={displayRawText}
333
- search={search}
334
- detectLinks={rawText.length < 20000}
335
- style={localStyles.rawPlainText}
336
- selectable={true}
337
- highlightStyle={{
338
- backgroundColor: AppColors.yellowHighlight,
339
- color: AppColors.primaryBlack,
340
- borderRadius: 3,
341
- paddingHorizontal: 2,
342
- }}
343
- />
344
- {isTruncated && (
345
- <TouchableOpacity
346
- onPress={() => setShowFullRaw(true)}
347
- style={{
348
- marginTop: 10,
349
- backgroundColor: `${AppColors.brandPurple}15`,
350
- paddingVertical: 8,
351
- paddingHorizontal: 12,
352
- borderRadius: 6,
353
- alignItems: 'center',
354
- borderWidth: 1,
355
- borderColor: `${AppColors.brandPurple}30`,
356
- }}>
357
- <Text
327
+ fullHeight ? (
328
+ <ScrollView
329
+ style={{flex: 1}}
330
+ contentContainerStyle={localStyles.rawContainer}
331
+ showsVerticalScrollIndicator={true}>
332
+ <HighlightText
333
+ text={displayRawText}
334
+ search={search}
335
+ detectLinks={rawText.length < 20000}
336
+ style={localStyles.rawPlainText}
337
+ selectable={true}
338
+ highlightStyle={{
339
+ backgroundColor: AppColors.yellowHighlight,
340
+ color: AppColors.primaryBlack,
341
+ borderRadius: 3,
342
+ paddingHorizontal: 2,
343
+ }}
344
+ />
345
+ {isTruncated && (
346
+ <TouchableOpacity
347
+ onPress={() => setShowFullRaw(true)}
358
348
  style={{
359
- fontFamily: AppFonts.interBold,
360
- fontSize: 11,
361
- color: AppColors.brandPurple,
349
+ marginTop: 10,
350
+ backgroundColor: `${AppColors.brandPurple}15`,
351
+ paddingVertical: 8,
352
+ paddingHorizontal: 12,
353
+ borderRadius: 6,
354
+ alignItems: 'center',
355
+ borderWidth: 1,
356
+ borderColor: `${AppColors.brandPurple}30`,
362
357
  }}>
363
- Showing first 50 KB ({Math.round(rawText.length / 1024)} KB total) · Tap to load full
364
- </Text>
365
- </TouchableOpacity>
366
- )}
367
- </ScrollView>
358
+ <Text
359
+ style={{
360
+ fontFamily: AppFonts.interBold,
361
+ fontSize: 11,
362
+ color: AppColors.brandPurple,
363
+ }}>
364
+ Showing first 50 KB ({Math.round(rawText.length / 1024)} KB total) · Tap to load full
365
+ </Text>
366
+ </TouchableOpacity>
367
+ )}
368
+ </ScrollView>
369
+ ) : (
370
+ <View style={localStyles.rawContainer}>
371
+ <HighlightText
372
+ text={displayRawText}
373
+ search={search}
374
+ detectLinks={rawText.length < 20000}
375
+ style={localStyles.rawPlainText}
376
+ selectable={true}
377
+ highlightStyle={{
378
+ backgroundColor: AppColors.yellowHighlight,
379
+ color: AppColors.primaryBlack,
380
+ borderRadius: 3,
381
+ paddingHorizontal: 2,
382
+ }}
383
+ />
384
+ {isTruncated && (
385
+ <TouchableOpacity
386
+ onPress={() => setShowFullRaw(true)}
387
+ style={{
388
+ marginTop: 10,
389
+ backgroundColor: `${AppColors.brandPurple}15`,
390
+ paddingVertical: 8,
391
+ paddingHorizontal: 12,
392
+ borderRadius: 6,
393
+ alignItems: 'center',
394
+ borderWidth: 1,
395
+ borderColor: `${AppColors.brandPurple}30`,
396
+ }}>
397
+ <Text
398
+ style={{
399
+ fontFamily: AppFonts.interBold,
400
+ fontSize: 11,
401
+ color: AppColors.brandPurple,
402
+ }}>
403
+ Showing first 50 KB ({Math.round(rawText.length / 1024)} KB total) · Tap to load full
404
+ </Text>
405
+ </TouchableOpacity>
406
+ )}
407
+ </View>
408
+ )
368
409
  )}
369
410
 
370
411
  {mode === 'table' && (
371
412
  fullHeight ? (
372
- <ScrollView style={scrollStyle}>
413
+ <ScrollView style={{flex: 1}}>
373
414
  {renderTableMode()}
374
415
  </ScrollView>
375
416
  ) : (
376
- <ScrollView style={scrollStyle}>
417
+ <View style={localStyles.tableView}>
377
418
  {renderTableMode()}
378
- </ScrollView>
419
+ </View>
379
420
  )
380
421
  )}
381
422
  </View>