@sentry/react-native 8.6.0 → 8.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (349) hide show
  1. package/android/build.gradle +2 -2
  2. package/android/expo-handler/build.gradle +1 -1
  3. package/android/libs/replay-stubs.jar +0 -0
  4. package/android/replay-stubs/build.gradle +1 -1
  5. package/android/src/main/java/io/sentry/react/RNSentryFrameDelayCollector.java +128 -0
  6. package/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java +48 -0
  7. package/android/src/main/java/io/sentry/react/RNSentryVersion.java +1 -1
  8. package/android/src/newarch/java/io/sentry/react/RNSentryModule.java +6 -0
  9. package/android/src/oldarch/java/io/sentry/react/RNSentryModule.java +6 -0
  10. package/dist/js/NativeLogListener.d.ts.map +1 -1
  11. package/dist/js/NativeLogListener.js.map +1 -1
  12. package/dist/js/NativeRNSentry.d.ts +1 -0
  13. package/dist/js/NativeRNSentry.d.ts.map +1 -1
  14. package/dist/js/NativeRNSentry.js.map +1 -1
  15. package/dist/js/RNSentryReplayMaskNativeComponent.d.ts.map +1 -1
  16. package/dist/js/RNSentryReplayMaskNativeComponent.js +1 -2
  17. package/dist/js/RNSentryReplayMaskNativeComponent.js.map +1 -1
  18. package/dist/js/RNSentryReplayUnmaskNativeComponent.d.ts.map +1 -1
  19. package/dist/js/RNSentryReplayUnmaskNativeComponent.js +1 -2
  20. package/dist/js/RNSentryReplayUnmaskNativeComponent.js.map +1 -1
  21. package/dist/js/breadcrumb.d.ts.map +1 -1
  22. package/dist/js/breadcrumb.js.map +1 -1
  23. package/dist/js/client.d.ts.map +1 -1
  24. package/dist/js/client.js +1 -1
  25. package/dist/js/client.js.map +1 -1
  26. package/dist/js/feedback/FeedbackButton.d.ts +2 -1
  27. package/dist/js/feedback/FeedbackButton.d.ts.map +1 -1
  28. package/dist/js/feedback/FeedbackButton.js +5 -4
  29. package/dist/js/feedback/FeedbackButton.js.map +1 -1
  30. package/dist/js/feedback/{FeedbackWidget.d.ts → FeedbackForm.d.ts} +5 -5
  31. package/dist/js/feedback/FeedbackForm.d.ts.map +1 -0
  32. package/dist/js/feedback/{FeedbackWidget.js → FeedbackForm.js} +26 -24
  33. package/dist/js/feedback/FeedbackForm.js.map +1 -0
  34. package/dist/js/feedback/FeedbackForm.styles.d.ts +11 -0
  35. package/dist/js/feedback/FeedbackForm.styles.d.ts.map +1 -0
  36. package/dist/js/feedback/{FeedbackWidget.styles.js → FeedbackForm.styles.js} +1 -1
  37. package/dist/js/feedback/FeedbackForm.styles.js.map +1 -0
  38. package/dist/js/feedback/{FeedbackWidget.theme.d.ts → FeedbackForm.theme.d.ts} +7 -5
  39. package/dist/js/feedback/FeedbackForm.theme.d.ts.map +1 -0
  40. package/dist/js/feedback/{FeedbackWidget.theme.js → FeedbackForm.theme.js} +1 -1
  41. package/dist/js/feedback/FeedbackForm.theme.js.map +1 -0
  42. package/{ts3.8/dist/js/feedback/FeedbackWidget.types.d.ts → dist/js/feedback/FeedbackForm.types.d.ts} +305 -299
  43. package/dist/js/feedback/FeedbackForm.types.d.ts.map +1 -0
  44. package/dist/js/feedback/FeedbackForm.types.js +2 -0
  45. package/dist/js/feedback/FeedbackForm.types.js.map +1 -0
  46. package/dist/js/feedback/{FeedbackWidgetManager.d.ts → FeedbackFormManager.d.ts} +12 -4
  47. package/dist/js/feedback/FeedbackFormManager.d.ts.map +1 -0
  48. package/dist/js/feedback/{FeedbackWidgetManager.js → FeedbackFormManager.js} +22 -13
  49. package/dist/js/feedback/FeedbackFormManager.js.map +1 -0
  50. package/dist/js/feedback/{FeedbackWidgetProvider.d.ts → FeedbackFormProvider.d.ts} +10 -10
  51. package/dist/js/feedback/FeedbackFormProvider.d.ts.map +1 -0
  52. package/dist/js/feedback/{FeedbackWidgetProvider.js → FeedbackFormProvider.js} +18 -15
  53. package/dist/js/feedback/FeedbackFormProvider.js.map +1 -0
  54. package/dist/js/feedback/ScreenshotButton.d.ts +1 -1
  55. package/dist/js/feedback/ScreenshotButton.d.ts.map +1 -1
  56. package/dist/js/feedback/ScreenshotButton.js +6 -5
  57. package/dist/js/feedback/ScreenshotButton.js.map +1 -1
  58. package/dist/js/feedback/ShakeToReportBug.d.ts.map +1 -1
  59. package/dist/js/feedback/ShakeToReportBug.js.map +1 -1
  60. package/dist/js/feedback/defaults.d.ts +2 -2
  61. package/dist/js/feedback/defaults.d.ts.map +1 -1
  62. package/dist/js/feedback/defaults.js.map +1 -1
  63. package/dist/js/feedback/integration.d.ts +11 -11
  64. package/dist/js/feedback/integration.d.ts.map +1 -1
  65. package/dist/js/feedback/integration.js.map +1 -1
  66. package/dist/js/feedback/lazy.d.ts +5 -0
  67. package/dist/js/feedback/lazy.d.ts.map +1 -1
  68. package/dist/js/feedback/lazy.js +12 -0
  69. package/dist/js/feedback/lazy.js.map +1 -1
  70. package/dist/js/feedback/utils.d.ts.map +1 -1
  71. package/dist/js/feedback/utils.js +1 -0
  72. package/dist/js/feedback/utils.js.map +1 -1
  73. package/dist/js/index.d.ts +12 -3
  74. package/dist/js/index.d.ts.map +1 -1
  75. package/dist/js/index.js +12 -3
  76. package/dist/js/index.js.map +1 -1
  77. package/dist/js/integrations/appRegistry.d.ts.map +1 -1
  78. package/dist/js/integrations/appRegistry.js.map +1 -1
  79. package/dist/js/integrations/breadcrumbs.d.ts.map +1 -1
  80. package/dist/js/integrations/breadcrumbs.js +1 -1
  81. package/dist/js/integrations/breadcrumbs.js.map +1 -1
  82. package/dist/js/integrations/debugsymbolicator.d.ts.map +1 -1
  83. package/dist/js/integrations/debugsymbolicator.js +1 -2
  84. package/dist/js/integrations/debugsymbolicator.js.map +1 -1
  85. package/dist/js/integrations/debugsymbolicatorutils.d.ts.map +1 -1
  86. package/dist/js/integrations/debugsymbolicatorutils.js.map +1 -1
  87. package/dist/js/integrations/default.d.ts.map +1 -1
  88. package/dist/js/integrations/default.js +0 -1
  89. package/dist/js/integrations/default.js.map +1 -1
  90. package/dist/js/integrations/devicecontext.d.ts.map +1 -1
  91. package/dist/js/integrations/devicecontext.js.map +1 -1
  92. package/dist/js/integrations/expoconstants.d.ts.map +1 -1
  93. package/dist/js/integrations/expoconstants.js.map +1 -1
  94. package/dist/js/integrations/expocontext.d.ts.map +1 -1
  95. package/dist/js/integrations/expocontext.js.map +1 -1
  96. package/dist/js/integrations/expoupdateslistener.d.ts.map +1 -1
  97. package/dist/js/integrations/expoupdateslistener.js +0 -1
  98. package/dist/js/integrations/expoupdateslistener.js.map +1 -1
  99. package/dist/js/integrations/graphql.d.ts.map +1 -1
  100. package/dist/js/integrations/graphql.js.map +1 -1
  101. package/dist/js/integrations/logEnricherIntegration.d.ts.map +1 -1
  102. package/dist/js/integrations/logEnricherIntegration.js.map +1 -1
  103. package/dist/js/integrations/modulesloader.d.ts.map +1 -1
  104. package/dist/js/integrations/modulesloader.js.map +1 -1
  105. package/dist/js/integrations/nativelinkederrors.d.ts.map +1 -1
  106. package/dist/js/integrations/nativelinkederrors.js +1 -1
  107. package/dist/js/integrations/nativelinkederrors.js.map +1 -1
  108. package/dist/js/integrations/primitiveTagIntegration.d.ts.map +1 -1
  109. package/dist/js/integrations/primitiveTagIntegration.js.map +1 -1
  110. package/dist/js/integrations/reactnativeerrorhandlers.d.ts.map +1 -1
  111. package/dist/js/integrations/reactnativeerrorhandlers.js +2 -1
  112. package/dist/js/integrations/reactnativeerrorhandlers.js.map +1 -1
  113. package/dist/js/integrations/reactnativeerrorhandlersutils.d.ts.map +1 -1
  114. package/dist/js/integrations/reactnativeerrorhandlersutils.js +0 -5
  115. package/dist/js/integrations/reactnativeerrorhandlersutils.js.map +1 -1
  116. package/dist/js/integrations/reactnativeinfo.d.ts.map +1 -1
  117. package/dist/js/integrations/reactnativeinfo.js.map +1 -1
  118. package/dist/js/integrations/release.d.ts.map +1 -1
  119. package/dist/js/integrations/release.js.map +1 -1
  120. package/dist/js/integrations/rewriteframes.d.ts.map +1 -1
  121. package/dist/js/integrations/rewriteframes.js.map +1 -1
  122. package/dist/js/integrations/screenshot.d.ts.map +1 -1
  123. package/dist/js/integrations/screenshot.js.map +1 -1
  124. package/dist/js/integrations/sdkinfo.d.ts.map +1 -1
  125. package/dist/js/integrations/sdkinfo.js.map +1 -1
  126. package/dist/js/integrations/spotlight.d.ts.map +1 -1
  127. package/dist/js/integrations/spotlight.js.map +1 -1
  128. package/dist/js/integrations/supabase.d.ts.map +1 -1
  129. package/dist/js/integrations/supabase.js.map +1 -1
  130. package/dist/js/integrations/viewhierarchy.d.ts.map +1 -1
  131. package/dist/js/integrations/viewhierarchy.js.map +1 -1
  132. package/dist/js/options.d.ts.map +1 -1
  133. package/dist/js/options.js.map +1 -1
  134. package/dist/js/playground/examples.d.ts.map +1 -1
  135. package/dist/js/playground/examples.js.map +1 -1
  136. package/dist/js/playground/modal.d.ts.map +1 -1
  137. package/dist/js/playground/modal.js +4 -102
  138. package/dist/js/playground/modal.js.map +1 -1
  139. package/dist/js/playground/modal.styles.d.ts +100 -0
  140. package/dist/js/playground/modal.styles.d.ts.map +1 -0
  141. package/dist/js/playground/modal.styles.js +98 -0
  142. package/dist/js/playground/modal.styles.js.map +1 -0
  143. package/dist/js/profiling/cache.js +2 -2
  144. package/dist/js/profiling/cache.js.map +1 -1
  145. package/dist/js/profiling/convertHermesProfile.d.ts.map +1 -1
  146. package/dist/js/profiling/convertHermesProfile.js.map +1 -1
  147. package/dist/js/profiling/debugid.d.ts.map +1 -1
  148. package/dist/js/profiling/debugid.js.map +1 -1
  149. package/dist/js/profiling/hermes.d.ts.map +1 -1
  150. package/dist/js/profiling/hermes.js.map +1 -1
  151. package/dist/js/profiling/integration.d.ts.map +1 -1
  152. package/dist/js/profiling/integration.js.map +1 -1
  153. package/dist/js/profiling/types.d.ts.map +1 -1
  154. package/dist/js/profiling/types.js.map +1 -1
  155. package/dist/js/profiling/utils.d.ts.map +1 -1
  156. package/dist/js/profiling/utils.js +1 -1
  157. package/dist/js/profiling/utils.js.map +1 -1
  158. package/dist/js/replay/CustomMask.d.ts +1 -1
  159. package/dist/js/replay/CustomMask.d.ts.map +1 -1
  160. package/dist/js/replay/CustomMask.js +1 -1
  161. package/dist/js/replay/CustomMask.js.map +1 -1
  162. package/dist/js/replay/CustomMask.web.d.ts +1 -1
  163. package/dist/js/replay/CustomMask.web.d.ts.map +1 -1
  164. package/dist/js/replay/CustomMask.web.js +2 -2
  165. package/dist/js/replay/CustomMask.web.js.map +1 -1
  166. package/dist/js/replay/browserReplay.d.ts.map +1 -1
  167. package/dist/js/replay/browserReplay.js +0 -2
  168. package/dist/js/replay/browserReplay.js.map +1 -1
  169. package/dist/js/replay/mobilereplay.d.ts.map +1 -1
  170. package/dist/js/replay/mobilereplay.js.map +1 -1
  171. package/dist/js/replay/xhrUtils.d.ts.map +1 -1
  172. package/dist/js/replay/xhrUtils.js.map +1 -1
  173. package/dist/js/scopeSync.d.ts.map +1 -1
  174. package/dist/js/scopeSync.js +1 -1
  175. package/dist/js/scopeSync.js.map +1 -1
  176. package/dist/js/sdk.d.ts +21 -0
  177. package/dist/js/sdk.d.ts.map +1 -1
  178. package/dist/js/sdk.js +38 -16
  179. package/dist/js/sdk.js.map +1 -1
  180. package/dist/js/tools/ModulesCollector.js +1 -1
  181. package/dist/js/tools/ModulesCollector.js.map +1 -1
  182. package/dist/js/tools/collectModules.js +0 -1
  183. package/dist/js/tools/collectModules.js.map +1 -1
  184. package/dist/js/tools/easBuildHooks.d.ts.map +1 -1
  185. package/dist/js/tools/easBuildHooks.js.map +1 -1
  186. package/dist/js/tools/metroMiddleware.d.ts.map +1 -1
  187. package/dist/js/tools/metroMiddleware.js.map +1 -1
  188. package/dist/js/tools/metroconfig.d.ts.map +1 -1
  189. package/dist/js/tools/metroconfig.js +4 -5
  190. package/dist/js/tools/metroconfig.js.map +1 -1
  191. package/dist/js/tools/sentryBabelTransformerUtils.d.ts.map +1 -1
  192. package/dist/js/tools/sentryBabelTransformerUtils.js +2 -3
  193. package/dist/js/tools/sentryBabelTransformerUtils.js.map +1 -1
  194. package/dist/js/tools/sentryMetroSerializer.d.ts.map +1 -1
  195. package/dist/js/tools/sentryMetroSerializer.js +4 -5
  196. package/dist/js/tools/sentryMetroSerializer.js.map +1 -1
  197. package/dist/js/tools/sentryOptionsSerializer.d.ts.map +1 -1
  198. package/dist/js/tools/sentryOptionsSerializer.js +2 -3
  199. package/dist/js/tools/sentryOptionsSerializer.js.map +1 -1
  200. package/dist/js/tools/sentryReleaseInjector.d.ts.map +1 -1
  201. package/dist/js/tools/sentryReleaseInjector.js.map +1 -1
  202. package/dist/js/tools/utils.d.ts.map +1 -1
  203. package/dist/js/tools/utils.js +0 -3
  204. package/dist/js/tools/utils.js.map +1 -1
  205. package/dist/js/tools/vendor/metro/utils.d.ts.map +1 -1
  206. package/dist/js/tools/vendor/metro/utils.js +5 -5
  207. package/dist/js/tools/vendor/metro/utils.js.map +1 -1
  208. package/dist/js/touchevents.d.ts.map +1 -1
  209. package/dist/js/touchevents.js +19 -21
  210. package/dist/js/touchevents.js.map +1 -1
  211. package/dist/js/tracing/expoImage.d.ts.map +1 -1
  212. package/dist/js/tracing/expoImage.js +1 -1
  213. package/dist/js/tracing/expoImage.js.map +1 -1
  214. package/dist/js/tracing/expoRouter.d.ts.map +1 -1
  215. package/dist/js/tracing/expoRouter.js.map +1 -1
  216. package/dist/js/tracing/gesturetracing.d.ts.map +1 -1
  217. package/dist/js/tracing/gesturetracing.js.map +1 -1
  218. package/dist/js/tracing/integrations/appStart.d.ts +18 -0
  219. package/dist/js/tracing/integrations/appStart.d.ts.map +1 -1
  220. package/dist/js/tracing/integrations/appStart.js +141 -6
  221. package/dist/js/tracing/integrations/appStart.js.map +1 -1
  222. package/dist/js/tracing/integrations/nativeFrames.d.ts.map +1 -1
  223. package/dist/js/tracing/integrations/nativeFrames.js +43 -0
  224. package/dist/js/tracing/integrations/nativeFrames.js.map +1 -1
  225. package/dist/js/tracing/integrations/stalltracking.d.ts.map +1 -1
  226. package/dist/js/tracing/integrations/stalltracking.js +0 -1
  227. package/dist/js/tracing/integrations/stalltracking.js.map +1 -1
  228. package/dist/js/tracing/integrations/timeToDisplayIntegration.d.ts.map +1 -1
  229. package/dist/js/tracing/integrations/timeToDisplayIntegration.js +1 -1
  230. package/dist/js/tracing/integrations/timeToDisplayIntegration.js.map +1 -1
  231. package/dist/js/tracing/integrations/userInteraction.d.ts.map +1 -1
  232. package/dist/js/tracing/integrations/userInteraction.js.map +1 -1
  233. package/dist/js/tracing/onSpanEndUtils.d.ts.map +1 -1
  234. package/dist/js/tracing/onSpanEndUtils.js +23 -1
  235. package/dist/js/tracing/onSpanEndUtils.js.map +1 -1
  236. package/dist/js/tracing/reactnativenavigation.d.ts.map +1 -1
  237. package/dist/js/tracing/reactnativenavigation.js.map +1 -1
  238. package/dist/js/tracing/reactnativeprofiler.d.ts.map +1 -1
  239. package/dist/js/tracing/reactnativeprofiler.js +2 -2
  240. package/dist/js/tracing/reactnativeprofiler.js.map +1 -1
  241. package/dist/js/tracing/reactnativetracing.d.ts.map +1 -1
  242. package/dist/js/tracing/reactnativetracing.js +0 -1
  243. package/dist/js/tracing/reactnativetracing.js.map +1 -1
  244. package/dist/js/tracing/reactnavigation.d.ts.map +1 -1
  245. package/dist/js/tracing/reactnavigation.js +2 -2
  246. package/dist/js/tracing/reactnavigation.js.map +1 -1
  247. package/dist/js/tracing/span.d.ts.map +1 -1
  248. package/dist/js/tracing/span.js +1 -1
  249. package/dist/js/tracing/span.js.map +1 -1
  250. package/dist/js/tracing/timetodisplay.d.ts.map +1 -1
  251. package/dist/js/tracing/timetodisplay.js +42 -19
  252. package/dist/js/tracing/timetodisplay.js.map +1 -1
  253. package/dist/js/tracing/timetodisplaynative.d.ts +1 -1
  254. package/dist/js/tracing/timetodisplaynative.d.ts.map +1 -1
  255. package/dist/js/tracing/timetodisplaynative.js +5 -4
  256. package/dist/js/tracing/timetodisplaynative.js.map +1 -1
  257. package/dist/js/tracing/types.js.map +1 -1
  258. package/dist/js/tracing/utils.d.ts.map +1 -1
  259. package/dist/js/tracing/utils.js.map +1 -1
  260. package/dist/js/transports/native.d.ts.map +1 -1
  261. package/dist/js/transports/native.js.map +1 -1
  262. package/dist/js/utils/envelope.d.ts.map +1 -1
  263. package/dist/js/utils/envelope.js.map +1 -1
  264. package/dist/js/utils/environment.d.ts.map +1 -1
  265. package/dist/js/utils/environment.js.map +1 -1
  266. package/dist/js/utils/expomodules.d.ts.map +1 -1
  267. package/dist/js/utils/expomodules.js.map +1 -1
  268. package/dist/js/utils/fill.js +1 -1
  269. package/dist/js/utils/fill.js.map +1 -1
  270. package/dist/js/utils/normalize.js +2 -2
  271. package/dist/js/utils/normalize.js.map +1 -1
  272. package/dist/js/utils/rnlibraries.d.ts.map +1 -1
  273. package/dist/js/utils/rnlibraries.js +1 -7
  274. package/dist/js/utils/rnlibraries.js.map +1 -1
  275. package/dist/js/utils/safe.d.ts.map +1 -1
  276. package/dist/js/utils/safe.js.map +1 -1
  277. package/dist/js/utils/span.d.ts.map +1 -1
  278. package/dist/js/utils/span.js.map +1 -1
  279. package/dist/js/utils/worldwide.d.ts.map +1 -1
  280. package/dist/js/utils/worldwide.js.map +1 -1
  281. package/dist/js/vendor/base64-js/fromByteArray.js +1 -1
  282. package/dist/js/vendor/base64-js/fromByteArray.js.map +1 -1
  283. package/dist/js/vendor/buffer/utf8ToBytes.js +1 -1
  284. package/dist/js/vendor/buffer/utf8ToBytes.js.map +1 -1
  285. package/dist/js/vendor/react-native/index.d.ts.map +1 -1
  286. package/dist/js/vendor/react-native/index.js.map +1 -1
  287. package/dist/js/version.d.ts +1 -1
  288. package/dist/js/version.js +1 -1
  289. package/dist/js/version.js.map +1 -1
  290. package/dist/js/wrapper.d.ts +1 -0
  291. package/dist/js/wrapper.d.ts.map +1 -1
  292. package/dist/js/wrapper.js +16 -4
  293. package/dist/js/wrapper.js.map +1 -1
  294. package/ios/RNSentry.mm +18 -1
  295. package/ios/RNSentryReplay.mm +1 -1
  296. package/ios/RNSentrySDK.m +1 -1
  297. package/ios/RNSentryTimeToDisplay.m +48 -32
  298. package/ios/RNSentryVersion.m +1 -1
  299. package/ios/SentryScreenFramesWrapper.h +2 -0
  300. package/ios/SentryScreenFramesWrapper.m +35 -0
  301. package/package.json +17 -21
  302. package/plugin/build/logger.js +1 -1
  303. package/plugin/build/utils.js +2 -0
  304. package/plugin/build/withSentry.js +1 -2
  305. package/plugin/build/withSentryAndroid.js +2 -0
  306. package/plugin/build/withSentryAndroidGradlePlugin.d.ts +1 -1
  307. package/plugin/build/withSentryAndroidGradlePlugin.js +1 -1
  308. package/plugin/build/withSentryIOS.js +1 -3
  309. package/scripts/eas-build-hook.js +0 -2
  310. package/scripts/expo-upload-sourcemaps.js +0 -1
  311. package/src/js/NativeRNSentry.ts +3 -0
  312. package/src/js/RNSentryReplayMaskNativeComponent.ts +2 -3
  313. package/src/js/RNSentryReplayUnmaskNativeComponent.ts +2 -3
  314. package/ts3.8/dist/js/NativeRNSentry.d.ts +1 -0
  315. package/ts3.8/dist/js/feedback/FeedbackButton.d.ts +2 -1
  316. package/ts3.8/dist/js/feedback/{FeedbackWidget.d.ts → FeedbackForm.d.ts} +5 -5
  317. package/ts3.8/dist/js/feedback/FeedbackForm.styles.d.ts +11 -0
  318. package/ts3.8/dist/js/feedback/{FeedbackWidget.theme.d.ts → FeedbackForm.theme.d.ts} +7 -5
  319. package/{dist/js/feedback/FeedbackWidget.types.d.ts → ts3.8/dist/js/feedback/FeedbackForm.types.d.ts} +305 -299
  320. package/ts3.8/dist/js/feedback/{FeedbackWidgetManager.d.ts → FeedbackFormManager.d.ts} +12 -4
  321. package/ts3.8/dist/js/feedback/{FeedbackWidgetProvider.d.ts → FeedbackFormProvider.d.ts} +10 -10
  322. package/ts3.8/dist/js/feedback/ScreenshotButton.d.ts +1 -1
  323. package/ts3.8/dist/js/feedback/defaults.d.ts +2 -2
  324. package/ts3.8/dist/js/feedback/integration.d.ts +11 -11
  325. package/ts3.8/dist/js/feedback/lazy.d.ts +5 -0
  326. package/ts3.8/dist/js/index.d.ts +12 -3
  327. package/ts3.8/dist/js/playground/modal.styles.d.ts +100 -0
  328. package/ts3.8/dist/js/replay/CustomMask.d.ts +1 -1
  329. package/ts3.8/dist/js/replay/CustomMask.web.d.ts +1 -1
  330. package/ts3.8/dist/js/sdk.d.ts +21 -0
  331. package/ts3.8/dist/js/tracing/integrations/appStart.d.ts +18 -0
  332. package/ts3.8/dist/js/tracing/timetodisplaynative.d.ts +1 -1
  333. package/ts3.8/dist/js/version.d.ts +1 -1
  334. package/ts3.8/dist/js/wrapper.d.ts +1 -0
  335. package/dist/js/feedback/FeedbackWidget.d.ts.map +0 -1
  336. package/dist/js/feedback/FeedbackWidget.js.map +0 -1
  337. package/dist/js/feedback/FeedbackWidget.styles.d.ts +0 -11
  338. package/dist/js/feedback/FeedbackWidget.styles.d.ts.map +0 -1
  339. package/dist/js/feedback/FeedbackWidget.styles.js.map +0 -1
  340. package/dist/js/feedback/FeedbackWidget.theme.d.ts.map +0 -1
  341. package/dist/js/feedback/FeedbackWidget.theme.js.map +0 -1
  342. package/dist/js/feedback/FeedbackWidget.types.d.ts.map +0 -1
  343. package/dist/js/feedback/FeedbackWidget.types.js +0 -2
  344. package/dist/js/feedback/FeedbackWidget.types.js.map +0 -1
  345. package/dist/js/feedback/FeedbackWidgetManager.d.ts.map +0 -1
  346. package/dist/js/feedback/FeedbackWidgetManager.js.map +0 -1
  347. package/dist/js/feedback/FeedbackWidgetProvider.d.ts.map +0 -1
  348. package/dist/js/feedback/FeedbackWidgetProvider.js.map +0 -1
  349. package/ts3.8/dist/js/feedback/FeedbackWidget.styles.d.ts +0 -11
