react-native-inapp-inspector 2.3.15 → 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 (381) hide show
  1. package/README.md +1 -0
  2. package/android/src/main/java/com/inappinspector/NetworkInspectorModule.kt +438 -7
  3. package/bin/cli.js +0 -0
  4. package/dist/commonjs/capture.d.ts +26 -0
  5. package/dist/commonjs/capture.js +32 -0
  6. package/dist/commonjs/components/AnalyticsEventCard.js +11 -11
  7. package/dist/commonjs/components/AnimatedEntrance.js +6 -70
  8. package/dist/commonjs/components/DomainHeader.js +3 -48
  9. package/dist/commonjs/components/EmptyState.js +2 -2
  10. package/dist/commonjs/components/HeadersSection.js +14 -34
  11. package/dist/commonjs/components/Inspector/AnalyticsTab.js +1 -24
  12. package/dist/commonjs/components/Inspector/ConsoleTab.js +1 -23
  13. package/dist/commonjs/components/Inspector/CrashTab.js +4 -25
  14. package/dist/commonjs/components/Inspector/DebuggingTab.js +2 -2
  15. package/dist/commonjs/components/Inspector/FeedbackModal.d.ts +7 -0
  16. package/dist/commonjs/components/Inspector/FeedbackModal.js +552 -0
  17. package/dist/commonjs/components/Inspector/InspectorHeader.js +675 -285
  18. package/dist/commonjs/components/Inspector/MainScreen.js +66 -69
  19. package/dist/commonjs/components/Inspector/MediaGalleryTab.d.ts +2 -0
  20. package/dist/commonjs/components/Inspector/MediaGalleryTab.js +307 -0
  21. package/dist/commonjs/components/Inspector/MediaPreviewModal.d.ts +11 -0
  22. package/dist/commonjs/components/Inspector/MediaPreviewModal.js +393 -0
  23. package/dist/commonjs/components/Inspector/NetworkTab.js +196 -206
  24. package/dist/commonjs/components/Inspector/NpmStarPrompt.d.ts +3 -0
  25. package/dist/commonjs/components/Inspector/NpmStarPrompt.js +494 -0
  26. package/dist/commonjs/components/Inspector/NpmUpdateToast.js +4 -9
  27. package/dist/commonjs/components/Inspector/PerformanceTab.js +8 -1
  28. package/dist/commonjs/components/Inspector/ReduxTab.js +4 -24
  29. package/dist/commonjs/components/Inspector/SettingsPanel.js +1280 -173
  30. package/dist/commonjs/components/Inspector/SkeletonPlaceholder.js +2 -2
  31. package/dist/commonjs/components/Inspector/StorageTab.js +3 -26
  32. package/dist/commonjs/components/Inspector/TabBar.js +55 -25
  33. package/dist/commonjs/components/Inspector/UpdateAvailableModal.js +5 -10
  34. package/dist/commonjs/components/JsonViewer.js +43 -20
  35. package/dist/commonjs/components/LogCard.js +5 -5
  36. package/dist/commonjs/components/MetaAccordion.js +78 -80
  37. package/dist/commonjs/components/NetworkIcons.d.ts +13 -0
  38. package/dist/commonjs/components/NetworkIcons.js +83 -2
  39. package/dist/commonjs/components/SectionHeader.js +3 -48
  40. package/dist/commonjs/components/SkeletonPlaceholder.js +2 -2
  41. package/dist/commonjs/components/SourcePageCard.js +43 -45
  42. package/dist/commonjs/components/Toast.js +4 -4
  43. package/dist/commonjs/components/TouchableScale.js +9 -65
  44. package/dist/commonjs/components/TreeNode.js +2 -14
  45. package/dist/commonjs/constants/telemetryConfig.d.ts +3 -3
  46. package/dist/commonjs/constants/telemetryConfig.js +3 -3
  47. package/dist/commonjs/constants/version.d.ts +1 -1
  48. package/dist/commonjs/constants/version.js +1 -1
  49. package/dist/commonjs/customHooks/useAccordion.d.ts +3 -8
  50. package/dist/commonjs/customHooks/useAccordion.js +6 -36
  51. package/dist/commonjs/helpers/index.d.ts +3 -1
  52. package/dist/commonjs/helpers/index.js +11 -1
  53. package/dist/commonjs/helpers/remoteConfig.d.ts +4 -0
  54. package/dist/commonjs/helpers/remoteConfig.js +165 -0
  55. package/dist/commonjs/helpers/searchQueryParser.js +2 -0
  56. package/dist/commonjs/helpers/telemetry.d.ts +5 -0
  57. package/dist/commonjs/helpers/telemetry.js +339 -8
  58. package/dist/commonjs/i18n/locales/en.json +66 -2
  59. package/dist/commonjs/index.d.ts +2 -0
  60. package/dist/commonjs/index.js +70 -23
  61. package/dist/commonjs/native/NativeInspector.d.ts +60 -0
  62. package/dist/commonjs/native/NativeInspector.js +109 -2
  63. package/dist/commonjs/native/NativeNetworkInspector.d.ts +8 -0
  64. package/dist/commonjs/styles/AppColors.d.ts +36 -0
  65. package/dist/commonjs/styles/AppColors.js +36 -0
  66. package/dist/commonjs/styles/AppFonts.d.ts +2 -0
  67. package/dist/commonjs/styles/AppFonts.js +1 -0
  68. package/dist/commonjs/styles/index.d.ts +25 -1
  69. package/dist/commonjs/styles/index.js +22 -1
  70. package/dist/commonjs/types/enums.d.ts +2 -0
  71. package/dist/commonjs/types/enums.js +2 -0
  72. package/dist/commonjs/types/index.d.ts +2 -2
  73. package/dist/commonjs/types/interfaces.d.ts +12 -0
  74. package/dist/esm/capture.d.ts +26 -0
  75. package/dist/esm/capture.js +29 -0
  76. package/dist/esm/components/AnalyticsEventCard.js +11 -11
  77. package/dist/esm/components/AnimatedEntrance.js +4 -38
  78. package/dist/esm/components/DomainHeader.js +4 -16
  79. package/dist/esm/components/EmptyState.js +2 -2
  80. package/dist/esm/components/HeadersSection.js +16 -36
  81. package/dist/esm/components/Inspector/AnalyticsTab.js +3 -26
  82. package/dist/esm/components/Inspector/ConsoleTab.js +3 -25
  83. package/dist/esm/components/Inspector/CrashTab.js +6 -27
  84. package/dist/esm/components/Inspector/DebuggingTab.js +3 -3
  85. package/dist/esm/components/Inspector/FeedbackModal.d.ts +7 -0
  86. package/dist/esm/components/Inspector/FeedbackModal.js +515 -0
  87. package/dist/esm/components/Inspector/InspectorHeader.js +678 -288
  88. package/dist/esm/components/Inspector/MainScreen.js +67 -70
  89. package/dist/esm/components/Inspector/MediaGalleryTab.d.ts +2 -0
  90. package/dist/esm/components/Inspector/MediaGalleryTab.js +267 -0
  91. package/dist/esm/components/Inspector/MediaPreviewModal.d.ts +11 -0
  92. package/dist/esm/components/Inspector/MediaPreviewModal.js +353 -0
  93. package/dist/esm/components/Inspector/NetworkTab.js +199 -209
  94. package/dist/esm/components/Inspector/NpmStarPrompt.d.ts +3 -0
  95. package/dist/esm/components/Inspector/NpmStarPrompt.js +454 -0
  96. package/dist/esm/components/Inspector/NpmUpdateToast.js +5 -10
  97. package/dist/esm/components/Inspector/PerformanceTab.js +8 -1
  98. package/dist/esm/components/Inspector/ReduxTab.js +6 -26
  99. package/dist/esm/components/Inspector/SettingsPanel.js +1283 -176
  100. package/dist/esm/components/Inspector/SkeletonPlaceholder.js +2 -2
  101. package/dist/esm/components/Inspector/StorageTab.js +3 -26
  102. package/dist/esm/components/Inspector/TabBar.js +56 -26
  103. package/dist/esm/components/Inspector/UpdateAvailableModal.js +6 -11
  104. package/dist/esm/components/JsonViewer.js +43 -20
  105. package/dist/esm/components/LogCard.js +5 -5
  106. package/dist/esm/components/MetaAccordion.js +79 -81
  107. package/dist/esm/components/NetworkIcons.d.ts +13 -0
  108. package/dist/esm/components/NetworkIcons.js +68 -0
  109. package/dist/esm/components/SectionHeader.js +4 -16
  110. package/dist/esm/components/SkeletonPlaceholder.js +2 -2
  111. package/dist/esm/components/SourcePageCard.js +44 -46
  112. package/dist/esm/components/Toast.js +4 -4
  113. package/dist/esm/components/TouchableScale.js +7 -33
  114. package/dist/esm/components/TreeNode.js +4 -16
  115. package/dist/esm/constants/telemetryConfig.d.ts +3 -3
  116. package/dist/esm/constants/telemetryConfig.js +3 -3
  117. package/dist/esm/constants/version.d.ts +1 -1
  118. package/dist/esm/constants/version.js +1 -1
  119. package/dist/esm/customHooks/useAccordion.d.ts +3 -8
  120. package/dist/esm/customHooks/useAccordion.js +7 -37
  121. package/dist/esm/helpers/index.d.ts +3 -1
  122. package/dist/esm/helpers/index.js +9 -0
  123. package/dist/esm/helpers/remoteConfig.d.ts +4 -0
  124. package/dist/esm/helpers/remoteConfig.js +160 -0
  125. package/dist/esm/helpers/searchQueryParser.js +2 -0
  126. package/dist/esm/helpers/telemetry.d.ts +5 -0
  127. package/dist/esm/helpers/telemetry.js +332 -9
  128. package/dist/esm/i18n/locales/en.json +66 -2
  129. package/dist/esm/index.d.ts +2 -0
  130. package/dist/esm/index.js +66 -23
  131. package/dist/esm/native/NativeInspector.d.ts +60 -0
  132. package/dist/esm/native/NativeInspector.js +100 -1
  133. package/dist/esm/native/NativeNetworkInspector.d.ts +8 -0
  134. package/dist/esm/styles/AppColors.d.ts +36 -0
  135. package/dist/esm/styles/AppColors.js +36 -0
  136. package/dist/esm/styles/AppFonts.d.ts +2 -0
  137. package/dist/esm/styles/AppFonts.js +1 -0
  138. package/dist/esm/styles/index.d.ts +25 -1
  139. package/dist/esm/styles/index.js +22 -1
  140. package/dist/esm/types/enums.d.ts +2 -0
  141. package/dist/esm/types/enums.js +2 -0
  142. package/dist/esm/types/index.d.ts +2 -2
  143. package/dist/esm/types/interfaces.d.ts +12 -0
  144. package/ios/NetworkInspectorModule.h +1 -0
  145. package/ios/NetworkInspectorModule.mm +736 -7
  146. package/package.json +10 -2
  147. package/react-native-inapp-inspector.podspec +1 -0
  148. package/src/capture.ts +101 -0
  149. package/src/components/AnalyticsEventCard.tsx +15 -13
  150. package/src/components/AnimatedEntrance.tsx +3 -47
  151. package/src/components/DomainHeader.tsx +4 -17
  152. package/src/components/EmptyState.tsx +2 -2
  153. package/src/components/HeadersSection.tsx +31 -56
  154. package/src/components/Inspector/AnalyticsTab.tsx +2 -25
  155. package/src/components/Inspector/ConsoleTab.tsx +2 -24
  156. package/src/components/Inspector/CrashTab.tsx +4 -25
  157. package/src/components/Inspector/DebuggingTab.tsx +2 -2
  158. package/src/components/Inspector/FeedbackModal.tsx +626 -0
  159. package/src/components/Inspector/InspectorHeader.tsx +1230 -728
  160. package/src/components/Inspector/MainScreen.tsx +97 -82
  161. package/src/components/Inspector/MediaGalleryTab.tsx +355 -0
  162. package/src/components/Inspector/MediaPreviewModal.tsx +435 -0
  163. package/src/components/Inspector/NetworkTab.tsx +83 -93
  164. package/src/components/Inspector/NpmStarPrompt.tsx +532 -0
  165. package/src/components/Inspector/NpmUpdateToast.tsx +4 -9
  166. package/src/components/Inspector/PerformanceTab.tsx +8 -1
  167. package/src/components/Inspector/ReduxTab.tsx +5 -25
  168. package/src/components/Inspector/SettingsPanel.tsx +1493 -225
  169. package/src/components/Inspector/SkeletonPlaceholder.tsx +2 -2
  170. package/src/components/Inspector/StorageTab.tsx +3 -26
  171. package/src/components/Inspector/TabBar.tsx +63 -32
  172. package/src/components/Inspector/UpdateAvailableModal.tsx +6 -10
  173. package/src/components/JsonViewer.tsx +101 -60
  174. package/src/components/LogCard.tsx +10 -8
  175. package/src/components/MetaAccordion.tsx +6 -6
  176. package/src/components/NetworkIcons.tsx +242 -0
  177. package/src/components/SectionHeader.tsx +4 -16
  178. package/src/components/SkeletonPlaceholder.tsx +2 -2
  179. package/src/components/SourcePageCard.tsx +57 -55
  180. package/src/components/Toast.tsx +4 -4
  181. package/src/components/TouchableScale.tsx +8 -38
  182. package/src/components/TreeNode.tsx +5 -20
  183. package/src/constants/telemetryConfig.ts +3 -5
  184. package/src/constants/version.ts +1 -1
  185. package/src/customHooks/useAccordion.tsx +10 -43
  186. package/src/helpers/index.ts +11 -1
  187. package/src/helpers/remoteConfig.ts +212 -0
  188. package/src/helpers/searchQueryParser.ts +3 -0
  189. package/src/helpers/telemetry.ts +381 -10
  190. package/src/i18n/locales/en.json +69 -2
  191. package/src/index.tsx +93 -23
  192. package/src/native/NativeInspector.ts +186 -1
  193. package/src/native/NativeNetworkInspector.ts +9 -0
  194. package/src/styles/AppColors.ts +38 -0
  195. package/src/styles/AppFonts.ts +2 -0
  196. package/src/styles/index.ts +23 -2
  197. package/src/types/enums.ts +4 -0
  198. package/src/types/index.ts +2 -2
  199. package/src/types/interfaces.ts +12 -0
  200. package/android/.gradle/8.9/checksums/checksums.lock +0 -0
  201. package/android/.gradle/8.9/checksums/md5-checksums.bin +0 -0
  202. package/android/.gradle/8.9/checksums/sha1-checksums.bin +0 -0
  203. package/android/.gradle/8.9/dependencies-accessors/gc.properties +0 -0
  204. package/android/.gradle/8.9/executionHistory/executionHistory.lock +0 -0
  205. package/android/.gradle/8.9/fileChanges/last-build.bin +0 -0
  206. package/android/.gradle/8.9/fileHashes/fileHashes.lock +0 -0
  207. package/android/.gradle/8.9/gc.properties +0 -0
  208. package/android/.gradle/9.2.0/checksums/checksums.lock +0 -0
  209. package/android/.gradle/9.2.0/fileChanges/last-build.bin +0 -0
  210. package/android/.gradle/9.2.0/fileHashes/fileHashes.bin +0 -0
  211. package/android/.gradle/9.2.0/fileHashes/fileHashes.lock +0 -0
  212. package/android/.gradle/9.2.0/gc.properties +0 -0
  213. package/android/.gradle/buildOutputCleanup/buildOutputCleanup.lock +0 -0
  214. package/android/.gradle/buildOutputCleanup/cache.properties +0 -2
  215. package/android/.gradle/vcs-1/gc.properties +0 -0
  216. package/android/build/.transforms/6683d6eeaa3e1dfa689c3385111a0386/results.bin +0 -1
  217. package/android/build/.transforms/6683d6eeaa3e1dfa689c3385111a0386/transformed/classes/classes_dex/classes.dex +0 -0
  218. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/results.bin +0 -1
  219. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/BuildConfig.dex +0 -0
  220. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView$iconView$1.dex +0 -0
  221. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/InAppInspectorFloatingView.dex +0 -0
  222. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NativeNetworkInspectorSpec.dex +0 -0
  223. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$Companion.dex +0 -0
  224. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$frameCallback$1.dex +0 -0
  225. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule$shakeListener$1.dex +0 -0
  226. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorModule.dex +0 -0
  227. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/bundleLibRuntimeToDirDebug_dex/com/inappinspector/NetworkInspectorPackage.dex +0 -0
  228. package/android/build/.transforms/9d2a3e5e0f0ea07cafb0c0bf290630ee/transformed/bundleLibRuntimeToDirDebug/desugar_graph.bin +0 -0
  229. package/android/build/generated/source/buildConfig/debug/com/inappinspector/BuildConfig.java +0 -10
  230. package/android/build/generated/source/codegen/java/com/inappinspector/NativeNetworkInspectorSpec.java +0 -104
  231. package/android/build/generated/source/codegen/jni/CMakeLists.txt +0 -28
  232. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec-generated.cpp +0 -128
  233. package/android/build/generated/source/codegen/jni/RNInAppInspectorSpec.h +0 -31
  234. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.cpp +0 -22
  235. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ComponentDescriptors.h +0 -24
  236. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.cpp +0 -16
  237. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/EventEmitters.h +0 -17
  238. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.cpp +0 -19
  239. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/Props.h +0 -18
  240. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/RNInAppInspectorSpecJSI.h +0 -177
  241. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.cpp +0 -17
  242. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/ShadowNodes.h +0 -23
  243. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.cpp +0 -16
  244. package/android/build/generated/source/codegen/jni/react/renderer/components/RNInAppInspectorSpec/States.h +0 -20
  245. package/android/build/generated/source/codegen/schema.json +0 -1
  246. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/AndroidManifest.xml +0 -7
  247. package/android/build/intermediates/aapt_friendly_merged_manifests/debug/processDebugManifest/aapt/output-metadata.json +0 -18
  248. package/android/build/intermediates/aar_main_jar/debug/syncDebugLibJars/classes.jar +0 -0
  249. package/android/build/intermediates/aar_metadata/debug/writeDebugAarMetadata/aar-metadata.properties +0 -6
  250. package/android/build/intermediates/annotation_processor_list/debug/javaPreCompileDebug/annotationProcessors.json +0 -1
  251. package/android/build/intermediates/annotations_typedef_file/debug/extractDebugAnnotations/typedefs.txt +0 -0
  252. package/android/build/intermediates/compile_library_classes_jar/debug/bundleLibCompileToJarDebug/classes.jar +0 -0
  253. package/android/build/intermediates/compile_r_class_jar/debug/generateDebugRFile/R.jar +0 -0
  254. package/android/build/intermediates/compile_symbol_list/debug/generateDebugRFile/R.txt +0 -0
  255. package/android/build/intermediates/incremental/debug/packageDebugResources/compile-file-map.properties +0 -1
  256. package/android/build/intermediates/incremental/debug/packageDebugResources/merger.xml +0 -2
  257. package/android/build/intermediates/incremental/debug-mergeJavaRes/merge-state +0 -0
  258. package/android/build/intermediates/incremental/mergeDebugJniLibFolders/merger.xml +0 -2
  259. package/android/build/intermediates/incremental/mergeDebugShaders/merger.xml +0 -2
  260. package/android/build/intermediates/incremental/packageDebugAssets/merger.xml +0 -2
  261. package/android/build/intermediates/java_res/debug/processDebugJavaRes/out/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  262. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/BuildConfig.class +0 -0
  263. package/android/build/intermediates/javac/debug/compileDebugJavaWithJavac/classes/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  264. package/android/build/intermediates/local_only_symbol_list/debug/parseDebugLocalResources/R-def.txt +0 -2
  265. package/android/build/intermediates/manifest_merge_blame_file/debug/processDebugManifest/manifest-merger-blame-debug-report.txt +0 -7
  266. package/android/build/intermediates/merged_java_res/debug/mergeDebugJavaResource/feature-react-native-inapp-inspector.jar +0 -0
  267. package/android/build/intermediates/merged_manifest/debug/processDebugManifest/AndroidManifest.xml +0 -7
  268. package/android/build/intermediates/navigation_json/debug/extractDeepLinksDebug/navigation.json +0 -1
  269. package/android/build/intermediates/nested_resources_validation_report/debug/generateDebugResources/nestedResourcesValidationReport.txt +0 -1
  270. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  271. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/BuildConfig.class +0 -0
  272. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  273. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  274. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NativeNetworkInspectorSpec.class +0 -0
  275. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  276. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  277. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  278. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorModule.class +0 -0
  279. package/android/build/intermediates/runtime_library_classes_dir/debug/bundleLibRuntimeToDirDebug/com/inappinspector/NetworkInspectorPackage.class +0 -0
  280. package/android/build/intermediates/runtime_library_classes_jar/debug/bundleLibRuntimeToJarDebug/classes.jar +0 -0
  281. package/android/build/intermediates/symbol_list_with_package_name/debug/generateDebugRFile/package-aware-r.txt +0 -1
  282. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab +0 -0
  283. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream +0 -0
  284. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.keystream.len +0 -0
  285. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.len +0 -0
  286. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab.values.at +0 -0
  287. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i +0 -0
  288. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/inputs/source-to-output.tab_i.len +0 -0
  289. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab +0 -0
  290. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream +0 -0
  291. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.keystream.len +0 -0
  292. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.len +0 -0
  293. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab.values.at +0 -0
  294. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i +0 -0
  295. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-attributes.tab_i.len +0 -0
  296. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab +0 -0
  297. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream +0 -0
  298. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.keystream.len +0 -0
  299. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.len +0 -0
  300. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab.values.at +0 -0
  301. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i +0 -0
  302. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/class-fq-name-to-source.tab_i.len +0 -0
  303. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab +0 -0
  304. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream +0 -0
  305. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.keystream.len +0 -0
  306. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.len +0 -0
  307. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab.values.at +0 -0
  308. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i +0 -0
  309. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/constants.tab_i.len +0 -0
  310. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab +0 -0
  311. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream +0 -0
  312. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.keystream.len +0 -0
  313. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.len +0 -0
  314. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab.values.at +0 -0
  315. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i +0 -0
  316. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/internal-name-to-source.tab_i.len +0 -0
  317. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab +0 -0
  318. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream +0 -0
  319. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.keystream.len +0 -0
  320. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.len +0 -0
  321. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab.values.at +0 -0
  322. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i +0 -0
  323. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/proto.tab_i.len +0 -0
  324. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab +0 -0
  325. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream +0 -0
  326. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.keystream.len +0 -0
  327. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.len +0 -0
  328. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab.values.at +0 -0
  329. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i +0 -0
  330. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/source-to-classes.tab_i.len +0 -0
  331. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab +0 -0
  332. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream +0 -0
  333. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.keystream.len +0 -0
  334. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.len +0 -0
  335. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab.values.at +0 -0
  336. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i +0 -0
  337. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/subtypes.tab_i.len +0 -0
  338. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab +0 -0
  339. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream +0 -0
  340. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.keystream.len +0 -0
  341. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.len +0 -0
  342. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab.values.at +0 -0
  343. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i +0 -0
  344. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/jvm/kotlin/supertypes.tab_i.len +0 -0
  345. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/counters.tab +0 -2
  346. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab +0 -0
  347. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream +0 -0
  348. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.keystream.len +0 -0
  349. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.len +0 -0
  350. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab.values.at +0 -0
  351. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i +0 -0
  352. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/file-to-id.tab_i.len +0 -0
  353. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab +0 -0
  354. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream +0 -0
  355. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.keystream.len +0 -0
  356. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.len +0 -0
  357. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab.values.at +0 -0
  358. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i +0 -0
  359. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/id-to-file.tab_i.len +0 -0
  360. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab +0 -0
  361. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream +0 -0
  362. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.keystream.len +0 -0
  363. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.len +0 -0
  364. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab.values.at +0 -0
  365. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i +0 -0
  366. package/android/build/kotlin/compileDebugKotlin/cacheable/caches-jvm/lookups/lookups.tab_i.len +0 -0
  367. package/android/build/kotlin/compileDebugKotlin/cacheable/last-build.bin +0 -0
  368. package/android/build/kotlin/compileDebugKotlin/classpath-snapshot/shrunk-classpath-snapshot.bin +0 -0
  369. package/android/build/kotlin/compileDebugKotlin/local-state/build-history.bin +0 -0
  370. package/android/build/outputs/aar/react-native-inapp-inspector-debug.aar +0 -0
  371. package/android/build/outputs/logs/manifest-merger-debug-report.txt +0 -17
  372. package/android/build/reports/problems/problems-report.html +0 -659
  373. package/android/build/tmp/compileDebugJavaWithJavac/previous-compilation-data.bin +0 -0
  374. package/android/build/tmp/kotlin-classes/debug/META-INF/react-native-inapp-inspector_debug.kotlin_module +0 -0
  375. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView$iconView$1.class +0 -0
  376. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/InAppInspectorFloatingView.class +0 -0
  377. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$Companion.class +0 -0
  378. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$frameCallback$1.class +0 -0
  379. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule$shakeListener$1.class +0 -0
  380. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorModule.class +0 -0
  381. package/android/build/tmp/kotlin-classes/debug/com/inappinspector/NetworkInspectorPackage.class +0 -0