@@ -15,14 +15,16 @@ declare abstract class FeedbackManager {
15
15
  static isFormVisible(): boolean;
16
16
  }
17
17
  /**
18
- * Provides functionality to show and hide the feedback widget.
18
+ * Provides functionality to show and hide the feedback form.
19
19
  */
20
- export declare class FeedbackWidgetManager extends FeedbackManager {
20
+ export declare class FeedbackFormManager extends FeedbackManager {
21
21
  /**
22
22
  * Returns the name of the feedback component.
23
23
  */
24
24
  protected static get _feedbackComponentName(): string;
25
25
  }
26
+ /** @deprecated Use `FeedbackFormManager` instead. */
27
+ export declare const FeedbackWidgetManager: typeof FeedbackFormManager;
26
28
  /**
27
29
  * Provides functionality to show and hide the feedback button.
28
30
  */
@@ -41,9 +43,15 @@ export declare class ScreenshotButtonManager extends FeedbackManager {
41
43
  */
42
44
  protected static get _feedbackComponentName(): string;
43
45
  }
46
+ declare const showFeedbackForm: () => void;
47
+ declare const resetFeedbackFormManager: () => void;
48
+ /** @deprecated Use `showFeedbackForm` instead. */
44
49
  declare const showFeedbackWidget: () => void;
50
+ /** @deprecated Use `resetFeedbackFormManager` instead. */
45
51
  declare const resetFeedbackWidgetManager: () => void;
52
+ /** @deprecated `showFeedbackButton` will be removed in a future major version. */
46
53
  declare const showFeedbackButton: () => void;
54
+ /** @deprecated `hideFeedbackButton` will be removed in a future major version. */
47
55
  declare const hideFeedbackButton: () => void;
48
56
  declare const resetFeedbackButtonManager: () => void;
49
57
  declare const showScreenshotButton: () => void;
@@ -51,5 +59,5 @@ declare const hideScreenshotButton: () => void;
51
59
  declare const resetScreenshotButtonManager: () => void;
52
60
  declare const enableFeedbackOnShake: () => void;
53
61
  declare const disableFeedbackOnShake: () => void;
54
- export { showFeedbackButton, hideFeedbackButton, showFeedbackWidget, enableFeedbackOnShake, disableFeedbackOnShake, showScreenshotButton, hideScreenshotButton, resetFeedbackButtonManager, resetFeedbackWidgetManager, resetScreenshotButtonManager };
55
- //# sourceMappingURL=FeedbackWidgetManager.d.ts.map
62
+ export { showFeedbackButton, hideFeedbackButton, showFeedbackForm, showFeedbackWidget, enableFeedbackOnShake, disableFeedbackOnShake, showScreenshotButton, hideScreenshotButton, resetFeedbackButtonManager, resetFeedbackFormManager, resetFeedbackWidgetManager, resetScreenshotButtonManager, };
63
+ //# sourceMappingURL=FeedbackFormManager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackFormManager.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackFormManager.tsx"],"names":[],"mappings":"AAWA,eAAO,MAAM,yBAAyB,MAAM,CAAC;AAC7C,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAC5C,eAAO,MAAM,6BAA6B,MAAM,CAAC;AAMjD,uBAAe,eAAe;IAC5B,SAAS,CAAC,MAAM,CAAC,UAAU,UAAS;IACpC,SAAS,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAE5D,SAAS,CAAC,MAAM,KAAK,sBAAsB,IAAI,MAAM,CAEpD;WAEa,UAAU,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IAIzE;;OAEG;WACW,KAAK,IAAI,IAAI;WAKb,IAAI,IAAI,IAAI;WAaZ,IAAI,IAAI,IAAI;WAaZ,aAAa,IAAI,OAAO;CAGvC;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,eAAe;IACtD;;OAEG;IACH,SAAS,CAAC,MAAM,KAAK,sBAAsB,IAAI,MAAM,CAEpD;CACF;AAED,qDAAqD;AACrD,eAAO,MAAM,qBAAqB,4BAAsB,CAAC;AAEzD;;GAEG;AACH,qBAAa,qBAAsB,SAAQ,eAAe;IACxD;;OAEG;IACH,SAAS,CAAC,MAAM,KAAK,sBAAsB,IAAI,MAAM,CAEpD;CACF;AAED;;GAEG;AACH,qBAAa,uBAAwB,SAAQ,eAAe;IAC1D;;OAEG;IACH,SAAS,CAAC,MAAM,KAAK,sBAAsB,IAAI,MAAM,CAEpD;CACF;AAED,QAAA,MAAM,gBAAgB,QAAO,IAG5B,CAAC;AAEF,QAAA,MAAM,wBAAwB,QAAO,IAEpC,CAAC;AAEF,kDAAkD;AAClD,QAAA,MAAM,kBAAkB,QAVK,IAUc,CAAC;AAE5C,0DAA0D;AAC1D,QAAA,MAAM,0BAA0B,QARK,IAQsB,CAAC;AAE5D,kFAAkF;AAClF,QAAA,MAAM,kBAAkB,QAAO,IAG9B,CAAC;AAEF,kFAAkF;AAClF,QAAA,MAAM,kBAAkB,QAAO,IAE9B,CAAC;AAEF,QAAA,MAAM,0BAA0B,QAAO,IAEtC,CAAC;AAEF,QAAA,MAAM,oBAAoB,QAAO,IAOhC,CAAC;AAEF,QAAA,MAAM,oBAAoB,QAAO,IAEhC,CAAC;AAEF,QAAA,MAAM,4BAA4B,QAAO,IAExC,CAAC;AAIF,QAAA,MAAM,qBAAqB,QAAO,IAMjC,CAAC;AAEF,QAAA,MAAM,sBAAsB,QAAO,IAKlC,CAAC;AAEF,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,gBAAgB,EAChB,kBAAkB,EAClB,qBAAqB,EACrB,sBAAsB,EACtB,oBAAoB,EACpB,oBAAoB,EACpB,0BAA0B,EAC1B,wBAAwB,EACxB,0BAA0B,EAC1B,4BAA4B,GAC7B,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { debug } from '@sentry/core';
2
2
  import { isWeb } from '../utils/environment';
3
- import { lazyLoadAutoInjectFeedbackButtonIntegration, lazyLoadAutoInjectFeedbackIntegration, lazyLoadAutoInjectScreenshotButtonIntegration } from './lazy';
3
+ import { lazyLoadAutoInjectFeedbackButtonIntegration, lazyLoadAutoInjectFeedbackIntegration, lazyLoadAutoInjectScreenshotButtonIntegration, lazyLoadShakeToReportIntegration, } from './lazy';
4
4
  import { startShakeListener, stopShakeListener } from './ShakeToReportBug';
5
5
  export const PULL_DOWN_CLOSE_THRESHOLD = 200;
6
6
  export const SLIDE_ANIMATION_DURATION = 200;
@@ -29,7 +29,7 @@ class FeedbackManager {
29
29
  }
30
30
  else {
31
31
  // This message should be always shown otherwise it's not possible to use the widget.
32
- // eslint-disable-next-line no-console
32
+ // oxlint-disable-next-line eslint(no-console)
33
33
  console.warn(`[Sentry] ${this._feedbackComponentName} requires 'Sentry.wrap(RootComponent)' to be called before 'show${this._feedbackComponentName}()'.`);
34
34
  }
35
35
  }