@@ -0,0 +1,454 @@
1
+ import React, { useEffect, useRef, useState } from 'react';
2
+ import { Animated, Linking, Modal, Platform, StyleSheet, Text, TouchableOpacity, View, } from 'react-native';
3
+ import { AppColors } from '../../styles/AppColors';
4
+ import { AppFonts } from '../../styles/AppFonts';
5
+ import TouchableScale from '../TouchableScale';
6
+ import { loadSettings, saveSettings } from '../../helpers/settingsStore';
7
+ import { trackTelemetryEvent } from '../../helpers/telemetry';
8
+ import { StarIcon, CloseWhite, CheckIcon, GitHubIcon, NpmIcon, } from '../NetworkIcons';
9
+ const FIVE_DAYS_MS = 5 * 24 * 60 * 60 * 1000;
10
+ const GITHUB_REPO_URL = 'https://github.com/vengatmacuser/react-native-inapp-inspector';
11
+ const NPM_PACKAGE_URL = 'https://www.npmjs.com/package/react-native-inapp-inspector';
12
+ export const NpmStarPrompt = () => {
13
+ const [isOpen, setIsOpen] = useState(false);
14
+ const slideAnim = useRef(new Animated.Value(200)).current;
15
+ const fadeAnim = useRef(new Animated.Value(0)).current;
16
+ const pulseAnim = useRef(new Animated.Value(1)).current;
17
+ useEffect(() => {
18
+ let isMounted = true;
19
+ async function checkEligibility() {
20
+ try {
21
+ const settings = await loadSettings();
22
+ if (settings.starPromptActioned) {
23
+ return;
24
+ }
25
+ const now = Date.now();
26
+ const firstSeen = settings.starPromptFirstSeen || now;
27
+ if (!settings.starPromptFirstSeen) {
28
+ await saveSettings({
29
+ ...settings,
30
+ starPromptFirstSeen: now,
31
+ });
32
+ }
33
+ const lastShown = settings.starPromptLastShown || firstSeen;
34
+ const timeElapsed = now - lastShown;
35
+ if (timeElapsed >= FIVE_DAYS_MS) {
36
+ const shouldShow = Math.random() < 0.65;
37
+ if (shouldShow && isMounted) {
38
+ setTimeout(() => {
39
+ if (isMounted) {
40
+ openPrompt();
41
+ }
42
+ }, 1800);
43
+ }
44
+ }
45
+ }
46
+ catch {
47
+ }
48
+ }
49
+ checkEligibility();
50
+ return () => {
51
+ isMounted = false;
52
+ };
53
+ }, []);
54
+ const openPrompt = async () => {
55
+ setIsOpen(true);
56
+ try {
57
+ const settings = await loadSettings();
58
+ await saveSettings({
59
+ ...settings,
60
+ starPromptLastShown: Date.now(),
61
+ });
62
+ trackTelemetryEvent('npm_star_prompt_shown', {
63
+ trigger: '5_day_interval',
64
+ platform: Platform.OS,
65
+ });
66
+ }
67
+ catch { }
68
+ Animated.parallel([
69
+ Animated.spring(slideAnim, {
70
+ toValue: 0,
71
+ friction: 8,
72
+ tension: 50,
73
+ useNativeDriver: true,
74
+ }),
75
+ Animated.timing(fadeAnim, {
76
+ toValue: 1,
77
+ duration: 250,
78
+ useNativeDriver: true,
79
+ }),
80
+ ]).start();
81
+ Animated.loop(Animated.sequence([
82
+ Animated.timing(pulseAnim, {
83
+ toValue: 1.15,
84
+ duration: 900,
85
+ useNativeDriver: true,
86
+ }),
87
+ Animated.timing(pulseAnim, {
88
+ toValue: 1,
89
+ duration: 900,
90
+ useNativeDriver: true,
91
+ }),
92
+ ])).start();
93
+ };
94
+ const closePrompt = (callback) => {
95
+ Animated.parallel([
96
+ Animated.timing(fadeAnim, {
97
+ toValue: 0,
98
+ duration: 180,
99
+ useNativeDriver: true,
100
+ }),
101
+ Animated.timing(slideAnim, {
102
+ toValue: 200,
103
+ duration: 180,
104
+ useNativeDriver: true,
105
+ }),
106
+ ]).start(() => {
107
+ setIsOpen(false);
108
+ if (callback)
109
+ callback();
110
+ });
111
+ };
112
+ const handleStarNow = async () => {
113
+ try {
114
+ const settings = await loadSettings();
115
+ await saveSettings({
116
+ ...settings,
117
+ starPromptActioned: true,
118
+ });
119
+ trackTelemetryEvent('npm_star_prompt_action', {
120
+ action: 'starred',
121
+ platform: Platform.OS,
122
+ });
123
+ }
124
+ catch { }
125
+ closePrompt(() => {
126
+ Linking.openURL(GITHUB_REPO_URL).catch(() => {
127
+ Linking.openURL(NPM_PACKAGE_URL).catch(() => { });
128
+ });
129
+ });
130
+ };
131
+ const handleAlreadyStarred = async () => {
132
+ try {
133
+ const settings = await loadSettings();
134
+ await saveSettings({
135
+ ...settings,
136
+ starPromptActioned: true,
137
+ });
138
+ trackTelemetryEvent('npm_star_prompt_action', {
139
+ action: 'already_starred',
140
+ platform: Platform.OS,
141
+ });
142
+ }
143
+ catch { }
144
+ closePrompt();
145
+ };
146
+ const handleRemindLater = async () => {
147
+ try {
148
+ const settings = await loadSettings();
149
+ await saveSettings({
150
+ ...settings,
151
+ starPromptLastShown: Date.now(),
152
+ });
153
+ trackTelemetryEvent('npm_star_prompt_action', {
154
+ action: 'remind_later',
155
+ platform: Platform.OS,
156
+ });
157
+ }
158
+ catch { }
159
+ closePrompt();
160
+ };
161
+ const handleDontAskAgain = async () => {
162
+ try {
163
+ const settings = await loadSettings();
164
+ await saveSettings({
165
+ ...settings,
166
+ starPromptActioned: true,
167
+ });
168
+ trackTelemetryEvent('npm_star_prompt_action', {
169
+ action: 'dont_ask_again',
170
+ platform: Platform.OS,
171
+ });
172
+ }
173
+ catch { }
174
+ closePrompt();
175
+ };
176
+ if (!isOpen)
177
+ return null;
178
+ return (<Modal transparent visible={isOpen} animationType="none" onRequestClose={handleRemindLater}>
179
+ <Animated.View style={[
180
+ styles.backdrop,
181
+ {
182
+ opacity: fadeAnim,
183
+ },
184
+ ]}>
185
+ <TouchableOpacity style={StyleSheet.absoluteFill} activeOpacity={1} onPress={handleRemindLater}/>
186
+
187
+ <Animated.View style={[
188
+ styles.cardContainer,
189
+ {
190
+ transform: [{ translateY: slideAnim }],
191
+ },
192
+ ]}>
193
+
194
+ <View style={styles.headerIconWrapper}>
195
+ <Animated.View style={[
196
+ styles.iconGlow,
197
+ {
198
+ transform: [{ scale: pulseAnim }],
199
+ },
200
+ ]}/>
201
+ <View style={styles.iconCircle}>
202
+ <StarIcon size={26} color="#F59E0B"/>
203
+ </View>
204
+ </View>
205
+
206
+
207
+ <TouchableOpacity onPress={handleRemindLater} hitSlop={{ top: 10, bottom: 10, left: 10, right: 10 }} style={styles.closeBtn}>
208
+ <CloseWhite size={12} color={AppColors.grayText}/>
209
+ </TouchableOpacity>
210
+
211
+
212
+ <View style={styles.pillBadge}>
213
+ <Text style={styles.pillBadgeText}>SUPPORT OPEN SOURCE</Text>
214
+ </View>
215
+
216
+
217
+ <Text style={styles.title}>Enjoying In-App Inspector?</Text>
218
+ <Text style={styles.description}>
219
+ If this debugging tool saves you time, please consider giving us a
220
+ star on GitHub & npm. Your support helps us build more features!
221
+ </Text>
222
+
223
+
224
+ <View style={styles.metricsBar}>
225
+ <View style={styles.metricItem}>
226
+ <GitHubIcon size={13} color={AppColors.grayText}/>
227
+ <Text style={styles.metricText}>GitHub Star</Text>
228
+ </View>
229
+ <View style={styles.metricDot}/>
230
+ <View style={styles.metricItem}>
231
+ <NpmIcon size={13} color="#CB3837"/>
232
+ <Text style={styles.metricText}>npm Package</Text>
233
+ </View>
234
+ <View style={styles.metricDot}/>
235
+ <View style={styles.metricItem}>
236
+ <Text style={styles.metricText}>100% Free</Text>
237
+ </View>
238
+ </View>
239
+
240
+
241
+ <TouchableScale accessible={true} accessibilityRole="button" accessibilityLabel="Star on GitHub" onPress={handleStarNow} style={styles.primaryButton}>
242
+ <View style={styles.primaryButtonContent}>
243
+ <StarIcon size={16} color={AppColors.white}/>
244
+ <Text style={styles.primaryButtonText}>⭐ Star on GitHub & npm</Text>
245
+ </View>
246
+ </TouchableScale>
247
+
248
+
249
+ <TouchableScale accessible={true} accessibilityRole="button" accessibilityLabel="I already starred" onPress={handleAlreadyStarred} style={styles.secondaryButton}>
250
+ <View style={styles.secondaryButtonContent}>
251
+ <CheckIcon size={13} color={AppColors.purple}/>
252
+ <Text style={styles.secondaryButtonText}>I Already Starred</Text>
253
+ </View>
254
+ </TouchableScale>
255
+
256
+
257
+ <View style={styles.footerRow}>
258
+ <TouchableOpacity onPress={handleRemindLater} hitSlop={{ top: 8, bottom: 8, left: 8, right: 8 }}>
259
+ <Text style={styles.footerLinkText}>Remind Me Later</Text>
260
+ </TouchableOpacity>
261
+
262
+ <View style={styles.footerSeparator}/>
263
+
264
+ <TouchableOpacity onPress={handleDontAskAgain} hitSlop={{ top: 8, bottom: 8, left: 8, right: 8 }}>
265
+ <Text style={styles.footerLinkTextMuted}>Don't Ask Again</Text>
266
+ </TouchableOpacity>
267
+ </View>
268
+ </Animated.View>
269
+ </Animated.View>
270
+ </Modal>);
271
+ };
272
+ const styles = StyleSheet.create({
273
+ backdrop: {
274
+ ...StyleSheet.absoluteFillObject,
275
+ backgroundColor: 'rgba(15, 23, 42, 0.65)',
276
+ justifyContent: 'center',
277
+ alignItems: 'center',
278
+ paddingHorizontal: 20,
279
+ zIndex: 99999,
280
+ },
281
+ cardContainer: {
282
+ width: '100%',
283
+ maxWidth: 380,
284
+ backgroundColor: AppColors.white,
285
+ borderRadius: 22,
286
+ padding: 22,
287
+ alignItems: 'center',
288
+ shadowColor: AppColors.black,
289
+ shadowOffset: { width: 0, height: 8 },
290
+ shadowOpacity: 0.22,
291
+ shadowRadius: 20,
292
+ elevation: 12,
293
+ borderWidth: 1.5,
294
+ borderColor: `${AppColors.purple}25`,
295
+ },
296
+ headerIconWrapper: {
297
+ position: 'relative',
298
+ alignItems: 'center',
299
+ justifyContent: 'center',
300
+ marginBottom: 12,
301
+ },
302
+ iconGlow: {
303
+ position: 'absolute',
304
+ width: 68,
305
+ height: 68,
306
+ borderRadius: 34,
307
+ backgroundColor: '#F59E0B22',
308
+ },
309
+ iconCircle: {
310
+ width: 54,
311
+ height: 54,
312
+ borderRadius: 27,
313
+ backgroundColor: '#FEF3C7',
314
+ borderWidth: 2,
315
+ borderColor: '#FDE68A',
316
+ alignItems: 'center',
317
+ justifyContent: 'center',
318
+ },
319
+ closeBtn: {
320
+ position: 'absolute',
321
+ top: 14,
322
+ right: 14,
323
+ width: 28,
324
+ height: 28,
325
+ borderRadius: 14,
326
+ backgroundColor: AppColors.grayBackground,
327
+ alignItems: 'center',
328
+ justifyContent: 'center',
329
+ },
330
+ pillBadge: {
331
+ backgroundColor: `${AppColors.purple}14`,
332
+ paddingHorizontal: 9,
333
+ paddingVertical: 3,
334
+ borderRadius: 10,
335
+ marginBottom: 8,
336
+ },
337
+ pillBadgeText: {
338
+ fontFamily: AppFonts.interBold,
339
+ fontSize: 9.5,
340
+ color: AppColors.purple,
341
+ letterSpacing: 0.6,
342
+ },
343
+ title: {
344
+ fontFamily: AppFonts.interBold,
345
+ fontSize: 18,
346
+ lineHeight: 23,
347
+ color: AppColors.primaryBlack,
348
+ textAlign: 'center',
349
+ marginBottom: 6,
350
+ },
351
+ description: {
352
+ fontFamily: AppFonts.interRegular,
353
+ fontSize: 12.5,
354
+ lineHeight: 18,
355
+ color: AppColors.grayText,
356
+ textAlign: 'center',
357
+ marginBottom: 14,
358
+ paddingHorizontal: 8,
359
+ },
360
+ metricsBar: {
361
+ flexDirection: 'row',
362
+ alignItems: 'center',
363
+ justifyContent: 'center',
364
+ backgroundColor: AppColors.grayBackground,
365
+ paddingVertical: 7,
366
+ paddingHorizontal: 14,
367
+ borderRadius: 10,
368
+ marginBottom: 16,
369
+ gap: 8,
370
+ },
371
+ metricItem: {
372
+ flexDirection: 'row',
373
+ alignItems: 'center',
374
+ gap: 4,
375
+ },
376
+ metricText: {
377
+ fontFamily: AppFonts.interMedium,
378
+ fontSize: 11,
379
+ color: AppColors.primaryBlack,
380
+ },
381
+ metricDot: {
382
+ width: 3.5,
383
+ height: 3.5,
384
+ borderRadius: 2,
385
+ backgroundColor: AppColors.dividerColor,
386
+ },
387
+ primaryButton: {
388
+ width: '100%',
389
+ backgroundColor: AppColors.purple,
390
+ borderRadius: 12,
391
+ paddingVertical: 12,
392
+ alignItems: 'center',
393
+ justifyContent: 'center',
394
+ marginBottom: 8,
395
+ shadowColor: AppColors.purple,
396
+ shadowOffset: { width: 0, height: 4 },
397
+ shadowOpacity: 0.3,
398
+ shadowRadius: 8,
399
+ elevation: 4,
400
+ },
401
+ primaryButtonContent: {
402
+ flexDirection: 'row',
403
+ alignItems: 'center',
404
+ gap: 7,
405
+ },
406
+ primaryButtonText: {
407
+ fontFamily: AppFonts.interBold,
408
+ fontSize: 14,
409
+ color: AppColors.white,
410
+ },
411
+ secondaryButton: {
412
+ width: '100%',
413
+ backgroundColor: `${AppColors.purple}10`,
414
+ borderWidth: 1,
415
+ borderColor: `${AppColors.purple}30`,
416
+ borderRadius: 12,
417
+ paddingVertical: 10,
418
+ alignItems: 'center',
419
+ justifyContent: 'center',
420
+ marginBottom: 14,
421
+ },
422
+ secondaryButtonContent: {
423
+ flexDirection: 'row',
424
+ alignItems: 'center',
425
+ gap: 6,
426
+ },
427
+ secondaryButtonText: {
428
+ fontFamily: AppFonts.interBold,
429
+ fontSize: 13,
430
+ color: AppColors.purple,
431
+ },
432
+ footerRow: {
433
+ flexDirection: 'row',
434
+ alignItems: 'center',
435
+ justifyContent: 'center',
436
+ gap: 12,
437
+ },
438
+ footerLinkText: {
439
+ fontFamily: AppFonts.interMedium,
440
+ fontSize: 11.5,
441
+ color: AppColors.grayText,
442
+ },
443
+ footerSeparator: {
444
+ width: 1,
445
+ height: 12,
446
+ backgroundColor: AppColors.dividerColor,
447
+ },
448
+ footerLinkTextMuted: {
449
+ fontFamily: AppFonts.interRegular,
450
+ fontSize: 11.5,
451
+ color: AppColors.grayTextWeak,
452
+ },
453
+ });
454
+ export default NpmStarPrompt;
@@ -1,11 +1,12 @@
1
1
  import React, { useState, useEffect, useRef } from 'react';