@@ -40,7 +40,7 @@ class FeedbackManager {
40
40
  }
41
41
  else {
42
42
  // This message should be always shown otherwise it's not possible to use the widget.
43
- // eslint-disable-next-line no-console
43
+ // oxlint-disable-next-line eslint(no-console)
44
44
  console.warn(`[Sentry] ${this._feedbackComponentName} requires 'Sentry.wrap(RootComponent)' before interacting with the widget.`);
45
45
  }
46
46
  }
@@ -50,16 +50,18 @@ class FeedbackManager {
50
50
  }
51
51
  FeedbackManager._isVisible = false;
52
52
  /**
53
- * Provides functionality to show and hide the feedback widget.
53
+ * Provides functionality to show and hide the feedback form.
54
54
  */
55
- export class FeedbackWidgetManager extends FeedbackManager {
55
+ export class FeedbackFormManager extends FeedbackManager {
56
56
  /**
57
57
  * Returns the name of the feedback component.
58
58
  */
59
59
  static get _feedbackComponentName() {
60
- return 'FeedbackWidget';
60
+ return 'FeedbackForm';
61
61
  }
62
62
  }
63
+ /** @deprecated Use `FeedbackFormManager` instead. */
64
+ export const FeedbackWidgetManager = FeedbackFormManager;
63
65
  /**
64
66
  * Provides functionality to show and hide the feedback button.
65
67
  */
@@ -82,17 +84,23 @@ export class ScreenshotButtonManager extends FeedbackManager {
82
84
  return 'ScreenshotButton';
83
85
  }
84
86
  }
85
- const showFeedbackWidget = () => {
87
+ const showFeedbackForm = () => {
86
88
  lazyLoadAutoInjectFeedbackIntegration();
87
- FeedbackWidgetManager.show();
89
+ FeedbackFormManager.show();
88
90
  };
89
- const resetFeedbackWidgetManager = () => {
90
- FeedbackWidgetManager.reset();
91
+ const resetFeedbackFormManager = () => {
92
+ FeedbackFormManager.reset();
91
93
  };
94
+ /** @deprecated Use `showFeedbackForm` instead. */
95
+ const showFeedbackWidget = showFeedbackForm;
96
+ /** @deprecated Use `resetFeedbackFormManager` instead. */
97
+ const resetFeedbackWidgetManager = resetFeedbackFormManager;
98
+ /** @deprecated `showFeedbackButton` will be removed in a future major version. */
92
99
  const showFeedbackButton = () => {
93
100
  lazyLoadAutoInjectFeedbackButtonIntegration();
94
101
  FeedbackButtonManager.show();
95
102
  };
103
+ /** @deprecated `hideFeedbackButton` will be removed in a future major version. */
96
104
  const hideFeedbackButton = () => {
97
105
  FeedbackButtonManager.hide();
98
106
  };
@@ -116,8 +124,9 @@ const resetScreenshotButtonManager = () => {
116
124
  let _imperativeShakeListenerStarted = false;
117
125
  const enableFeedbackOnShake = () => {
118
126
  lazyLoadAutoInjectFeedbackIntegration();
127
+ lazyLoadShakeToReportIntegration();
119
128
  if (!_imperativeShakeListenerStarted) {
120
- _imperativeShakeListenerStarted = startShakeListener(showFeedbackWidget);
129
+ _imperativeShakeListenerStarted = startShakeListener(showFeedbackForm);
121
130
  }
122
131
  };
123
132
  const disableFeedbackOnShake = () => {
@@ -126,5 +135,5 @@ const disableFeedbackOnShake = () => {
126
135
  _imperativeShakeListenerStarted = false;
127
136
  }
128
137
  };
129
- export { showFeedbackButton, hideFeedbackButton, showFeedbackWidget, enableFeedbackOnShake, disableFeedbackOnShake, showScreenshotButton, hideScreenshotButton, resetFeedbackButtonManager, resetFeedbackWidgetManager, resetScreenshotButtonManager };
130
- //# sourceMappingURL=FeedbackWidgetManager.js.map
138
+ export { showFeedbackButton, hideFeedbackButton, showFeedbackForm, showFeedbackWidget, enableFeedbackOnShake, disableFeedbackOnShake, showScreenshotButton, hideScreenshotButton, resetFeedbackButtonManager, resetFeedbackFormManager, resetFeedbackWidgetManager, resetScreenshotButtonManager, };
139
+ //# sourceMappingURL=FeedbackFormManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackFormManager.js","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackFormManager.tsx"],"names":[],"mappings":"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","sourcesContent":["import { debug } from '@sentry/core';\n\nimport { isWeb } from '../utils/environment';\nimport {\n lazyLoadAutoInjectFeedbackButtonIntegration,\n lazyLoadAutoInjectFeedbackIntegration,\n lazyLoadAutoInjectScreenshotButtonIntegration,\n lazyLoadShakeToReportIntegration,\n} from './lazy';\nimport { startShakeListener, stopShakeListener } from './ShakeToReportBug';\n\nexport const PULL_DOWN_CLOSE_THRESHOLD = 200;\nexport const SLIDE_ANIMATION_DURATION = 200;\nexport const BACKGROUND_ANIMATION_DURATION = 200;\n\nconst NOOP_SET_VISIBILITY = (): void => {\n // No-op\n};\n\nabstract class FeedbackManager {\n protected static _isVisible = false;\n protected static _setVisibility: (visible: boolean) => void;\n\n protected static get _feedbackComponentName(): string {\n throw new Error('Subclasses must override feedbackComponentName');\n }\n\n public static initialize(setVisibility: (visible: boolean) => void): void {\n this._setVisibility = setVisibility;\n }\n\n /**\n * For testing purposes only.\n */\n public static reset(): void {\n this._isVisible = false;\n this._setVisibility = NOOP_SET_VISIBILITY;\n }\n\n public static show(): void {\n if (this._setVisibility !== NOOP_SET_VISIBILITY) {\n this._isVisible = true;\n this._setVisibility(true);\n } else {\n // This message should be always shown otherwise it's not possible to use the widget.\n // oxlint-disable-next-line eslint(no-console)\n console.warn(\n `[Sentry] ${this._feedbackComponentName} requires 'Sentry.wrap(RootComponent)' to be called before 'show${this._feedbackComponentName}()'.`,\n );\n }\n }\n\n public static hide(): void {\n if (this._setVisibility !== NOOP_SET_VISIBILITY) {\n this._isVisible = false;\n this._setVisibility(false);\n } else {\n // This message should be always shown otherwise it's not possible to use the widget.\n // oxlint-disable-next-line eslint(no-console)\n console.warn(\n `[Sentry] ${this._feedbackComponentName} requires 'Sentry.wrap(RootComponent)' before interacting with the widget.`,\n );\n }\n }\n\n public static isFormVisible(): boolean {\n return this._isVisible;\n }\n}\n\n/**\n * Provides functionality to show and hide the feedback form.\n */\nexport class FeedbackFormManager extends FeedbackManager {\n /**\n * Returns the name of the feedback component.\n */\n protected static get _feedbackComponentName(): string {\n return 'FeedbackForm';\n }\n}\n\n/** @deprecated Use `FeedbackFormManager` instead. */\nexport const FeedbackWidgetManager = FeedbackFormManager;\n\n/**\n * Provides functionality to show and hide the feedback button.\n */\nexport class FeedbackButtonManager extends FeedbackManager {\n /**\n * Returns the name of the feedback component.\n */\n protected static get _feedbackComponentName(): string {\n return 'FeedbackButton';\n }\n}\n\n/**\n * Provides functionality to show and hide the screenshot button.\n */\nexport class ScreenshotButtonManager extends FeedbackManager {\n /**\n * Returns the name of the feedback component.\n */\n protected static get _feedbackComponentName(): string {\n return 'ScreenshotButton';\n }\n}\n\nconst showFeedbackForm = (): void => {\n lazyLoadAutoInjectFeedbackIntegration();\n FeedbackFormManager.show();\n};\n\nconst resetFeedbackFormManager = (): void => {\n FeedbackFormManager.reset();\n};\n\n/** @deprecated Use `showFeedbackForm` instead. */\nconst showFeedbackWidget = showFeedbackForm;\n\n/** @deprecated Use `resetFeedbackFormManager` instead. */\nconst resetFeedbackWidgetManager = resetFeedbackFormManager;\n\n/** @deprecated `showFeedbackButton` will be removed in a future major version. */\nconst showFeedbackButton = (): void => {\n lazyLoadAutoInjectFeedbackButtonIntegration();\n FeedbackButtonManager.show();\n};\n\n/** @deprecated `hideFeedbackButton` will be removed in a future major version. */\nconst hideFeedbackButton = (): void => {\n FeedbackButtonManager.hide();\n};\n\nconst resetFeedbackButtonManager = (): void => {\n FeedbackButtonManager.reset();\n};\n\nconst showScreenshotButton = (): void => {\n if (isWeb()) {\n debug.warn('ScreenshotButton is not supported on Web.');\n return;\n }\n lazyLoadAutoInjectScreenshotButtonIntegration();\n ScreenshotButtonManager.show();\n};\n\nconst hideScreenshotButton = (): void => {\n ScreenshotButtonManager.hide();\n};\n\nconst resetScreenshotButtonManager = (): void => {\n ScreenshotButtonManager.reset();\n};\n\nlet _imperativeShakeListenerStarted = false;\n\nconst enableFeedbackOnShake = (): void => {\n lazyLoadAutoInjectFeedbackIntegration();\n lazyLoadShakeToReportIntegration();\n if (!_imperativeShakeListenerStarted) {\n _imperativeShakeListenerStarted = startShakeListener(showFeedbackForm);\n }\n};\n\nconst disableFeedbackOnShake = (): void => {\n if (_imperativeShakeListenerStarted) {\n stopShakeListener();\n _imperativeShakeListenerStarted = false;\n }\n};\n\nexport {\n showFeedbackButton,\n hideFeedbackButton,\n showFeedbackForm,\n showFeedbackWidget,\n enableFeedbackOnShake,\n disableFeedbackOnShake,\n showScreenshotButton,\n hideScreenshotButton,\n resetFeedbackButtonManager,\n resetFeedbackFormManager,\n resetFeedbackWidgetManager,\n resetScreenshotButtonManager,\n};\n"]}
@@ -1,11 +1,11 @@
1
1
  import * as React from 'react';
2
2
  import { Animated } from 'react-native';
3
- import type { FeedbackWidgetStyles } from './FeedbackWidget.types';
4
- export interface FeedbackWidgetProviderProps {
3
+ import type { FeedbackFormStyles } from './FeedbackForm.types';
4
+ export interface FeedbackFormProviderProps {
5
5
  children: React.ReactNode;
6
- styles?: FeedbackWidgetStyles;
6
+ styles?: FeedbackFormStyles;
7
7
  }
8
- export interface FeedbackWidgetProviderState {
8
+ export interface FeedbackFormProviderState {
9
9
  isButtonVisible: boolean;
10
10
  isScreenshotButtonVisible: boolean;
11
11
  isVisible: boolean;
@@ -14,16 +14,16 @@ export interface FeedbackWidgetProviderState {
14
14
  isScrollAtTop: boolean;
15
15
  }
16
16
  /**
17
- * FeedbackWidgetProvider is a component that wraps the feedback widget and provides
17
+ * FeedbackFormProvider is a component that wraps the feedback widget and provides
18
18
  * functionality to show and hide the widget. It also manages the visibility of the
19
19
  * feedback button and screenshot button.
20
20
  */
21
- export declare class FeedbackWidgetProvider extends React.Component<FeedbackWidgetProviderProps> {
22
- state: FeedbackWidgetProviderState;
21
+ export declare class FeedbackFormProvider extends React.Component<FeedbackFormProviderProps> {
22
+ state: FeedbackFormProviderState;
23
23
  private _themeListener;
24
24
  private _startedShakeListener;
25
25
  private _panResponder;
26
- constructor(props: FeedbackWidgetProviderProps);
26
+ constructor(props: FeedbackFormProviderProps);
27
27
  /**
28
28
  * Add a listener to the theme change event and start shake detection if configured.
29
29
  */
@@ -35,7 +35,7 @@ export declare class FeedbackWidgetProvider extends React.Component<FeedbackWidg
35
35
  /**
36
36
  * Animates the background opacity when the modal is shown.
37
37
  */
38
- componentDidUpdate(_prevProps: any, prevState: FeedbackWidgetProviderState): void;
38
+ componentDidUpdate(_prevProps: any, prevState: FeedbackFormProviderState): void;
39
39
  /**
40
40
  * Renders the feedback form modal.
41
41
  */
@@ -46,4 +46,4 @@ export declare class FeedbackWidgetProvider extends React.Component<FeedbackWidg
46
46
  private _setScreenshotButtonVisibilityFunction;
47
47
  private _handleClose;
48
48
  }
49
- //# sourceMappingURL=FeedbackWidgetProvider.d.ts.map
49
+ //# sourceMappingURL=FeedbackFormProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackFormProvider.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackFormProvider.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EACL,QAAQ,EAYT,MAAM,cAAc,CAAC;AAEtB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AA6B/D,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,kBAAkB,CAAC;CAC7B;AAED,MAAM,WAAW,yBAAyB;IACxC,eAAe,EAAE,OAAO,CAAC;IACzB,yBAAyB,EAAE,OAAO,CAAC;IACnC,SAAS,EAAE,OAAO,CAAC;IACnB,iBAAiB,EAAE,QAAQ,CAAC,KAAK,CAAC;IAClC,IAAI,EAAE,QAAQ,CAAC,KAAK,CAAC;IACrB,aAAa,EAAE,OAAO,CAAC;CACxB;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,SAAQ,KAAK,CAAC,SAAS,CAAC,yBAAyB,CAAC;IAC3E,KAAK,EAAE,yBAAyB,CAOrC;IAEF,OAAO,CAAC,cAAc,CAAsC;IAC5D,OAAO,CAAC,qBAAqB,CAAkB;IAE/C,OAAO,CAAC,aAAa,CA8BlB;gBAEgB,KAAK,EAAE,yBAAyB;IAOnD;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAWhC;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAUnC;;OAEG;IAEI,kBAAkB,CAAC,UAAU,EAAE,GAAG,EAAE,SAAS,EAAE,yBAAyB,GAAG,IAAI;IAuBtF;;OAEG;IACI,MAAM,IAAI,KAAK,CAAC,SAAS;IAwDhC,OAAO,CAAC,aAAa,CAEnB;IAEF,OAAO,CAAC,sBAAsB,CA0B5B;IAEF,OAAO,CAAC,4BAA4B,CAElC;IAEF,OAAO,CAAC,sCAAsC,CAE5C;IAEF,OAAO,CAAC,YAAY,CAElB;CACH"}
@@ -1,23 +1,24 @@
1
1
  import { debug } from '@sentry/core';
2
2
  import * as React from 'react';
3
- import { Animated, Appearance, Dimensions, Easing, Modal, PanResponder, Platform, ScrollView, View } from 'react-native';
3
+ import { Animated, Appearance, Dimensions, Easing, Modal, PanResponder, Platform, ScrollView, View, } from 'react-native';
4
4
  import { notWeb } from '../utils/environment';
5
5
  import { FeedbackButton } from './FeedbackButton';
6
- import { FeedbackWidget } from './FeedbackWidget';
7
- import { modalSheetContainer, modalWrapper, topSpacer } from './FeedbackWidget.styles';
8
- import { getTheme } from './FeedbackWidget.theme';
9
- import { BACKGROUND_ANIMATION_DURATION, FeedbackButtonManager, FeedbackWidgetManager, PULL_DOWN_CLOSE_THRESHOLD, ScreenshotButtonManager, showFeedbackWidget, SLIDE_ANIMATION_DURATION, } from './FeedbackWidgetManager';
10
- import { getFeedbackButtonOptions, getFeedbackOptions, getScreenshotButtonOptions, isShakeToReportEnabled } from './integration';
6
+ import { FeedbackForm } from './FeedbackForm';
7
+ import { modalSheetContainer, modalWrapper, topSpacer } from './FeedbackForm.styles';
8
+ import { getTheme } from './FeedbackForm.theme';
9
+ import { BACKGROUND_ANIMATION_DURATION, FeedbackButtonManager, FeedbackFormManager, PULL_DOWN_CLOSE_THRESHOLD, ScreenshotButtonManager, showFeedbackForm, SLIDE_ANIMATION_DURATION, } from './FeedbackFormManager';
10
+ import { getFeedbackButtonOptions, getFeedbackOptions, getScreenshotButtonOptions, isShakeToReportEnabled, } from './integration';
11
+ import { lazyLoadShakeToReportIntegration } from './lazy';
11
12
  import { ScreenshotButton } from './ScreenshotButton';
12
13
  import { startShakeListener, stopShakeListener } from './ShakeToReportBug';
13
14
  import { isModalSupported, isNativeDriverSupportedForColorAnimations } from './utils';
14
15
  const useNativeDriverForColorAnimations = isNativeDriverSupportedForColorAnimations();
15
16
  /**
16
- * FeedbackWidgetProvider is a component that wraps the feedback widget and provides
17
+ * FeedbackFormProvider is a component that wraps the feedback widget and provides
17
18
  * functionality to show and hide the widget. It also manages the visibility of the
18
19
  * feedback button and screenshot button.
19
20
  */
20
- export class FeedbackWidgetProvider extends React.Component {
21
+ export class FeedbackFormProvider extends React.Component {
21
22
  constructor(props) {
22
23
  super(props);
23
24
  this.state = {
@@ -99,11 +100,11 @@ export class FeedbackWidgetProvider extends React.Component {
99
100
  this.setState({ isScreenshotButtonVisible: visible });
100
101
  };
101
102
  this._handleClose = () => {
102
- FeedbackWidgetManager.hide();
103
+ FeedbackFormManager.hide();
103
104
  };
104
105
  FeedbackButtonManager.initialize(this._setButtonVisibilityFunction);
105
106
  ScreenshotButtonManager.initialize(this._setScreenshotButtonVisibilityFunction);
106
- FeedbackWidgetManager.initialize(this._setVisibilityFunction);
107
+ FeedbackFormManager.initialize(this._setVisibilityFunction);
107
108
  }
108
109
  /**
109
110
  * Add a listener to the theme change event and start shake detection if configured.
@@ -113,7 +114,8 @@ export class FeedbackWidgetProvider extends React.Component {
113
114
  this.forceUpdate();
114
115
  });
115
116
  if (isShakeToReportEnabled()) {
116
- this._startedShakeListener = startShakeListener(showFeedbackWidget);
117
+ lazyLoadShakeToReportIntegration();
118
+ this._startedShakeListener = startShakeListener(showFeedbackForm);
117
119
  }
118
120
  }
119
121
  /**
@@ -130,6 +132,7 @@ export class FeedbackWidgetProvider extends React.Component {
130
132
  /**
131
133
  * Animates the background opacity when the modal is shown.
132
134
  */
135
+ // oxlint-disable-next-line typescript-eslint(no-explicit-any)
133
136
  componentDidUpdate(_prevProps, prevState) {
134
137
  if (!prevState.isVisible && this.state.isVisible) {
135
138
  Animated.parallel([
@@ -146,7 +149,7 @@ export class FeedbackWidgetProvider extends React.Component {
146
149
  easing: Easing.in(Easing.quad),
147
150
  }),
148
151
  ]).start(() => {
149
- debug.log('FeedbackWidgetProvider componentDidUpdate');
152
+ debug.log('FeedbackFormProvider componentDidUpdate');
150
153
  });
151
154
  }
152
155
  else if (prevState.isVisible && !this.state.isVisible) {
@@ -158,7 +161,7 @@ export class FeedbackWidgetProvider extends React.Component {
158
161
  */
159
162
  render() {
160
163
  if (!isModalSupported()) {
161
- debug.error('FeedbackWidget Modal is not supported in React Native < 0.71 with Fabric renderer.');
164
+ debug.error('FeedbackForm Modal is not supported in React Native < 0.71 with Fabric renderer.');
162
165
  return React.createElement(React.Fragment, null, this.props.children);
163
166
  }
164
167
  const theme = getTheme();
@@ -178,7 +181,7 @@ export class FeedbackWidgetProvider extends React.Component {
178
181
  React.createElement(View, { style: topSpacer }),
179
182
  React.createElement(Animated.View, Object.assign({ style: [modalSheetContainer(theme), { transform: [{ translateY: this.state.panY }] }] }, this._panResponder.panHandlers),
180
183
  React.createElement(ScrollView, { bounces: false, keyboardShouldPersistTaps: "handled", automaticallyAdjustKeyboardInsets: Platform.OS === 'ios', onScroll: this._handleScroll },
181
- React.createElement(FeedbackWidget, Object.assign({}, getFeedbackOptions(), { onFormClose: this._handleClose, onFormSubmitted: this._handleClose })))))))));
184
+ React.createElement(FeedbackForm, Object.assign({}, getFeedbackOptions(), { onFormClose: this._handleClose, onFormSubmitted: this._handleClose })))))))));
182
185
  }
183
186
  }