2
- import { Animated, Linking, Platform, StyleSheet, Text, TouchableOpacity, View, } from 'react-native';
2
+ import { Animated, Linking, StyleSheet, Text, TouchableOpacity, View, } from 'react-native';
3
3
  import Svg, { Path } from 'react-native-svg';
4
4
  import { useInspector } from './InspectorContext';
5
5
  import { LIB_VERSION } from '../../constants';
6
6
  import { NpmIcon } from '../NetworkIcons';
7
7
  import { copyToClipboard } from '../../helpers';
8
8
  import { showToast } from '../../helpers/toast';
9
+ import { AppFonts } from '../../styles/AppFonts';
9
10
  const CloseSvg = ({ size = 13, color = '#94A3B8' }) => (<Svg width={size} height={size} viewBox="0 0 24 24" fill="none">
10
11
  <Path d="M18 6L6 18M6 6l12 12" stroke={color} strokeWidth="2.4" strokeLinecap="round" strokeLinejoin="round"/>
11
12
  </Svg>);
@@ -150,15 +151,9 @@ export const NpmUpdateToast = () => {
150
151
  </View>
151
152
  </Animated.View>);
152
153
  };
153
- const fontStack = Platform.select({
154
- ios: {
155
- fontFamily: 'System',
156
- },
157
- android: {
158
- fontFamily: 'sans-serif',
159
- },
160
- default: {},
161
- });
154
+ const fontStack = {
155
+ fontFamily: AppFonts.interRegular,
156
+ };
162
157
  const styles = StyleSheet.create({
163
158
  container: {
164
159
  position: 'absolute',
@@ -13,6 +13,7 @@ import { getRuntimeDiagnostics } from '../../helpers';
13
13
  import { SearchIcon, CircleXIcon, CircleAlertIcon, PerformanceIcon, BoltIcon, LightbulbIcon, MapIcon, AtomIcon, BrainIcon, GlobeIcon, ChevronIcon, } from '../NetworkIcons';
14
14
  import { getPerformanceEvents, subscribePerformanceEvents, logPerformanceEvent, clearPerformanceEvents, } from '../../customHooks/performanceTracker';
15
15
  import { startNativeFpsMonitoring, stopNativeFpsMonitoring, getNativeFpsMetrics, getNativeSystemMetrics, isNativeModuleAvailable, } from '../../native/NativeInspector';
16
+ import { trackInspectorScreenRecord } from '../../helpers/telemetry';
16
17
  const PerformanceTab = React.memo(() => {
17
18
  const { t } = useTranslation();
18
19
  const [isRecording, setIsRecording] = useState(true);
@@ -337,7 +338,13 @@ const PerformanceTab = React.memo(() => {
337
338
  </View>
338
339
 
339
340
 
340
- <TouchableScale onPress={() => setIsRecording(prev => !prev)} style={[
341
+ <TouchableScale onPress={() => {
342
+ setIsRecording(prev => {
343
+ const next = !prev;
344
+ trackInspectorScreenRecord(next ? 'start' : 'stop', 'performance_fps');
345
+ return next;
346
+ });
347
+ }} style={[
341
348
  perfStyles.recordToggleBtn,
342
349
  isRecording
343
350
  ? perfStyles.recordToggleActive
@@ -1,5 +1,5 @@
1
1
  import React, { useCallback, useMemo, useRef, useState } from 'react';
2
- import { FlatList, Pressable, StyleSheet, Text, TextInput, TouchableOpacity, View, } from 'react-native';
2
+ import { FlatList, Platform, Pressable, StyleSheet, Text, TextInput, TouchableOpacity, View, } from 'react-native';
3
3
  import { useTranslation } from '../../i18n';
4
4
  import { useInspector } from './InspectorContext';
5
5
  import TouchableScale from '../TouchableScale';
@@ -12,7 +12,7 @@ import styles from '../../styles';
12
12
  import { AppColors } from '../../styles/AppColors';
13
13
  import { AppFonts } from '../../styles/AppFonts';
14
14
  import { getActionHistory, getReduxAutoRefresh, setReduxAutoRefresh, } from '../../customHooks/reduxLogger';
15
- import { TerminalIcon, SearchIcon, ClearIcon, LayersIcon, ClockIcon, ForwardChevronIcon, SortArrowIcon, BoltIcon, AtomIcon, ScreenIcon, ListenerIcon, DocIcon, LoadingSpinnerIcon, CircleAlertIcon, TextAaIcon, HeaderPauseIcon, ChevronIcon, } from '../NetworkIcons';
15
+ import { TerminalIcon, SearchIcon, ClearIcon, LayersIcon, ClockIcon, ForwardChevronIcon, SortArrowIcon, BoltIcon, AtomIcon, ScreenIcon, ListenerIcon, DocIcon, LoadingSpinnerIcon, CircleAlertIcon, TextAaIcon, HeaderPauseIcon, } from '../NetworkIcons';
16
16
  const getOriginBadge = (originType) => {
17
17
  switch (originType) {
18
18
  case 'saga':
@@ -208,7 +208,9 @@ const ReduxTab = React.memo(() => {
208
208
  const renderSliceItem = useCallback(({ item, index }) => {
209
209
  const isRecentlyUpdated = item.updatedAt > 0 && Date.now() - item.updatedAt < 5000;
210
210
  return (<AnimatedEntrance index={index} distance={8}>
211
- <TouchableScale onPress={() => setSelectedReduxSlice(item.name)} style={[
211
+ <TouchableScale onPress={() => {
212
+ setSelectedReduxSlice(item.name);
213
+ }} style={[
212
214
  reduxTabStyles.card,
213
215
  isRecentlyUpdated && reduxTabStyles.cardRecentlyUpdated,
214
216
  ]}>
@@ -454,34 +456,12 @@ const ReduxTab = React.memo(() => {
454
456
  </View>
455
457
 
456
458
 
457
- <FlatList ref={listRef} data={filteredSlices} keyExtractor={item => item.id} renderItem={renderSliceItem} initialNumToRender={12} maxToRenderPerBatch={8} windowSize={5} removeClippedSubviews={true} renderToHardwareTextureAndroid={true} ListEmptyComponent={<EmptyState isSearch={reduxSearch.trim().length > 0} searchQuery={reduxSearch} onClearSearch={() => setReduxSearch('')} customTitle={reduxSearch.trim().length > 0 ? 'No Matching Slices' : 'No Redux State Detected'} customSub={reduxSearch.trim().length > 0
459
+ <FlatList ref={listRef} data={filteredSlices} keyExtractor={item => item.id} renderItem={renderSliceItem} initialNumToRender={12} maxToRenderPerBatch={8} windowSize={5} removeClippedSubviews={Platform.OS === 'android'} renderToHardwareTextureAndroid={true} ListEmptyComponent={<EmptyState isSearch={reduxSearch.trim().length > 0} searchQuery={reduxSearch} onClearSearch={() => setReduxSearch('')} customTitle={reduxSearch.trim().length > 0 ? 'No Matching Slices' : 'No Redux State Detected'} customSub={reduxSearch.trim().length > 0
458
460
  ? `No Redux slices match "${reduxSearch}"`
459
461
  : 'Attach the Redux store or dispatch actions to see state slices.'}/>} ListFooterComponent={filteredSlices.length > 0 ? (<EndOfListFooter count={filteredSlices.length} label="slices"/>) : null} contentContainerStyle={[
460
462
  reduxTabStyles.listContent,
461
463
  filteredSlices.length === 0 && { flexGrow: 1 },
462
464
  ]} keyboardShouldPersistTaps="handled"/>
463
-
464
- <TouchableScale onPress={() => {
465
- try {
466
- listRef.current?.scrollToOffset({
467
- offset: 0,
468
- animated: true,
469
- });
470
- }
471
- catch {
472
- try {
473
- listRef.current?.scrollToIndex({
474
- index: 0,
475
- animated: true,
476
- });
477
- }
478
- catch { }
479
- }
480
- }} hitSlop={12} style={styles.scrollTopBtn}>
481
- <View style={{ transform: [{ rotate: '180deg' }] }}>
482
- <ChevronIcon color={AppColors.white} size={18}/>
483
- </View>
484
- </TouchableScale>
485
465
  </View>);
486
466
  });
487
467
  const reduxTabStyles = StyleSheet.create({