184
- //# sourceMappingURL=FeedbackWidgetProvider.js.map
187
+ //# sourceMappingURL=FeedbackFormProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeedbackFormProvider.js","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackFormProvider.tsx"],"names":[],"mappings":"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","sourcesContent":["import { debug } from '@sentry/core';\nimport * as React from 'react';\nimport {\n Animated,\n Appearance,\n Dimensions,\n Easing,\n Modal,\n type NativeEventSubscription,\n type NativeScrollEvent,\n type NativeSyntheticEvent,\n PanResponder,\n Platform,\n ScrollView,\n View,\n} from 'react-native';\n\nimport type { FeedbackFormStyles } from './FeedbackForm.types';\n\nimport { notWeb } from '../utils/environment';\nimport { FeedbackButton } from './FeedbackButton';\nimport { FeedbackForm } from './FeedbackForm';\nimport { modalSheetContainer, modalWrapper, topSpacer } from './FeedbackForm.styles';\nimport { getTheme } from './FeedbackForm.theme';\nimport {\n BACKGROUND_ANIMATION_DURATION,\n FeedbackButtonManager,\n FeedbackFormManager,\n PULL_DOWN_CLOSE_THRESHOLD,\n ScreenshotButtonManager,\n showFeedbackForm,\n SLIDE_ANIMATION_DURATION,\n} from './FeedbackFormManager';\nimport {\n getFeedbackButtonOptions,\n getFeedbackOptions,\n getScreenshotButtonOptions,\n isShakeToReportEnabled,\n} from './integration';\nimport { lazyLoadShakeToReportIntegration } from './lazy';\nimport { ScreenshotButton } from './ScreenshotButton';\nimport { startShakeListener, stopShakeListener } from './ShakeToReportBug';\nimport { isModalSupported, isNativeDriverSupportedForColorAnimations } from './utils';\n\nconst useNativeDriverForColorAnimations = isNativeDriverSupportedForColorAnimations();\n\nexport interface FeedbackFormProviderProps {\n children: React.ReactNode;\n styles?: FeedbackFormStyles;\n}\n\nexport interface FeedbackFormProviderState {\n isButtonVisible: boolean;\n isScreenshotButtonVisible: boolean;\n isVisible: boolean;\n backgroundOpacity: Animated.Value;\n panY: Animated.Value;\n isScrollAtTop: boolean;\n}\n\n/**\n * FeedbackFormProvider is a component that wraps the feedback widget and provides\n * functionality to show and hide the widget. It also manages the visibility of the\n * feedback button and screenshot button.\n */\nexport class FeedbackFormProvider extends React.Component<FeedbackFormProviderProps> {\n public state: FeedbackFormProviderState = {\n isButtonVisible: false,\n isScreenshotButtonVisible: false,\n isVisible: false,\n backgroundOpacity: new Animated.Value(0),\n panY: new Animated.Value(Dimensions.get('screen').height),\n isScrollAtTop: true,\n };\n\n private _themeListener: NativeEventSubscription | undefined;\n private _startedShakeListener: boolean = false;\n\n private _panResponder = PanResponder.create({\n onStartShouldSetPanResponder: (_, gestureState) => {\n return notWeb() && this.state.isScrollAtTop && gestureState.dy > 0;\n },\n onMoveShouldSetPanResponder: (_, gestureState) => {\n return notWeb() && this.state.isScrollAtTop && gestureState.dy > 0;\n },\n onPanResponderMove: (_, gestureState) => {\n if (gestureState.dy > 0) {\n this.state.panY.setValue(gestureState.dy);\n }\n },\n onPanResponderRelease: (_, gestureState) => {\n if (gestureState.dy > PULL_DOWN_CLOSE_THRESHOLD) {\n // Close on swipe below a certain threshold\n Animated.timing(this.state.panY, {\n toValue: Dimensions.get('screen').height,\n duration: SLIDE_ANIMATION_DURATION,\n useNativeDriver: true,\n }).start(() => {\n this._handleClose();\n });\n } else {\n // Animate it back to the original position\n Animated.spring(this.state.panY, {\n toValue: 0,\n useNativeDriver: true,\n }).start();\n }\n },\n });\n\n public constructor(props: FeedbackFormProviderProps) {\n super(props);\n FeedbackButtonManager.initialize(this._setButtonVisibilityFunction);\n ScreenshotButtonManager.initialize(this._setScreenshotButtonVisibilityFunction);\n FeedbackFormManager.initialize(this._setVisibilityFunction);\n }\n\n /**\n * Add a listener to the theme change event and start shake detection if configured.\n */\n public componentDidMount(): void {\n this._themeListener = Appearance.addChangeListener(() => {\n this.forceUpdate();\n });\n\n if (isShakeToReportEnabled()) {\n lazyLoadShakeToReportIntegration();\n this._startedShakeListener = startShakeListener(showFeedbackForm);\n }\n }\n\n /**\n * Clean up the theme listener and stop shake detection.\n */\n public componentWillUnmount(): void {\n if (this._themeListener) {\n this._themeListener.remove();\n }\n\n if (this._startedShakeListener) {\n stopShakeListener();\n }\n }\n\n /**\n * Animates the background opacity when the modal is shown.\n */\n // oxlint-disable-next-line typescript-eslint(no-explicit-any)\n public componentDidUpdate(_prevProps: any, prevState: FeedbackFormProviderState): void {\n if (!prevState.isVisible && this.state.isVisible) {\n Animated.parallel([\n Animated.timing(this.state.backgroundOpacity, {\n toValue: 1,\n duration: BACKGROUND_ANIMATION_DURATION,\n useNativeDriver: useNativeDriverForColorAnimations,\n easing: Easing.in(Easing.quad),\n }),\n Animated.timing(this.state.panY, {\n toValue: 0,\n duration: SLIDE_ANIMATION_DURATION,\n useNativeDriver: true,\n easing: Easing.in(Easing.quad),\n }),\n ]).start(() => {\n debug.log('FeedbackFormProvider componentDidUpdate');\n });\n } else if (prevState.isVisible && !this.state.isVisible) {\n this.state.backgroundOpacity.setValue(0);\n }\n }\n\n /**\n * Renders the feedback form modal.\n */\n public render(): React.ReactNode {\n if (!isModalSupported()) {\n debug.error('FeedbackForm Modal is not supported in React Native < 0.71 with Fabric renderer.');\n return <>{this.props.children}</>;\n }\n\n const theme = getTheme();\n\n const { isButtonVisible, isScreenshotButtonVisible, isVisible, backgroundOpacity } = this.state;\n\n const backgroundColor = backgroundOpacity.interpolate({\n inputRange: [0, 1],\n outputRange: ['rgba(0, 0, 0, 0)', 'rgba(0, 0, 0, 0.9)'],\n });\n\n // Wrapping the `Modal` component in a `View` component is necessary to avoid\n // issues like https://github.com/software-mansion/react-native-reanimated/issues/6035\n return (\n <>\n {this.props.children}\n {isButtonVisible && <FeedbackButton {...getFeedbackButtonOptions()} />}\n {isScreenshotButtonVisible && <ScreenshotButton {...getScreenshotButtonOptions()} />}\n {isVisible && (\n <Animated.View style={[modalWrapper, { backgroundColor }]}>\n <Modal\n visible={isVisible}\n transparent\n animationType=\"none\"\n onRequestClose={this._handleClose}\n testID=\"feedback-form-modal\"\n >\n <View style={topSpacer} />\n <Animated.View\n style={[modalSheetContainer(theme), { transform: [{ translateY: this.state.panY }] }]}\n {...this._panResponder.panHandlers}\n >\n <ScrollView\n bounces={false}\n keyboardShouldPersistTaps=\"handled\"\n automaticallyAdjustKeyboardInsets={Platform.OS === 'ios'}\n onScroll={this._handleScroll}\n >\n <FeedbackForm\n {...getFeedbackOptions()}\n onFormClose={this._handleClose}\n onFormSubmitted={this._handleClose}\n />\n </ScrollView>\n </Animated.View>\n </Modal>\n </Animated.View>\n )}\n </>\n );\n }\n\n private _handleScroll = (event: NativeSyntheticEvent<NativeScrollEvent>): void => {\n this.setState({ isScrollAtTop: event.nativeEvent.contentOffset.y <= 0 });\n };\n\n private _setVisibilityFunction = (visible: boolean): void => {\n const updateState = (): void => {\n this.setState({ isVisible: visible });\n };\n if (!visible) {\n Animated.parallel([\n Animated.timing(this.state.panY, {\n toValue: Dimensions.get('screen').height,\n duration: SLIDE_ANIMATION_DURATION,\n useNativeDriver: true,\n easing: Easing.out(Easing.quad),\n }),\n Animated.timing(this.state.backgroundOpacity, {\n toValue: 0,\n duration: BACKGROUND_ANIMATION_DURATION,\n useNativeDriver: useNativeDriverForColorAnimations,\n easing: Easing.out(Easing.quad),\n }),\n ]).start(() => {\n // Change of the state unmount the component\n // which would cancel the animation\n updateState();\n });\n } else {\n updateState();\n }\n };\n\n private _setButtonVisibilityFunction = (visible: boolean): void => {\n this.setState({ isButtonVisible: visible });\n };\n\n private _setScreenshotButtonVisibilityFunction = (visible: boolean): void => {\n this.setState({ isScreenshotButtonVisible: visible });\n };\n\n private _handleClose = (): void => {\n FeedbackFormManager.hide();\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  import * as React from 'react';
2
2
  import type { Screenshot } from '../wrapper';
3
- import type { ScreenshotButtonProps } from './FeedbackWidget.types';
3
+ import type { ScreenshotButtonProps } from './FeedbackForm.types';
4
4
  export declare const getCapturedScreenshot: () => Screenshot | "ErrorCapturingScreenshot" | undefined;
5
5
  /**
6
6
  * @beta
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenshotButton.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/ScreenshotButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK7C,OAAO,KAAK,EAAE,qBAAqB,EAA6D,MAAM,wBAAwB,CAAC;AAoB/H,eAAO,MAAM,qBAAqB,QAAO,UAAU,GAAG,0BAA0B,GAAG,SAIlF,CAAA;AAED;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC;IAC1E,OAAO,CAAC,cAAc,CAAsC;gBAEzC,KAAK,EAAE,qBAAqB;IAK/C;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAMhC;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAMnC;;OAEG;IACI,MAAM,IAAI,KAAK,CAAC,SAAS;CAoBjC"}
1
+ {"version":3,"file":"ScreenshotButton.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/ScreenshotButton.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EACV,qBAAqB,EAGtB,MAAM,sBAAsB,CAAC;AA0B9B,eAAO,MAAM,qBAAqB,QAAO,UAAU,GAAG,0BAA0B,GAAG,SAIlF,CAAC;AAEF;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,KAAK,CAAC,SAAS,CAAC,qBAAqB,CAAC;IAC1E,OAAO,CAAC,cAAc,CAAsC;gBAEzC,KAAK,EAAE,qBAAqB;IAK/C;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAMhC;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAMnC;;OAEG;IACI,MAAM,IAAI,KAAK,CAAC,SAAS;CAsBjC"}
@@ -11,15 +11,16 @@ import * as React from 'react';
11
11
  import { Appearance, Image, Text, TouchableOpacity } from 'react-native';
12
12
  import { NATIVE } from '../wrapper';
13
13
  import { defaultScreenshotButtonConfiguration } from './defaults';
14
- import { defaultScreenshotButtonStyles } from './FeedbackWidget.styles';
15
- import { getTheme } from './FeedbackWidget.theme';
16
- import { hideScreenshotButton, showFeedbackWidget } from './FeedbackWidgetManager';
14
+ import { defaultScreenshotButtonStyles } from './FeedbackForm.styles';
15
+ import { getTheme } from './FeedbackForm.theme';
16
+ import { hideScreenshotButton, showFeedbackForm } from './FeedbackFormManager';
17
17
  import { screenshotIcon } from './icons';
18
18
  import { lazyLoadFeedbackIntegration } from './lazy';
19
19
  let capturedScreenshot;
20
20
  const takeScreenshot = () => __awaiter(void 0, void 0, void 0, function* () {
21
21
  hideScreenshotButton();
22
22
  setTimeout(() => __awaiter(void 0, void 0, void 0, function* () {
23
+ // Delay capture to allow the button to hide
23
24
  const screenshots = yield NATIVE.captureScreenshot();
24
25
  if (screenshots && screenshots.length > 0) {
25
26
  capturedScreenshot = screenshots[0];
@@ -27,7 +28,7 @@ const takeScreenshot = () => __awaiter(void 0, void 0, void 0, function* () {
27
28
  else {
28
29
  capturedScreenshot = 'ErrorCapturingScreenshot';
29
30
  }
30
- showFeedbackWidget();
31
+ showFeedbackForm();
31
32
  }), 100);
32
33
  });
33
34
  export const getCapturedScreenshot = () => {
@@ -74,7 +75,7 @@ export class ScreenshotButton extends React.Component {
74
75
  };
75
76
  return (React.createElement(TouchableOpacity, { style: styles.triggerButton, onPress: takeScreenshot, accessibilityLabel: text.triggerAriaLabel },
76
77
  React.createElement(Image, { source: { uri: screenshotIcon }, style: styles.triggerIcon }),
77
- React.createElement(Text, { style: styles.triggerText, testID: 'sentry-feedback-screenshot-button' }, text.triggerLabel)));
78
+ React.createElement(Text, { style: styles.triggerText, testID: "sentry-feedback-screenshot-button" }, text.triggerLabel)));
78
79
  }
79
80
  }
80
81
  //# sourceMappingURL=ScreenshotButton.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ScreenshotButton.js","sourceRoot":"","sources":["../../../src/js/feedback/ScreenshotButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport type { NativeEventSubscription} from 'react-native';\nimport { Appearance, Image, Text, TouchableOpacity } from 'react-native';\nimport type { Screenshot } from '../wrapper';\nimport { NATIVE } from '../wrapper';\nimport { defaultScreenshotButtonConfiguration } from './defaults';\nimport { defaultScreenshotButtonStyles } from './FeedbackWidget.styles';\nimport { getTheme } from './FeedbackWidget.theme';\nimport type { ScreenshotButtonProps, ScreenshotButtonStyles, ScreenshotButtonTextConfiguration } from './FeedbackWidget.types';\nimport { hideScreenshotButton, showFeedbackWidget } from './FeedbackWidgetManager';\nimport { screenshotIcon } from './icons';\nimport { lazyLoadFeedbackIntegration } from './lazy';\n\nlet capturedScreenshot: Screenshot | 'ErrorCapturingScreenshot' | undefined;\n\nconst takeScreenshot = async (): Promise<void> => {\n hideScreenshotButton();\n setTimeout(async () => { // Delay capture to allow the button to hide\n const screenshots: Screenshot[] | null = await NATIVE.captureScreenshot();\n if (screenshots && screenshots.length > 0) {\n capturedScreenshot = screenshots[0];\n } else {\n capturedScreenshot = 'ErrorCapturingScreenshot';\n }\n showFeedbackWidget();\n }, 100);\n};\n\nexport const getCapturedScreenshot = (): Screenshot | 'ErrorCapturingScreenshot' | undefined => {\n const screenshot = capturedScreenshot;\n capturedScreenshot = undefined;\n return screenshot;\n}\n\n/**\n * @beta\n * Implements a screenshot button that takes a screenshot.\n */\nexport class ScreenshotButton extends React.Component<ScreenshotButtonProps> {\n private _themeListener: NativeEventSubscription | undefined;\n\n public constructor(props: ScreenshotButtonProps) {\n super(props);\n lazyLoadFeedbackIntegration();\n }\n\n /**\n * Adds a listener for theme changes.\n */\n public componentDidMount(): void {\n this._themeListener = Appearance.addChangeListener(() => {\n this.forceUpdate();\n });\n }\n\n /**\n * Removes the theme listener.\n */\n public componentWillUnmount(): void {\n if (this._themeListener) {\n this._themeListener.remove();\n }\n }\n\n /**\n * Renders the screenshot button.\n */\n public render(): React.ReactNode {\n const theme = getTheme();\n const text: ScreenshotButtonTextConfiguration = { ...defaultScreenshotButtonConfiguration, ...this.props };\n const styles: ScreenshotButtonStyles = {\n triggerButton: { ...defaultScreenshotButtonStyles(theme).triggerButton, ...this.props.styles?.triggerButton },\n triggerText: { ...defaultScreenshotButtonStyles(theme).triggerText, ...this.props.styles?.triggerText },\n triggerIcon: { ...defaultScreenshotButtonStyles(theme).triggerIcon, ...this.props.styles?.triggerIcon },\n };\n\n return (\n <TouchableOpacity\n style={styles.triggerButton}\n onPress={takeScreenshot}\n accessibilityLabel={text.triggerAriaLabel}\n >\n <Image source={{ uri: screenshotIcon }} style={styles.triggerIcon}/>\n <Text style={styles.triggerText} testID='sentry-feedback-screenshot-button'>{text.triggerLabel}</Text>\n </TouchableOpacity>\n );\n }\n}\n"]}
1
+ {"version":3,"file":"ScreenshotButton.js","sourceRoot":"","sources":["../../../src/js/feedback/ScreenshotButton.tsx"],"names":[],"mappings":"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","sourcesContent":["import type { NativeEventSubscription } from 'react-native';\n\nimport * as React from 'react';\nimport { Appearance, Image, Text, TouchableOpacity } from 'react-native';\n\nimport type { Screenshot } from '../wrapper';\nimport type {\n ScreenshotButtonProps,\n ScreenshotButtonStyles,\n ScreenshotButtonTextConfiguration,\n} from './FeedbackForm.types';\n\nimport { NATIVE } from '../wrapper';\nimport { defaultScreenshotButtonConfiguration } from './defaults';\nimport { defaultScreenshotButtonStyles } from './FeedbackForm.styles';\nimport { getTheme } from './FeedbackForm.theme';\nimport { hideScreenshotButton, showFeedbackForm } from './FeedbackFormManager';\nimport { screenshotIcon } from './icons';\nimport { lazyLoadFeedbackIntegration } from './lazy';\n\nlet capturedScreenshot: Screenshot | 'ErrorCapturingScreenshot' | undefined;\n\nconst takeScreenshot = async (): Promise<void> => {\n hideScreenshotButton();\n setTimeout(async () => {\n // Delay capture to allow the button to hide\n const screenshots: Screenshot[] | null = await NATIVE.captureScreenshot();\n if (screenshots && screenshots.length > 0) {\n capturedScreenshot = screenshots[0];\n } else {\n capturedScreenshot = 'ErrorCapturingScreenshot';\n }\n showFeedbackForm();\n }, 100);\n};\n\nexport const getCapturedScreenshot = (): Screenshot | 'ErrorCapturingScreenshot' | undefined => {\n const screenshot = capturedScreenshot;\n capturedScreenshot = undefined;\n return screenshot;\n};\n\n/**\n * @beta\n * Implements a screenshot button that takes a screenshot.\n */\nexport class ScreenshotButton extends React.Component<ScreenshotButtonProps> {\n private _themeListener: NativeEventSubscription | undefined;\n\n public constructor(props: ScreenshotButtonProps) {\n super(props);\n lazyLoadFeedbackIntegration();\n }\n\n /**\n * Adds a listener for theme changes.\n */\n public componentDidMount(): void {\n this._themeListener = Appearance.addChangeListener(() => {\n this.forceUpdate();\n });\n }\n\n /**\n * Removes the theme listener.\n */\n public componentWillUnmount(): void {\n if (this._themeListener) {\n this._themeListener.remove();\n }\n }\n\n /**\n * Renders the screenshot button.\n */\n public render(): React.ReactNode {\n const theme = getTheme();\n const text: ScreenshotButtonTextConfiguration = { ...defaultScreenshotButtonConfiguration, ...this.props };\n const styles: ScreenshotButtonStyles = {\n triggerButton: { ...defaultScreenshotButtonStyles(theme).triggerButton, ...this.props.styles?.triggerButton },\n triggerText: { ...defaultScreenshotButtonStyles(theme).triggerText, ...this.props.styles?.triggerText },\n triggerIcon: { ...defaultScreenshotButtonStyles(theme).triggerIcon, ...this.props.styles?.triggerIcon },\n };\n\n return (\n <TouchableOpacity\n style={styles.triggerButton}\n onPress={takeScreenshot}\n accessibilityLabel={text.triggerAriaLabel}\n >\n <Image source={{ uri: screenshotIcon }} style={styles.triggerIcon} />\n <Text style={styles.triggerText} testID=\"sentry-feedback-screenshot-button\">\n {text.triggerLabel}\n </Text>\n </TouchableOpacity>\n );\n }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"ShakeToReportBug.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/ShakeToReportBug.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAuB,YAAY,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAIlD,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AAIrD;;;GAGG;AACH,KAAK,cAAc,GAAG,CAAC,YAAY,EAAE,YAAY,KAAK,kBAAkB,CAAC;AAIzE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,IAAI,EACnB,aAAa,GAAE,cAAsC,GACpD,OAAO,CAwCT;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAgBxC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}
1
+ {"version":3,"file":"ShakeToReportBug.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/ShakeToReportBug.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAuB,YAAY,EAAE,MAAM,cAAc,CAAC;AAGtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAKlD,eAAO,MAAM,gBAAgB,uBAAuB,CAAC;AAIrD;;;GAGG;AACH,KAAK,cAAc,GAAG,CAAC,YAAY,EAAE,YAAY,KAAK,kBAAkB,CAAC;AAIzE;;;;;;GAMG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,IAAI,EACnB,aAAa,GAAE,cAAsC,GACpD,OAAO,CAwCT;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI,IAAI,CAgBxC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,OAAO,CAE/C"}
@@ -1 +1 @@
1
- {"version":3,"file":"ShakeToReportBug.js","sourceRoot":"","sources":["../../../src/js/feedback/ShakeToReportBug.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAErC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAErD,IAAI,kBAAkB,GAA+B,IAAI,CAAC;AAQ1D,MAAM,qBAAqB,GAAmB,YAAY,CAAC,EAAE,CAAC,IAAI,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAEnG;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAmB,EACnB,gBAAgC,qBAAqB;IAErD,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,EAAE,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,iBAAiB,EAA8B,CAAC;IACrE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC7E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5C,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC9D,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,yFAAyF;QACzF,kFAAkF;QAClF,sEAAsE;QACtE,MAAM,MAAM,GAAG,YAAqD,CAAC;QACrE,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAChC,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,kBAAkB,EAAE,CAAC;YACvB,kBAAkB,CAAC,MAAM,EAAE,CAAC;YAC5B,kBAAkB,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;;IAC/B,IAAI,kBAAkB,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,kBAAkB,CAAC,MAAM,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,kBAAkB,GAAG,IAAI,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,iBAAiB,EAAwD,CAAC;YAC/F,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,qBAAqB,4DAAI,CAAC;QAC1C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,2CAA2C,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,kBAAkB,KAAK,IAAI,CAAC;AACrC,CAAC","sourcesContent":["import { debug } from '@sentry/core';\nimport type { EmitterSubscription, NativeModule } from 'react-native';\nimport { NativeEventEmitter } from 'react-native';\nimport { isWeb } from '../utils/environment';\nimport { getRNSentryModule } from '../wrapper';\n\nexport const OnShakeEventName = 'rn_sentry_on_shake';\n\nlet _shakeSubscription: EmitterSubscription | null = null;\n\n/**\n * Creates a NativeEventEmitter for the given module.\n * Can be overridden in tests via the `createEmitter` parameter.\n */\ntype EmitterFactory = (nativeModule: NativeModule) => NativeEventEmitter;\n\nconst defaultEmitterFactory: EmitterFactory = nativeModule => new NativeEventEmitter(nativeModule);\n\n/**\n * Starts listening for device shake events and invokes the provided callback when a shake is detected.\n *\n * This starts native shake detection:\n * - iOS: Uses UIKit's motion event detection (no permissions required)\n * - Android: Uses the accelerometer sensor (no permissions required)\n */\nexport function startShakeListener(\n onShake: () => void,\n createEmitter: EmitterFactory = defaultEmitterFactory,\n): boolean {\n if (_shakeSubscription) {\n return false;\n }\n\n if (isWeb()) {\n debug.warn('Shake detection is not supported on Web.');\n return false;\n }\n\n const nativeModule = getRNSentryModule() as NativeModule | undefined;\n if (!nativeModule) {\n debug.warn('Native module is not available. Shake detection will not work.');\n return false;\n }\n\n try {\n const emitter = createEmitter(nativeModule);\n _shakeSubscription = emitter.addListener(OnShakeEventName, () => {\n onShake();\n });\n\n // Explicitly enable native shake detection. On iOS with New Architecture (TurboModules),\n // NativeEventEmitter.addListener does not dispatch to native addListener:, so the\n // native shake listener would never start without this explicit call.\n const module = nativeModule as { enableShakeDetection?: () => void };\n if (module.enableShakeDetection) {\n module.enableShakeDetection();\n } else {\n debug.warn('enableShakeDetection is not available on the native module.');\n }\n return true;\n } catch (e) {\n debug.warn('Failed to start shake listener:', e);\n if (_shakeSubscription) {\n _shakeSubscription.remove();\n _shakeSubscription = null;\n }\n return false;\n }\n}\n\n/**\n * Stops listening for device shake events.\n */\nexport function stopShakeListener(): void {\n if (_shakeSubscription) {\n try {\n _shakeSubscription.remove();\n } catch (e) {\n debug.warn('Failed to remove shake subscription:', e);\n }\n _shakeSubscription = null;\n\n try {\n const nativeModule = getRNSentryModule() as { disableShakeDetection?: () => void } | undefined;\n nativeModule?.disableShakeDetection?.();\n } catch (e) {\n debug.warn('Failed to disable native shake detection:', e);\n }\n }\n}\n\n/**\n * Returns whether the shake listener is currently active.\n * Exported for testing purposes.\n */\nexport function isShakeListenerActive(): boolean {\n return _shakeSubscription !== null;\n}\n"]}
1
+ {"version":3,"file":"ShakeToReportBug.js","sourceRoot":"","sources":["../../../src/js/feedback/ShakeToReportBug.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,OAAO,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAC7C,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C,MAAM,CAAC,MAAM,gBAAgB,GAAG,oBAAoB,CAAC;AAErD,IAAI,kBAAkB,GAA+B,IAAI,CAAC;AAQ1D,MAAM,qBAAqB,GAAmB,YAAY,CAAC,EAAE,CAAC,IAAI,kBAAkB,CAAC,YAAY,CAAC,CAAC;AAEnG;;;;;;GAMG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAmB,EACnB,gBAAgC,qBAAqB;IAErD,IAAI,kBAAkB,EAAE,CAAC;QACvB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,KAAK,EAAE,EAAE,CAAC;QACZ,KAAK,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,YAAY,GAAG,iBAAiB,EAA8B,CAAC;IACrE,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,KAAK,CAAC,IAAI,CAAC,gEAAgE,CAAC,CAAC;QAC7E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,aAAa,CAAC,YAAY,CAAC,CAAC;QAC5C,kBAAkB,GAAG,OAAO,CAAC,WAAW,CAAC,gBAAgB,EAAE,GAAG,EAAE;YAC9D,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,yFAAyF;QACzF,kFAAkF;QAClF,sEAAsE;QACtE,MAAM,MAAM,GAAG,YAAqD,CAAC;QACrE,IAAI,MAAM,CAAC,oBAAoB,EAAE,CAAC;YAChC,MAAM,CAAC,oBAAoB,EAAE,CAAC;QAChC,CAAC;aAAM,CAAC;YACN,KAAK,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,KAAK,CAAC,IAAI,CAAC,iCAAiC,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,kBAAkB,EAAE,CAAC;YACvB,kBAAkB,CAAC,MAAM,EAAE,CAAC;YAC5B,kBAAkB,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB;;IAC/B,IAAI,kBAAkB,EAAE,CAAC;QACvB,IAAI,CAAC;YACH,kBAAkB,CAAC,MAAM,EAAE,CAAC;QAC9B,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,sCAAsC,EAAE,CAAC,CAAC,CAAC;QACxD,CAAC;QACD,kBAAkB,GAAG,IAAI,CAAC;QAE1B,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,iBAAiB,EAAwD,CAAC;YAC/F,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,qBAAqB,4DAAI,CAAC;QAC1C,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,KAAK,CAAC,IAAI,CAAC,2CAA2C,EAAE,CAAC,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;AACH,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,kBAAkB,KAAK,IAAI,CAAC;AACrC,CAAC","sourcesContent":["import type { EmitterSubscription, NativeModule } from 'react-native';\n\nimport { debug } from '@sentry/core';\nimport { NativeEventEmitter } from 'react-native';\n\nimport { isWeb } from '../utils/environment';\nimport { getRNSentryModule } from '../wrapper';\n\nexport const OnShakeEventName = 'rn_sentry_on_shake';\n\nlet _shakeSubscription: EmitterSubscription | null = null;\n\n/**\n * Creates a NativeEventEmitter for the given module.\n * Can be overridden in tests via the `createEmitter` parameter.\n */\ntype EmitterFactory = (nativeModule: NativeModule) => NativeEventEmitter;\n\nconst defaultEmitterFactory: EmitterFactory = nativeModule => new NativeEventEmitter(nativeModule);\n\n/**\n * Starts listening for device shake events and invokes the provided callback when a shake is detected.\n *\n * This starts native shake detection:\n * - iOS: Uses UIKit's motion event detection (no permissions required)\n * - Android: Uses the accelerometer sensor (no permissions required)\n */\nexport function startShakeListener(\n onShake: () => void,\n createEmitter: EmitterFactory = defaultEmitterFactory,\n): boolean {\n if (_shakeSubscription) {\n return false;\n }\n\n if (isWeb()) {\n debug.warn('Shake detection is not supported on Web.');\n return false;\n }\n\n const nativeModule = getRNSentryModule() as NativeModule | undefined;\n if (!nativeModule) {\n debug.warn('Native module is not available. Shake detection will not work.');\n return false;\n }\n\n try {\n const emitter = createEmitter(nativeModule);\n _shakeSubscription = emitter.addListener(OnShakeEventName, () => {\n onShake();\n });\n\n // Explicitly enable native shake detection. On iOS with New Architecture (TurboModules),\n // NativeEventEmitter.addListener does not dispatch to native addListener:, so the\n // native shake listener would never start without this explicit call.\n const module = nativeModule as { enableShakeDetection?: () => void };\n if (module.enableShakeDetection) {\n module.enableShakeDetection();\n } else {\n debug.warn('enableShakeDetection is not available on the native module.');\n }\n return true;\n } catch (e) {\n debug.warn('Failed to start shake listener:', e);\n if (_shakeSubscription) {\n _shakeSubscription.remove();\n _shakeSubscription = null;\n }\n return false;\n }\n}\n\n/**\n * Stops listening for device shake events.\n */\nexport function stopShakeListener(): void {\n if (_shakeSubscription) {\n try {\n _shakeSubscription.remove();\n } catch (e) {\n debug.warn('Failed to remove shake subscription:', e);\n }\n _shakeSubscription = null;\n\n try {\n const nativeModule = getRNSentryModule() as { disableShakeDetection?: () => void } | undefined;\n nativeModule?.disableShakeDetection?.();\n } catch (e) {\n debug.warn('Failed to disable native shake detection:', e);\n }\n }\n}\n\n/**\n * Returns whether the shake listener is currently active.\n * Exported for testing purposes.\n */\nexport function isShakeListenerActive(): boolean {\n return _shakeSubscription !== null;\n}\n"]}
@@ -1,5 +1,5 @@
1
- import type { FeedbackButtonProps, FeedbackWidgetProps, ScreenshotButtonProps } from './FeedbackWidget.types';
2
- export declare const defaultConfiguration: FeedbackWidgetProps;
1
+ import type { FeedbackButtonProps, FeedbackFormProps, ScreenshotButtonProps } from './FeedbackForm.types';
2
+ export declare const defaultConfiguration: FeedbackFormProps;
3
3
  export declare const defaultButtonConfiguration: Partial<FeedbackButtonProps>;
4
4
  export declare const defaultScreenshotButtonConfiguration: Partial<ScreenshotButtonProps>;
5
5
  //# sourceMappingURL=defaults.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAyB9G,eAAO,MAAM,oBAAoB,EAAE,mBA+DlC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,OAAO,CAAC,mBAAmB,CAGnE,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,OAAO,CAAC,qBAAqB,CAG/E,CAAC"}
1
+ {"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AA0B1G,eAAO,MAAM,oBAAoB,EAAE,iBA+DlC,CAAC;AAEF,eAAO,MAAM,0BAA0B,EAAE,OAAO,CAAC,mBAAmB,CAGnE,CAAC;AAEF,eAAO,MAAM,oCAAoC,EAAE,OAAO,CAAC,qBAAqB,CAG/E,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/js/feedback/defaults.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FeedbackButtonProps, FeedbackWidgetProps, ScreenshotButtonProps } from './FeedbackWidget.types';\nimport { feedbackAlertDialog } from './utils';\n\nconst FORM_TITLE = 'Report a Bug';\nconst NAME_PLACEHOLDER = 'Your Name';\nconst NAME_LABEL = 'Name';\nconst EMAIL_PLACEHOLDER = 'your.email@example.org';\nconst EMAIL_LABEL = 'Email';\nconst MESSAGE_PLACEHOLDER = \"What's the bug? What did you expect?\";\nconst MESSAGE_LABEL = 'Description';\nconst IS_REQUIRED_LABEL = '(required)';\nconst SUBMIT_BUTTON_LABEL = 'Send Bug Report';\nconst CANCEL_BUTTON_LABEL = 'Cancel';\nconst TRIGGER_LABEL = 'Report a Bug';\nconst TRIGGER_SCREENSHOT_LABEL = 'Take Screenshot';\nconst ERROR_TITLE = 'Error';\nconst FORM_ERROR = 'Please fill out all required fields.';\nconst EMAIL_ERROR = 'Please enter a valid email address.';\nconst CAPTURE_SCREENSHOT_ERROR = 'Error capturing screenshot. Please try again.';\nconst SUCCESS_MESSAGE_TEXT = 'Thank you for your report!';\nconst ADD_SCREENSHOT_LABEL = 'Add a screenshot';\nconst CAPTURE_SCREENSHOT_LABEL = 'Take a screenshot';\nconst REMOVE_SCREENSHOT_LABEL = 'Remove screenshot';\nconst GENERIC_ERROR_TEXT = 'Unable to send feedback due to an unexpected error.';\n\nexport const defaultConfiguration: FeedbackWidgetProps = {\n // FeedbackCallbacks\n onFormOpen: () => {\n // Does nothing by default\n },\n onFormClose: () => {\n if (__DEV__) {\n feedbackAlertDialog(\n 'Development note',\n 'onFormClose callback is not implemented. By default the form is just unmounted.',\n );\n }\n },\n onAddScreenshot: (_: (uri: string) => void) => {\n if (__DEV__) {\n feedbackAlertDialog('Development note', 'onAddScreenshot callback is not implemented.');\n }\n },\n onSubmitSuccess: () => {\n // Does nothing by default\n },\n onSubmitError: () => {\n // Does nothing by default\n },\n onFormSubmitted: () => {\n if (__DEV__) {\n feedbackAlertDialog(\n 'Development note',\n 'onFormSubmitted callback is not implemented. By default the form is just unmounted.',\n );\n }\n },\n\n // FeedbackGeneralConfiguration\n showBranding: true,\n isEmailRequired: false,\n shouldValidateEmail: true,\n isNameRequired: false,\n showEmail: true,\n showName: true,\n enableScreenshot: false,\n enableTakeScreenshot: false,\n\n // FeedbackTextConfiguration\n cancelButtonLabel: CANCEL_BUTTON_LABEL,\n emailLabel: EMAIL_LABEL,\n emailPlaceholder: EMAIL_PLACEHOLDER,\n formTitle: FORM_TITLE,\n isRequiredLabel: IS_REQUIRED_LABEL,\n messageLabel: MESSAGE_LABEL,\n messagePlaceholder: MESSAGE_PLACEHOLDER,\n nameLabel: NAME_LABEL,\n namePlaceholder: NAME_PLACEHOLDER,\n submitButtonLabel: SUBMIT_BUTTON_LABEL,\n errorTitle: ERROR_TITLE,\n formError: FORM_ERROR,\n emailError: EMAIL_ERROR,\n captureScreenshotError: CAPTURE_SCREENSHOT_ERROR,\n successMessageText: SUCCESS_MESSAGE_TEXT,\n addScreenshotButtonLabel: ADD_SCREENSHOT_LABEL,\n removeScreenshotButtonLabel: REMOVE_SCREENSHOT_LABEL,\n captureScreenshotButtonLabel: CAPTURE_SCREENSHOT_LABEL,\n genericError: GENERIC_ERROR_TEXT,\n};\n\nexport const defaultButtonConfiguration: Partial<FeedbackButtonProps> = {\n triggerLabel: TRIGGER_LABEL,\n triggerAriaLabel: '',\n};\n\nexport const defaultScreenshotButtonConfiguration: Partial<ScreenshotButtonProps> = {\n triggerLabel: TRIGGER_SCREENSHOT_LABEL,\n triggerAriaLabel: '',\n};\n"]}
1
+ {"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../../src/js/feedback/defaults.ts"],"names":[],"mappings":"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","sourcesContent":["import type { FeedbackButtonProps, FeedbackFormProps, ScreenshotButtonProps } from './FeedbackForm.types';\n\nimport { feedbackAlertDialog } from './utils';\n\nconst FORM_TITLE = 'Report a Bug';\nconst NAME_PLACEHOLDER = 'Your Name';\nconst NAME_LABEL = 'Name';\nconst EMAIL_PLACEHOLDER = 'your.email@example.org';\nconst EMAIL_LABEL = 'Email';\nconst MESSAGE_PLACEHOLDER = \"What's the bug? What did you expect?\";\nconst MESSAGE_LABEL = 'Description';\nconst IS_REQUIRED_LABEL = '(required)';\nconst SUBMIT_BUTTON_LABEL = 'Send Bug Report';\nconst CANCEL_BUTTON_LABEL = 'Cancel';\nconst TRIGGER_LABEL = 'Report a Bug';\nconst TRIGGER_SCREENSHOT_LABEL = 'Take Screenshot';\nconst ERROR_TITLE = 'Error';\nconst FORM_ERROR = 'Please fill out all required fields.';\nconst EMAIL_ERROR = 'Please enter a valid email address.';\nconst CAPTURE_SCREENSHOT_ERROR = 'Error capturing screenshot. Please try again.';\nconst SUCCESS_MESSAGE_TEXT = 'Thank you for your report!';\nconst ADD_SCREENSHOT_LABEL = 'Add a screenshot';\nconst CAPTURE_SCREENSHOT_LABEL = 'Take a screenshot';\nconst REMOVE_SCREENSHOT_LABEL = 'Remove screenshot';\nconst GENERIC_ERROR_TEXT = 'Unable to send feedback due to an unexpected error.';\n\nexport const defaultConfiguration: FeedbackFormProps = {\n // FeedbackCallbacks\n onFormOpen: () => {\n // Does nothing by default\n },\n onFormClose: () => {\n if (__DEV__) {\n feedbackAlertDialog(\n 'Development note',\n 'onFormClose callback is not implemented. By default the form is just unmounted.',\n );\n }\n },\n onAddScreenshot: (_: (uri: string) => void) => {\n if (__DEV__) {\n feedbackAlertDialog('Development note', 'onAddScreenshot callback is not implemented.');\n }\n },\n onSubmitSuccess: () => {\n // Does nothing by default\n },\n onSubmitError: () => {\n // Does nothing by default\n },\n onFormSubmitted: () => {\n if (__DEV__) {\n feedbackAlertDialog(\n 'Development note',\n 'onFormSubmitted callback is not implemented. By default the form is just unmounted.',\n );\n }\n },\n\n // FeedbackGeneralConfiguration\n showBranding: true,\n isEmailRequired: false,\n shouldValidateEmail: true,\n isNameRequired: false,\n showEmail: true,\n showName: true,\n enableScreenshot: false,\n enableTakeScreenshot: false,\n\n // FeedbackTextConfiguration\n cancelButtonLabel: CANCEL_BUTTON_LABEL,\n emailLabel: EMAIL_LABEL,\n emailPlaceholder: EMAIL_PLACEHOLDER,\n formTitle: FORM_TITLE,\n isRequiredLabel: IS_REQUIRED_LABEL,\n messageLabel: MESSAGE_LABEL,\n messagePlaceholder: MESSAGE_PLACEHOLDER,\n nameLabel: NAME_LABEL,\n namePlaceholder: NAME_PLACEHOLDER,\n submitButtonLabel: SUBMIT_BUTTON_LABEL,\n errorTitle: ERROR_TITLE,\n formError: FORM_ERROR,\n emailError: EMAIL_ERROR,\n captureScreenshotError: CAPTURE_SCREENSHOT_ERROR,\n successMessageText: SUCCESS_MESSAGE_TEXT,\n addScreenshotButtonLabel: ADD_SCREENSHOT_LABEL,\n removeScreenshotButtonLabel: REMOVE_SCREENSHOT_LABEL,\n captureScreenshotButtonLabel: CAPTURE_SCREENSHOT_LABEL,\n genericError: GENERIC_ERROR_TEXT,\n};\n\nexport const defaultButtonConfiguration: Partial<FeedbackButtonProps> = {\n triggerLabel: TRIGGER_LABEL,\n triggerAriaLabel: '',\n};\n\nexport const defaultScreenshotButtonConfiguration: Partial<ScreenshotButtonProps> = {\n triggerLabel: TRIGGER_SCREENSHOT_LABEL,\n triggerAriaLabel: '',\n};\n"]}
@@ -1,22 +1,22 @@
1
1
  import { type Integration } from '@sentry/core';
2
- import type { FeedbackWidgetTheme } from './FeedbackWidget.theme';
3
- import type { FeedbackButtonProps, FeedbackWidgetProps, ScreenshotButtonProps } from './FeedbackWidget.types';
2
+ import type { FeedbackFormTheme } from './FeedbackForm.theme';
3
+ import type { FeedbackButtonProps, FeedbackFormProps, ScreenshotButtonProps } from './FeedbackForm.types';
4
4
  export declare const MOBILE_FEEDBACK_INTEGRATION_NAME = "MobileFeedback";
5
5
  type FeedbackIntegration = Integration & {
6
- options: Partial<FeedbackWidgetProps>;
6
+ options: Partial<FeedbackFormProps>;
7
7
  buttonOptions: Partial<FeedbackButtonProps>;
8
8
  screenshotButtonOptions: Partial<ScreenshotButtonProps>;
9
9
  colorScheme?: 'system' | 'light' | 'dark';
10
- themeLight: Partial<FeedbackWidgetTheme>;
11
- themeDark: Partial<FeedbackWidgetTheme>;
10
+ themeLight: Partial<FeedbackFormTheme>;
11
+ themeDark: Partial<FeedbackFormTheme>;
12
12
  enableShakeToReport: boolean;
13
13
  };
14
- export declare const feedbackIntegration: (initOptions?: Partial<FeedbackWidgetProps> & {
14
+ export declare const feedbackIntegration: (initOptions?: Partial<FeedbackFormProps> & {
15
15
  buttonOptions?: FeedbackButtonProps;
16
16
  screenshotButtonOptions?: ScreenshotButtonProps;
17
17
  colorScheme?: "system" | "light" | "dark";
18
- themeLight?: Partial<FeedbackWidgetTheme>;
19
- themeDark?: Partial<FeedbackWidgetTheme>;
18
+ themeLight?: Partial<FeedbackFormTheme>;
19
+ themeDark?: Partial<FeedbackFormTheme>;
20
20
  /**
21
21
  * Enable showing the feedback widget when the user shakes the device.
22
22
  *
@@ -27,12 +27,12 @@ export declare const feedbackIntegration: (initOptions?: Partial<FeedbackWidgetP
27
27
  */
28
28
  enableShakeToReport?: boolean;
29
29
  }) => FeedbackIntegration;
30
- export declare const getFeedbackOptions: () => Partial<FeedbackWidgetProps>;
30
+ export declare const getFeedbackOptions: () => Partial<FeedbackFormProps>;
31
31
  export declare const getFeedbackButtonOptions: () => Partial<FeedbackButtonProps>;
32
32
  export declare const getScreenshotButtonOptions: () => Partial<ScreenshotButtonProps>;
33
33
  export declare const getColorScheme: () => "system" | "light" | "dark";
34
- export declare const getFeedbackLightTheme: () => Partial<FeedbackWidgetTheme>;
35
- export declare const getFeedbackDarkTheme: () => Partial<FeedbackWidgetTheme>;
34
+ export declare const getFeedbackLightTheme: () => Partial<FeedbackFormTheme>;
35
+ export declare const getFeedbackDarkTheme: () => Partial<FeedbackFormTheme>;
36
36
  export declare const isShakeToReportEnabled: () => boolean;
37
37
  export {};
38
38
  //# sourceMappingURL=integration.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAE9G,eAAO,MAAM,gCAAgC,mBAAmB,CAAC;AAEjE,KAAK,mBAAmB,GAAG,WAAW,GAAG;IACvC,OAAO,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACtC,aAAa,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC5C,uBAAuB,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxD,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC1C,UAAU,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzC,SAAS,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACxC,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,cAAa,OAAO,CAAC,mBAAmB,CAAC,GAAG;IAC1C,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,uBAAuB,CAAC,EAAE,qBAAqB,CAAC;IAChD,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC1C,SAAS,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACzC;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC1B,KACL,mBAqBF,CAAC;AAMF,eAAO,MAAM,kBAAkB,QAAO,OAAO,CAAC,mBAAmB,CAOhE,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAO,OAAO,CAAC,mBAAmB,CAOtE,CAAC;AAEF,eAAO,MAAM,0BAA0B,QAAO,OAAO,CAAC,qBAAqB,CAO1E,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,QAAQ,GAAG,OAAO,GAAG,MAOtD,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,OAAO,CAAC,mBAAmB,CAOnE,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,OAAO,CAAC,mBAAmB,CAOlE,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,OAGzC,CAAC"}
1
+ {"version":3,"file":"integration.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/integration.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,KAAK,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,KAAK,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAE1G,eAAO,MAAM,gCAAgC,mBAAmB,CAAC;AAEjE,KAAK,mBAAmB,GAAG,WAAW,GAAG;IACvC,OAAO,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACpC,aAAa,EAAE,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAC5C,uBAAuB,EAAE,OAAO,CAAC,qBAAqB,CAAC,CAAC;IACxD,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC1C,UAAU,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACvC,SAAS,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACtC,mBAAmB,EAAE,OAAO,CAAC;CAC9B,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,cAAa,OAAO,CAAC,iBAAiB,CAAC,GAAG;IACxC,aAAa,CAAC,EAAE,mBAAmB,CAAC;IACpC,uBAAuB,CAAC,EAAE,qBAAqB,CAAC;IAChD,WAAW,CAAC,EAAE,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;IAC1C,UAAU,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACxC,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACvC;;;;;;;OAOG;IACH,mBAAmB,CAAC,EAAE,OAAO,CAAC;CAC1B,KACL,mBAqBF,CAAC;AAMF,eAAO,MAAM,kBAAkB,QAAO,OAAO,CAAC,iBAAiB,CAO9D,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAAO,OAAO,CAAC,mBAAmB,CAOtE,CAAC;AAEF,eAAO,MAAM,0BAA0B,QAAO,OAAO,CAAC,qBAAqB,CAO1E,CAAC;AAEF,eAAO,MAAM,cAAc,QAAO,QAAQ,GAAG,OAAO,GAAG,MAOtD,CAAC;AAEF,eAAO,MAAM,qBAAqB,QAAO,OAAO,CAAC,iBAAiB,CAOjE,CAAC;AAEF,eAAO,MAAM,oBAAoB,QAAO,OAAO,CAAC,iBAAiB,CAOhE,CAAC;AAEF,eAAO,MAAM,sBAAsB,QAAO,OAGzC,CAAC"}