@sentry/react-native 8.5.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.
- package/RNSentry.podspec +1 -1
- package/android/build.gradle +2 -2
- package/android/expo-handler/build.gradle +20 -0
- package/android/expo-handler/src/main/java/io/sentry/react/expo/SentryExpoPackage.java +22 -0
- package/android/expo-handler/src/main/java/io/sentry/react/expo/SentryReactNativeHostHandler.java +48 -0
- package/android/expo-stubs/README.md +7 -0
- package/android/expo-stubs/build.gradle +23 -0
- package/android/expo-stubs/gradle/wrapper/gradle-wrapper.jar +0 -0
- package/android/expo-stubs/gradle/wrapper/gradle-wrapper.properties +7 -0
- package/android/expo-stubs/gradlew +251 -0
- package/android/expo-stubs/gradlew.bat +94 -0
- package/android/expo-stubs/settings.gradle +1 -0
- package/android/expo-stubs/src/main/java/expo/modules/core/interfaces/Package.java +11 -0
- package/android/expo-stubs/src/main/java/expo/modules/core/interfaces/ReactNativeHostHandler.java +7 -0
- package/android/libs/expo-stubs.jar +0 -0
- package/android/libs/replay-stubs.jar +0 -0
- package/android/replay-stubs/build.gradle +1 -1
- package/android/src/main/java/io/sentry/react/RNSentryFrameDelayCollector.java +128 -0
- package/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java +63 -11
- package/android/src/main/java/io/sentry/react/RNSentryVersion.java +1 -1
- package/android/src/newarch/java/io/sentry/react/RNSentryModule.java +6 -0
- package/android/src/oldarch/java/io/sentry/react/RNSentryModule.java +6 -0
- package/dist/js/NativeLogListener.d.ts.map +1 -1
- package/dist/js/NativeLogListener.js.map +1 -1
- package/dist/js/NativeRNSentry.d.ts +1 -0
- package/dist/js/NativeRNSentry.d.ts.map +1 -1
- package/dist/js/NativeRNSentry.js.map +1 -1
- package/dist/js/RNSentryReplayMaskNativeComponent.d.ts.map +1 -1
- package/dist/js/RNSentryReplayMaskNativeComponent.js +1 -2
- package/dist/js/RNSentryReplayMaskNativeComponent.js.map +1 -1
- package/dist/js/RNSentryReplayUnmaskNativeComponent.d.ts.map +1 -1
- package/dist/js/RNSentryReplayUnmaskNativeComponent.js +1 -2
- package/dist/js/RNSentryReplayUnmaskNativeComponent.js.map +1 -1
- package/dist/js/breadcrumb.d.ts.map +1 -1
- package/dist/js/breadcrumb.js.map +1 -1
- package/dist/js/client.d.ts.map +1 -1
- package/dist/js/client.js +1 -1
- package/dist/js/client.js.map +1 -1
- package/dist/js/feedback/FeedbackButton.d.ts +2 -1
- package/dist/js/feedback/FeedbackButton.d.ts.map +1 -1
- package/dist/js/feedback/FeedbackButton.js +5 -4
- package/dist/js/feedback/FeedbackButton.js.map +1 -1
- package/dist/js/feedback/{FeedbackWidget.d.ts → FeedbackForm.d.ts} +5 -5
- package/dist/js/feedback/FeedbackForm.d.ts.map +1 -0
- package/dist/js/feedback/{FeedbackWidget.js → FeedbackForm.js} +32 -30
- package/dist/js/feedback/FeedbackForm.js.map +1 -0
- package/dist/js/feedback/FeedbackForm.styles.d.ts +11 -0
- package/dist/js/feedback/FeedbackForm.styles.d.ts.map +1 -0
- package/dist/js/feedback/{FeedbackWidget.styles.js → FeedbackForm.styles.js} +1 -1
- package/dist/js/feedback/FeedbackForm.styles.js.map +1 -0
- package/dist/js/feedback/{FeedbackWidget.theme.d.ts → FeedbackForm.theme.d.ts} +7 -5
- package/dist/js/feedback/FeedbackForm.theme.d.ts.map +1 -0
- package/dist/js/feedback/{FeedbackWidget.theme.js → FeedbackForm.theme.js} +1 -1
- package/dist/js/feedback/FeedbackForm.theme.js.map +1 -0
- package/{ts3.8/dist/js/feedback/FeedbackWidget.types.d.ts → dist/js/feedback/FeedbackForm.types.d.ts} +305 -299
- package/dist/js/feedback/FeedbackForm.types.d.ts.map +1 -0
- package/dist/js/feedback/FeedbackForm.types.js +2 -0
- package/dist/js/feedback/FeedbackForm.types.js.map +1 -0
- package/dist/js/feedback/{FeedbackWidgetManager.d.ts → FeedbackFormManager.d.ts} +12 -4
- package/dist/js/feedback/FeedbackFormManager.d.ts.map +1 -0
- package/dist/js/feedback/{FeedbackWidgetManager.js → FeedbackFormManager.js} +22 -13
- package/dist/js/feedback/FeedbackFormManager.js.map +1 -0
- package/dist/js/feedback/{FeedbackWidgetProvider.d.ts → FeedbackFormProvider.d.ts} +10 -10
- package/dist/js/feedback/FeedbackFormProvider.d.ts.map +1 -0
- package/dist/js/feedback/{FeedbackWidgetProvider.js → FeedbackFormProvider.js} +18 -15
- package/dist/js/feedback/FeedbackFormProvider.js.map +1 -0
- package/dist/js/feedback/ScreenshotButton.d.ts +2 -2
- package/dist/js/feedback/ScreenshotButton.d.ts.map +1 -1
- package/dist/js/feedback/ScreenshotButton.js +6 -5
- package/dist/js/feedback/ScreenshotButton.js.map +1 -1
- package/dist/js/feedback/ShakeToReportBug.d.ts.map +1 -1
- package/dist/js/feedback/ShakeToReportBug.js.map +1 -1
- package/dist/js/feedback/defaults.d.ts +2 -2
- package/dist/js/feedback/defaults.d.ts.map +1 -1
- package/dist/js/feedback/defaults.js.map +1 -1
- package/dist/js/feedback/integration.d.ts +13 -13
- package/dist/js/feedback/integration.d.ts.map +1 -1
- package/dist/js/feedback/integration.js.map +1 -1
- package/dist/js/feedback/lazy.d.ts +5 -0
- package/dist/js/feedback/lazy.d.ts.map +1 -1
- package/dist/js/feedback/lazy.js +12 -0
- package/dist/js/feedback/lazy.js.map +1 -1
- package/dist/js/feedback/utils.d.ts.map +1 -1
- package/dist/js/feedback/utils.js +1 -0
- package/dist/js/feedback/utils.js.map +1 -1
- package/dist/js/index.d.ts +12 -3
- package/dist/js/index.d.ts.map +1 -1
- package/dist/js/index.js +12 -3
- package/dist/js/index.js.map +1 -1
- package/dist/js/integrations/appRegistry.d.ts.map +1 -1
- package/dist/js/integrations/appRegistry.js.map +1 -1
- package/dist/js/integrations/breadcrumbs.d.ts.map +1 -1
- package/dist/js/integrations/breadcrumbs.js +1 -1
- package/dist/js/integrations/breadcrumbs.js.map +1 -1
- package/dist/js/integrations/debugsymbolicator.d.ts.map +1 -1
- package/dist/js/integrations/debugsymbolicator.js +4 -5
- package/dist/js/integrations/debugsymbolicator.js.map +1 -1
- package/dist/js/integrations/debugsymbolicatorutils.d.ts.map +1 -1
- package/dist/js/integrations/debugsymbolicatorutils.js.map +1 -1
- package/dist/js/integrations/default.d.ts.map +1 -1
- package/dist/js/integrations/default.js +1 -2
- package/dist/js/integrations/default.js.map +1 -1
- package/dist/js/integrations/devicecontext.d.ts.map +1 -1
- package/dist/js/integrations/devicecontext.js +1 -1
- package/dist/js/integrations/devicecontext.js.map +1 -1
- package/dist/js/integrations/expoconstants.d.ts.map +1 -1
- package/dist/js/integrations/expoconstants.js.map +1 -1
- package/dist/js/integrations/expocontext.d.ts.map +1 -1
- package/dist/js/integrations/expocontext.js.map +1 -1
- package/dist/js/integrations/expoupdateslistener.d.ts.map +1 -1
- package/dist/js/integrations/expoupdateslistener.js +0 -1
- package/dist/js/integrations/expoupdateslistener.js.map +1 -1
- package/dist/js/integrations/graphql.d.ts.map +1 -1
- package/dist/js/integrations/graphql.js.map +1 -1
- package/dist/js/integrations/logEnricherIntegration.d.ts.map +1 -1
- package/dist/js/integrations/logEnricherIntegration.js +1 -1
- package/dist/js/integrations/logEnricherIntegration.js.map +1 -1
- package/dist/js/integrations/modulesloader.d.ts.map +1 -1
- package/dist/js/integrations/modulesloader.js.map +1 -1
- package/dist/js/integrations/nativelinkederrors.d.ts.map +1 -1
- package/dist/js/integrations/nativelinkederrors.js +1 -0
- package/dist/js/integrations/nativelinkederrors.js.map +1 -1
- package/dist/js/integrations/primitiveTagIntegration.d.ts.map +1 -1
- package/dist/js/integrations/primitiveTagIntegration.js.map +1 -1
- package/dist/js/integrations/reactnativeerrorhandlers.d.ts.map +1 -1
- package/dist/js/integrations/reactnativeerrorhandlers.js +2 -1
- package/dist/js/integrations/reactnativeerrorhandlers.js.map +1 -1
- package/dist/js/integrations/reactnativeerrorhandlersutils.d.ts.map +1 -1
- package/dist/js/integrations/reactnativeerrorhandlersutils.js +0 -5
- package/dist/js/integrations/reactnativeerrorhandlersutils.js.map +1 -1
- package/dist/js/integrations/reactnativeinfo.d.ts.map +1 -1
- package/dist/js/integrations/reactnativeinfo.js.map +1 -1
- package/dist/js/integrations/release.d.ts.map +1 -1
- package/dist/js/integrations/release.js +1 -1
- package/dist/js/integrations/release.js.map +1 -1
- package/dist/js/integrations/rewriteframes.d.ts.map +1 -1
- package/dist/js/integrations/rewriteframes.js.map +1 -1
- package/dist/js/integrations/screenshot.d.ts.map +1 -1
- package/dist/js/integrations/screenshot.js +1 -1
- package/dist/js/integrations/screenshot.js.map +1 -1
- package/dist/js/integrations/sdkinfo.d.ts.map +1 -1
- package/dist/js/integrations/sdkinfo.js.map +1 -1
- package/dist/js/integrations/spotlight.d.ts.map +1 -1
- package/dist/js/integrations/spotlight.js.map +1 -1
- package/dist/js/integrations/supabase.d.ts.map +1 -1
- package/dist/js/integrations/supabase.js.map +1 -1
- package/dist/js/integrations/viewhierarchy.d.ts.map +1 -1
- package/dist/js/integrations/viewhierarchy.js +1 -1
- package/dist/js/integrations/viewhierarchy.js.map +1 -1
- package/dist/js/misc.js.map +1 -1
- package/dist/js/options.d.ts +1 -1
- package/dist/js/options.d.ts.map +1 -1
- package/dist/js/options.js.map +1 -1
- package/dist/js/playground/examples.d.ts.map +1 -1
- package/dist/js/playground/examples.js.map +1 -1
- package/dist/js/playground/modal.d.ts +2 -2
- package/dist/js/playground/modal.d.ts.map +1 -1
- package/dist/js/playground/modal.js +5 -103
- package/dist/js/playground/modal.js.map +1 -1
- package/dist/js/playground/modal.styles.d.ts +100 -0
- package/dist/js/playground/modal.styles.d.ts.map +1 -0
- package/dist/js/playground/modal.styles.js +98 -0
- package/dist/js/playground/modal.styles.js.map +1 -0
- package/dist/js/profiling/cache.js +2 -2
- package/dist/js/profiling/cache.js.map +1 -1
- package/dist/js/profiling/convertHermesProfile.d.ts.map +1 -1
- package/dist/js/profiling/convertHermesProfile.js.map +1 -1
- package/dist/js/profiling/debugid.d.ts.map +1 -1
- package/dist/js/profiling/debugid.js.map +1 -1
- package/dist/js/profiling/hermes.d.ts.map +1 -1
- package/dist/js/profiling/hermes.js.map +1 -1
- package/dist/js/profiling/integration.d.ts.map +1 -1
- package/dist/js/profiling/integration.js.map +1 -1
- package/dist/js/profiling/types.d.ts.map +1 -1
- package/dist/js/profiling/types.js.map +1 -1
- package/dist/js/profiling/utils.d.ts.map +1 -1
- package/dist/js/profiling/utils.js +1 -1
- package/dist/js/profiling/utils.js.map +1 -1
- package/dist/js/replay/CustomMask.d.ts +1 -1
- package/dist/js/replay/CustomMask.d.ts.map +1 -1
- package/dist/js/replay/CustomMask.js +1 -1
- package/dist/js/replay/CustomMask.js.map +1 -1
- package/dist/js/replay/CustomMask.web.d.ts +1 -1
- package/dist/js/replay/CustomMask.web.d.ts.map +1 -1
- package/dist/js/replay/CustomMask.web.js +2 -2
- package/dist/js/replay/CustomMask.web.js.map +1 -1
- package/dist/js/replay/browserReplay.d.ts.map +1 -1
- package/dist/js/replay/browserReplay.js +0 -2
- package/dist/js/replay/browserReplay.js.map +1 -1
- package/dist/js/replay/mobilereplay.d.ts.map +1 -1
- package/dist/js/replay/mobilereplay.js +21 -2
- package/dist/js/replay/mobilereplay.js.map +1 -1
- package/dist/js/replay/networkUtils.d.ts +0 -1
- package/dist/js/replay/networkUtils.d.ts.map +1 -1
- package/dist/js/replay/networkUtils.js.map +1 -1
- package/dist/js/replay/xhrUtils.d.ts.map +1 -1
- package/dist/js/replay/xhrUtils.js.map +1 -1
- package/dist/js/scopeSync.d.ts.map +1 -1
- package/dist/js/scopeSync.js +1 -1
- package/dist/js/scopeSync.js.map +1 -1
- package/dist/js/sdk.d.ts +21 -0
- package/dist/js/sdk.d.ts.map +1 -1
- package/dist/js/sdk.js +42 -18
- package/dist/js/sdk.js.map +1 -1
- package/dist/js/tools/ModulesCollector.js +1 -1
- package/dist/js/tools/ModulesCollector.js.map +1 -1
- package/dist/js/tools/collectModules.js +0 -1
- package/dist/js/tools/collectModules.js.map +1 -1
- package/dist/js/tools/easBuildHooks.d.ts.map +1 -1
- package/dist/js/tools/easBuildHooks.js +13 -14
- package/dist/js/tools/easBuildHooks.js.map +1 -1
- package/dist/js/tools/enableLogger.js +1 -2
- package/dist/js/tools/enableLogger.js.map +1 -1
- package/dist/js/tools/metroMiddleware.d.ts.map +1 -1
- package/dist/js/tools/metroMiddleware.js.map +1 -1
- package/dist/js/tools/metroconfig.d.ts.map +1 -1
- package/dist/js/tools/metroconfig.js +10 -12
- package/dist/js/tools/metroconfig.js.map +1 -1
- package/dist/js/tools/sentryBabelTransformerUtils.d.ts.map +1 -1
- package/dist/js/tools/sentryBabelTransformerUtils.js +9 -10
- package/dist/js/tools/sentryBabelTransformerUtils.js.map +1 -1
- package/dist/js/tools/sentryMetroSerializer.d.ts.map +1 -1
- package/dist/js/tools/sentryMetroSerializer.js +6 -7
- package/dist/js/tools/sentryMetroSerializer.js.map +1 -1
- package/dist/js/tools/sentryOptionsSerializer.d.ts.map +1 -1
- package/dist/js/tools/sentryOptionsSerializer.js +3 -5
- package/dist/js/tools/sentryOptionsSerializer.js.map +1 -1
- package/dist/js/tools/sentryReleaseInjector.d.ts +1 -1
- package/dist/js/tools/sentryReleaseInjector.d.ts.map +1 -1
- package/dist/js/tools/sentryReleaseInjector.js.map +1 -1
- package/dist/js/tools/utils.d.ts.map +1 -1
- package/dist/js/tools/utils.js +7 -10
- package/dist/js/tools/utils.js.map +1 -1
- package/dist/js/tools/vendor/metro/countLines.d.ts.map +1 -1
- package/dist/js/tools/vendor/metro/utils.d.ts.map +1 -1
- package/dist/js/tools/vendor/metro/utils.js +5 -5
- package/dist/js/tools/vendor/metro/utils.js.map +1 -1
- package/dist/js/touchevents.d.ts.map +1 -1
- package/dist/js/touchevents.js +19 -19
- package/dist/js/touchevents.js.map +1 -1
- package/dist/js/tracing/expoAsset.js.map +1 -1
- package/dist/js/tracing/expoImage.d.ts.map +1 -1
- package/dist/js/tracing/expoImage.js +1 -1
- package/dist/js/tracing/expoImage.js.map +1 -1
- package/dist/js/tracing/expoRouter.d.ts.map +1 -1
- package/dist/js/tracing/expoRouter.js.map +1 -1
- package/dist/js/tracing/gesturetracing.d.ts.map +1 -1
- package/dist/js/tracing/gesturetracing.js.map +1 -1
- package/dist/js/tracing/integrations/appStart.d.ts +19 -1
- package/dist/js/tracing/integrations/appStart.d.ts.map +1 -1
- package/dist/js/tracing/integrations/appStart.js +144 -9
- package/dist/js/tracing/integrations/appStart.js.map +1 -1
- package/dist/js/tracing/integrations/nativeFrames.d.ts.map +1 -1
- package/dist/js/tracing/integrations/nativeFrames.js +47 -1
- package/dist/js/tracing/integrations/nativeFrames.js.map +1 -1
- package/dist/js/tracing/integrations/stalltracking.d.ts +1 -1
- package/dist/js/tracing/integrations/stalltracking.d.ts.map +1 -1
- package/dist/js/tracing/integrations/stalltracking.js +4 -2
- package/dist/js/tracing/integrations/stalltracking.js.map +1 -1
- package/dist/js/tracing/integrations/timeToDisplayIntegration.d.ts.map +1 -1
- package/dist/js/tracing/integrations/timeToDisplayIntegration.js +15 -15
- package/dist/js/tracing/integrations/timeToDisplayIntegration.js.map +1 -1
- package/dist/js/tracing/integrations/userInteraction.d.ts.map +1 -1
- package/dist/js/tracing/integrations/userInteraction.js.map +1 -1
- package/dist/js/tracing/onSpanEndUtils.d.ts.map +1 -1
- package/dist/js/tracing/onSpanEndUtils.js +43 -14
- package/dist/js/tracing/onSpanEndUtils.js.map +1 -1
- package/dist/js/tracing/reactnativenavigation.d.ts.map +1 -1
- package/dist/js/tracing/reactnativenavigation.js.map +1 -1
- package/dist/js/tracing/reactnativeprofiler.d.ts.map +1 -1
- package/dist/js/tracing/reactnativeprofiler.js +2 -2
- package/dist/js/tracing/reactnativeprofiler.js.map +1 -1
- package/dist/js/tracing/reactnativetracing.d.ts.map +1 -1
- package/dist/js/tracing/reactnativetracing.js +0 -1
- package/dist/js/tracing/reactnativetracing.js.map +1 -1
- package/dist/js/tracing/reactnavigation.d.ts +3 -0
- package/dist/js/tracing/reactnavigation.d.ts.map +1 -1
- package/dist/js/tracing/reactnavigation.js +6 -4
- package/dist/js/tracing/reactnavigation.js.map +1 -1
- package/dist/js/tracing/span.d.ts +2 -17
- package/dist/js/tracing/span.d.ts.map +1 -1
- package/dist/js/tracing/span.js +1 -1
- package/dist/js/tracing/span.js.map +1 -1
- package/dist/js/tracing/timeToDisplayFallback.d.ts.map +1 -1
- package/dist/js/tracing/timetodisplay.d.ts.map +1 -1
- package/dist/js/tracing/timetodisplay.js +42 -19
- package/dist/js/tracing/timetodisplay.js.map +1 -1
- package/dist/js/tracing/timetodisplaynative.d.ts +1 -1
- package/dist/js/tracing/timetodisplaynative.d.ts.map +1 -1
- package/dist/js/tracing/timetodisplaynative.js +5 -4
- package/dist/js/tracing/timetodisplaynative.js.map +1 -1
- package/dist/js/tracing/types.js.map +1 -1
- package/dist/js/tracing/utils.d.ts.map +1 -1
- package/dist/js/tracing/utils.js.map +1 -1
- package/dist/js/transports/encodePolyfill.d.ts +1 -1
- package/dist/js/transports/encodePolyfill.d.ts.map +1 -1
- package/dist/js/transports/encodePolyfill.js.map +1 -1
- package/dist/js/transports/native.d.ts.map +1 -1
- package/dist/js/transports/native.js.map +1 -1
- package/dist/js/utils/AsyncExpiringMap.js.map +1 -1
- package/dist/js/utils/encode.js.map +1 -1
- package/dist/js/utils/envelope.d.ts.map +1 -1
- package/dist/js/utils/envelope.js.map +1 -1
- package/dist/js/utils/environment.d.ts.map +1 -1
- package/dist/js/utils/environment.js.map +1 -1
- package/dist/js/utils/expomodules.d.ts.map +1 -1
- package/dist/js/utils/expomodules.js.map +1 -1
- package/dist/js/utils/fill.js +1 -1
- package/dist/js/utils/fill.js.map +1 -1
- package/dist/js/utils/ignorerequirecyclelogs.js.map +1 -1
- package/dist/js/utils/normalize.js +2 -2
- package/dist/js/utils/normalize.js.map +1 -1
- package/dist/js/utils/outcome.js.map +1 -1
- package/dist/js/utils/primitiveConverter.js.map +1 -1
- package/dist/js/utils/release.js.map +1 -1
- package/dist/js/utils/rnlibraries.d.ts.map +1 -1
- package/dist/js/utils/rnlibraries.js +1 -7
- package/dist/js/utils/rnlibraries.js.map +1 -1
- package/dist/js/utils/safe.d.ts.map +1 -1
- package/dist/js/utils/safe.js.map +1 -1
- package/dist/js/utils/span.d.ts.map +1 -1
- package/dist/js/utils/span.js.map +1 -1
- package/dist/js/utils/worldwide.d.ts +0 -1
- package/dist/js/utils/worldwide.d.ts.map +1 -1
- package/dist/js/utils/worldwide.js.map +1 -1
- package/dist/js/utils/xhr.d.ts +0 -1
- package/dist/js/utils/xhr.d.ts.map +1 -1
- package/dist/js/utils/xhr.js.map +1 -1
- package/dist/js/vendor/base64-js/fromByteArray.js +1 -1
- package/dist/js/vendor/base64-js/fromByteArray.js.map +1 -1
- package/dist/js/vendor/buffer/utf8ToBytes.js +1 -1
- package/dist/js/vendor/buffer/utf8ToBytes.js.map +1 -1
- package/dist/js/vendor/react-native/index.d.ts.map +1 -1
- package/dist/js/vendor/react-native/index.js.map +1 -1
- package/dist/js/version.d.ts +1 -1
- package/dist/js/version.js +1 -1
- package/dist/js/version.js.map +1 -1
- package/dist/js/wrapper.d.ts +1 -0
- package/dist/js/wrapper.d.ts.map +1 -1
- package/dist/js/wrapper.js +20 -9
- package/dist/js/wrapper.js.map +1 -1
- package/expo-module.config.json +7 -0
- package/ios/RNSentry.mm +18 -1
- package/ios/RNSentryReplay.mm +1 -1
- package/ios/RNSentrySDK.m +1 -1
- package/ios/RNSentryStart.m +4 -1
- package/ios/RNSentryTimeToDisplay.m +48 -32
- package/ios/RNSentryVersion.m +1 -1
- package/ios/SentryScreenFramesWrapper.h +2 -0
- package/ios/SentryScreenFramesWrapper.m +35 -0
- package/package.json +18 -22
- package/plugin/build/logger.js +1 -1
- package/plugin/build/utils.js +2 -0
- package/plugin/build/withSentry.js +1 -2
- package/plugin/build/withSentryAndroid.js +2 -0
- package/plugin/build/withSentryAndroidGradlePlugin.d.ts +1 -1
- package/plugin/build/withSentryAndroidGradlePlugin.js +1 -1
- package/plugin/build/withSentryIOS.js +1 -3
- package/scripts/eas-build-hook.js +0 -2
- package/scripts/expo-upload-sourcemaps.js +0 -1
- package/src/js/NativeRNSentry.ts +3 -0
- package/src/js/RNSentryReplayMaskNativeComponent.ts +2 -3
- package/src/js/RNSentryReplayUnmaskNativeComponent.ts +2 -3
- package/ts3.8/dist/js/NativeRNSentry.d.ts +1 -0
- package/ts3.8/dist/js/feedback/FeedbackButton.d.ts +2 -1
- package/ts3.8/dist/js/feedback/{FeedbackWidget.d.ts → FeedbackForm.d.ts} +5 -5
- package/ts3.8/dist/js/feedback/FeedbackForm.styles.d.ts +11 -0
- package/ts3.8/dist/js/feedback/{FeedbackWidget.theme.d.ts → FeedbackForm.theme.d.ts} +7 -5
- package/{dist/js/feedback/FeedbackWidget.types.d.ts → ts3.8/dist/js/feedback/FeedbackForm.types.d.ts} +305 -299
- package/ts3.8/dist/js/feedback/{FeedbackWidgetManager.d.ts → FeedbackFormManager.d.ts} +12 -4
- package/ts3.8/dist/js/feedback/{FeedbackWidgetProvider.d.ts → FeedbackFormProvider.d.ts} +10 -10
- package/ts3.8/dist/js/feedback/ScreenshotButton.d.ts +2 -2
- package/ts3.8/dist/js/feedback/defaults.d.ts +2 -2
- package/ts3.8/dist/js/feedback/integration.d.ts +13 -13
- package/ts3.8/dist/js/feedback/lazy.d.ts +5 -0
- package/ts3.8/dist/js/index.d.ts +12 -3
- package/ts3.8/dist/js/options.d.ts +1 -1
- package/ts3.8/dist/js/playground/modal.d.ts +2 -2
- package/ts3.8/dist/js/playground/modal.styles.d.ts +100 -0
- package/ts3.8/dist/js/replay/CustomMask.d.ts +1 -1
- package/ts3.8/dist/js/replay/CustomMask.web.d.ts +1 -1
- package/ts3.8/dist/js/replay/networkUtils.d.ts +0 -1
- package/ts3.8/dist/js/sdk.d.ts +21 -0
- package/ts3.8/dist/js/tracing/integrations/appStart.d.ts +19 -1
- package/ts3.8/dist/js/tracing/integrations/stalltracking.d.ts +1 -1
- package/ts3.8/dist/js/tracing/reactnavigation.d.ts +3 -0
- package/ts3.8/dist/js/tracing/span.d.ts +2 -17
- package/ts3.8/dist/js/tracing/timetodisplaynative.d.ts +1 -1
- package/ts3.8/dist/js/transports/encodePolyfill.d.ts +1 -1
- package/ts3.8/dist/js/utils/worldwide.d.ts +0 -1
- package/ts3.8/dist/js/utils/xhr.d.ts +0 -1
- package/ts3.8/dist/js/version.d.ts +1 -1
- package/ts3.8/dist/js/wrapper.d.ts +1 -0
- package/dist/js/feedback/FeedbackWidget.d.ts.map +0 -1
- package/dist/js/feedback/FeedbackWidget.js.map +0 -1
- package/dist/js/feedback/FeedbackWidget.styles.d.ts +0 -11
- package/dist/js/feedback/FeedbackWidget.styles.d.ts.map +0 -1
- package/dist/js/feedback/FeedbackWidget.styles.js.map +0 -1
- package/dist/js/feedback/FeedbackWidget.theme.d.ts.map +0 -1
- package/dist/js/feedback/FeedbackWidget.theme.js.map +0 -1
- package/dist/js/feedback/FeedbackWidget.types.d.ts.map +0 -1
- package/dist/js/feedback/FeedbackWidget.types.js +0 -2
- package/dist/js/feedback/FeedbackWidget.types.js.map +0 -1
- package/dist/js/feedback/FeedbackWidgetManager.d.ts.map +0 -1
- package/dist/js/feedback/FeedbackWidgetManager.js.map +0 -1
- package/dist/js/feedback/FeedbackWidgetProvider.d.ts.map +0 -1
- package/dist/js/feedback/FeedbackWidgetProvider.js.map +0 -1
- package/ts3.8/dist/js/feedback/FeedbackWidget.styles.d.ts +0 -11
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { Animated } from 'react-native';
|
|
3
|
-
import type {
|
|
4
|
-
export interface
|
|
3
|
+
import type { FeedbackFormStyles } from './FeedbackForm.types';
|
|
4
|
+
export interface FeedbackFormProviderProps {
|
|
5
5
|
children: React.ReactNode;
|
|
6
|
-
styles?:
|
|
6
|
+
styles?: FeedbackFormStyles;
|
|
7
7
|
}
|
|
8
|
-
export interface
|
|
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
|
-
*
|
|
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
|
|
22
|
-
state:
|
|
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:
|
|
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:
|
|
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=
|
|
49
|
+
//# sourceMappingURL=FeedbackFormProvider.d.ts.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import type { Screenshot } from '../wrapper';
|
|
3
|
-
import type { ScreenshotButtonProps } from './
|
|
4
|
-
export declare const getCapturedScreenshot: () => Screenshot |
|
|
3
|
+
import type { ScreenshotButtonProps } from './FeedbackForm.types';
|
|
4
|
+
export declare const getCapturedScreenshot: () => Screenshot | "ErrorCapturingScreenshot" | undefined;
|
|
5
5
|
/**
|
|
6
6
|
* @beta
|
|
7
7
|
* Implements a screenshot button that takes a screenshot.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { FeedbackButtonProps,
|
|
2
|
-
export declare const defaultConfiguration:
|
|
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,22 +1,22 @@
|
|
|
1
1
|
import type { Integration } from '@sentry/core';
|
|
2
|
-
import type {
|
|
3
|
-
import type { FeedbackButtonProps,
|
|
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<
|
|
6
|
+
options: Partial<FeedbackFormProps>;
|
|
7
7
|
buttonOptions: Partial<FeedbackButtonProps>;
|
|
8
8
|
screenshotButtonOptions: Partial<ScreenshotButtonProps>;
|
|
9
9
|
colorScheme?: 'system' | 'light' | 'dark';
|
|
10
|
-
themeLight: Partial<
|
|
11
|
-
themeDark: Partial<
|
|
10
|
+
themeLight: Partial<FeedbackFormTheme>;
|
|
11
|
+
themeDark: Partial<FeedbackFormTheme>;
|
|
12
12
|
enableShakeToReport: boolean;
|
|
13
13
|
};
|
|
14
|
-
export declare const feedbackIntegration: (initOptions?: Partial<
|
|
14
|
+
export declare const feedbackIntegration: (initOptions?: Partial<FeedbackFormProps> & {
|
|
15
15
|
buttonOptions?: FeedbackButtonProps;
|
|
16
16
|
screenshotButtonOptions?: ScreenshotButtonProps;
|
|
17
|
-
colorScheme?:
|
|
18
|
-
themeLight?: Partial<
|
|
19
|
-
themeDark?: Partial<
|
|
17
|
+
colorScheme?: "system" | "light" | "dark";
|
|
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<
|
|
30
|
+
export declare const getFeedbackOptions: () => Partial<FeedbackFormProps>;
|
|
31
31
|
export declare const getFeedbackButtonOptions: () => Partial<FeedbackButtonProps>;
|
|
32
32
|
export declare const getScreenshotButtonOptions: () => Partial<ScreenshotButtonProps>;
|
|
33
|
-
export declare const getColorScheme: () =>
|
|
34
|
-
export declare const getFeedbackLightTheme: () => Partial<
|
|
35
|
-
export declare const getFeedbackDarkTheme: () => Partial<
|
|
33
|
+
export declare const getColorScheme: () => "system" | "light" | "dark";
|
|
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
|
|
@@ -12,6 +12,11 @@ export declare const AUTO_INJECT_FEEDBACK_BUTTON_INTEGRATION_NAME = "AutoInjectM
|
|
|
12
12
|
* Lazy loads the auto inject feedback button integration if it is not already loaded.
|
|
13
13
|
*/
|
|
14
14
|
export declare function lazyLoadAutoInjectFeedbackButtonIntegration(): void;
|
|
15
|
+
export declare const SHAKE_TO_REPORT_INTEGRATION_NAME = "ShakeToReport";
|
|
16
|
+
/**
|
|
17
|
+
* Lazy loads the shake to report integration if it is not already loaded.
|
|
18
|
+
*/
|
|
19
|
+
export declare function lazyLoadShakeToReportIntegration(): void;
|
|
15
20
|
export declare const AUTO_INJECT_SCREENSHOT_BUTTON_INTEGRATION_NAME = "AutoInjectMobileScreenshotButton";
|
|
16
21
|
/**
|
|
17
22
|
* Lazy loads the auto inject screenshot button integration if it is not already loaded.
|
package/ts3.8/dist/js/index.d.ts
CHANGED
|
@@ -7,13 +7,22 @@ export * from './integrations/exports';
|
|
|
7
7
|
export { SDK_NAME, SDK_VERSION } from './version';
|
|
8
8
|
export type { ReactNativeOptions, NativeLogEntry } from './options';
|
|
9
9
|
export { ReactNativeClient } from './client';
|
|
10
|
-
export { init, wrap, nativeCrash, flush, close, withScope, crashedLastRun } from './sdk';
|
|
10
|
+
export { init, wrap, nativeCrash, flush, close, withScope, crashedLastRun, appLoaded } from './sdk';
|
|
11
11
|
export { TouchEventBoundary, withTouchEventBoundary } from './touchevents';
|
|
12
12
|
export { reactNativeTracingIntegration, getCurrentReactNativeTracingIntegration, getReactNativeTracingIntegration, reactNavigationIntegration, reactNativeNavigationIntegration, sentryTraceGesture, TimeToInitialDisplay, TimeToFullDisplay, startTimeToInitialDisplaySpan, startTimeToFullDisplaySpan, startIdleNavigationSpan, startIdleSpan, getDefaultIdleNavigationSpanOptions, createTimeToFullDisplay, createTimeToInitialDisplay, wrapExpoRouter, wrapExpoImage, wrapExpoAsset, } from './tracing';
|
|
13
13
|
export type { TimeToDisplayProps, ExpoRouter, ExpoImage, ExpoAsset } from './tracing';
|
|
14
14
|
export { Mask, Unmask } from './replay/CustomMask';
|
|
15
|
+
/** @deprecated The `FeedbackButton` component will be removed in a future major version. */
|
|
15
16
|
export { FeedbackButton } from './feedback/FeedbackButton';
|
|
16
|
-
export {
|
|
17
|
-
export {
|
|
17
|
+
export { FeedbackForm } from './feedback/FeedbackForm';
|
|
18
|
+
export { showFeedbackForm, enableFeedbackOnShake, disableFeedbackOnShake } from './feedback/FeedbackFormManager';
|
|
19
|
+
/** @deprecated `showFeedbackButton` will be removed in a future major version. */
|
|
20
|
+
export { showFeedbackButton } from './feedback/FeedbackFormManager';
|
|
21
|
+
/** @deprecated `hideFeedbackButton` will be removed in a future major version. */
|
|
22
|
+
export { hideFeedbackButton } from './feedback/FeedbackFormManager';
|
|
23
|
+
/** @deprecated Use `FeedbackForm` instead. */
|
|
24
|
+
export { FeedbackForm as FeedbackWidget } from './feedback/FeedbackForm';
|
|
25
|
+
/** @deprecated Use `showFeedbackForm` instead. */
|
|
26
|
+
export { showFeedbackForm as showFeedbackWidget } from './feedback/FeedbackFormManager';
|
|
18
27
|
export { getDataFromUri } from './wrapper';
|
|
19
28
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -105,7 +105,7 @@ export interface BaseReactNativeOptions {
|
|
|
105
105
|
enableWatchdogTerminationTracking?: boolean;
|
|
106
106
|
/**
|
|
107
107
|
* Set data to the inital scope
|
|
108
|
-
* @deprecated Use `Sentry.
|
|
108
|
+
* @deprecated Use `Sentry.getGlobalScope().setTag(...)`, `Sentry.getGlobalScope().setUser(...)`, etc. instead.
|
|
109
109
|
*/
|
|
110
110
|
initialScope?: CaptureContext;
|
|
111
111
|
/**
|
|
@@ -23,7 +23,7 @@ export declare const withSentryPlayground: <P extends object>(Component: React.C
|
|
|
23
23
|
organizationSlug?: string;
|
|
24
24
|
}) => React.ComponentType<P>;
|
|
25
25
|
export declare const SentryPlayground: ({ projectId, organizationSlug, }: {
|
|
26
|
-
projectId?: string
|
|
27
|
-
organizationSlug?: string
|
|
26
|
+
projectId?: string;
|
|
27
|
+
organizationSlug?: string;
|
|
28
28
|
}) => React.ReactElement;
|
|
29
29
|
//# sourceMappingURL=modal.d.ts.map
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
export declare const defaultDarkStyles: {
|
|
2
|
+
welcomeText: {
|
|
3
|
+
color: string;
|
|
4
|
+
fontSize: number;
|
|
5
|
+
fontWeight: "bold";
|
|
6
|
+
};
|
|
7
|
+
background: {
|
|
8
|
+
flex: number;
|
|
9
|
+
backgroundColor: string;
|
|
10
|
+
width: "100%";
|
|
11
|
+
minHeight: "100%";
|
|
12
|
+
alignItems: "center";
|
|
13
|
+
justifyContent: "center";
|
|
14
|
+
};
|
|
15
|
+
container: {
|
|
16
|
+
flex: number;
|
|
17
|
+
flexDirection: "column";
|
|
18
|
+
padding: number;
|
|
19
|
+
marginTop: number;
|
|
20
|
+
width: "100%";
|
|
21
|
+
alignItems: "center";
|
|
22
|
+
justifyContent: "space-evenly";
|
|
23
|
+
};
|
|
24
|
+
buttonContainer: {
|
|
25
|
+
flexDirection: "row";
|
|
26
|
+
marginTop: number;
|
|
27
|
+
};
|
|
28
|
+
listContainer: {
|
|
29
|
+
backgroundColor: string;
|
|
30
|
+
width: "100%";
|
|
31
|
+
flexDirection: "column";
|
|
32
|
+
marginTop: number;
|
|
33
|
+
borderColor: string;
|
|
34
|
+
borderWidth: number;
|
|
35
|
+
borderRadius: number;
|
|
36
|
+
};
|
|
37
|
+
rowTitle: {
|
|
38
|
+
color: string;
|
|
39
|
+
fontSize: number;
|
|
40
|
+
fontWeight: "bold";
|
|
41
|
+
textAlign: "left";
|
|
42
|
+
fontFamily: string;
|
|
43
|
+
};
|
|
44
|
+
rowContainer: {
|
|
45
|
+
overflow: "hidden";
|
|
46
|
+
flexDirection: "row";
|
|
47
|
+
justifyContent: "space-between";
|
|
48
|
+
paddingTop: number;
|
|
49
|
+
paddingBottom: number;
|
|
50
|
+
paddingHorizontal: number;
|
|
51
|
+
borderColor: string;
|
|
52
|
+
borderBottomWidth: number;
|
|
53
|
+
};
|
|
54
|
+
lastRowContainer: {
|
|
55
|
+
borderBottomWidth: number;
|
|
56
|
+
};
|
|
57
|
+
buttonCommon: {
|
|
58
|
+
borderRadius: number;
|
|
59
|
+
};
|
|
60
|
+
buttonBottomLayer: {
|
|
61
|
+
backgroundColor: string;
|
|
62
|
+
};
|
|
63
|
+
buttonMainContainer: {
|
|
64
|
+
paddingVertical: number;
|
|
65
|
+
paddingHorizontal: number;
|
|
66
|
+
backgroundColor: string;
|
|
67
|
+
transform: {
|
|
68
|
+
translateY: number;
|
|
69
|
+
}[];
|
|
70
|
+
borderWidth: number;
|
|
71
|
+
borderColor: string;
|
|
72
|
+
};
|
|
73
|
+
buttonSecondaryContainer: {
|
|
74
|
+
backgroundColor: string;
|
|
75
|
+
};
|
|
76
|
+
buttonSecondaryBottomLayer: {};
|
|
77
|
+
buttonSecondaryText: {};
|
|
78
|
+
buttonMainContainerPressed: {
|
|
79
|
+
transform: {
|
|
80
|
+
translateY: number;
|
|
81
|
+
}[];
|
|
82
|
+
};
|
|
83
|
+
buttonText: {
|
|
84
|
+
color: string;
|
|
85
|
+
fontSize: number;
|
|
86
|
+
fontWeight: "bold";
|
|
87
|
+
textAlign: "center";
|
|
88
|
+
};
|
|
89
|
+
buttonDisabledText: {
|
|
90
|
+
color: string;
|
|
91
|
+
};
|
|
92
|
+
buttonDisabledContainer: {
|
|
93
|
+
transform: {
|
|
94
|
+
translateY: number;
|
|
95
|
+
}[];
|
|
96
|
+
backgroundColor: string;
|
|
97
|
+
};
|
|
98
|
+
};
|
|
99
|
+
export declare const lightStyles: typeof defaultDarkStyles;
|
|
100
|
+
//# sourceMappingURL=modal.styles.d.ts.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import type { HostComponent, ViewProps } from 'react-native';
|
|
2
|
+
import * as React from 'react';
|
|
3
3
|
declare const MaskFallback: (viewProps: ViewProps) => React.ReactElement;
|
|
4
4
|
declare const UnmaskFallback: (viewProps: ViewProps) => React.ReactElement;
|
|
5
5
|
declare const Mask: HostComponent<ViewProps> | React.ComponentType<ViewProps>;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import type { ViewProps } from 'react-native';
|
|
2
|
+
import * as React from 'react';
|
|
3
3
|
declare const Mask: (props: ViewProps) => React.ReactElement;
|
|
4
4
|
declare const Unmask: (props: ViewProps) => React.ReactElement;
|
|
5
5
|
export { Mask, Unmask };
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/// <reference types="react-native" />
|
|
2
1
|
/** Convert a Content-Length header to number/undefined. */
|
|
3
2
|
export declare function parseContentLengthHeader(header: string | null | undefined): number | undefined;
|
|
4
3
|
export type RequestBody = null | Blob | FormData | URLSearchParams | string | ArrayBuffer | undefined;
|
package/ts3.8/dist/js/sdk.d.ts
CHANGED
|
@@ -14,6 +14,27 @@ export declare function wrap<P extends Record<string, unknown>>(RootComponent: R
|
|
|
14
14
|
* Use this only for testing purposes.
|
|
15
15
|
*/
|
|
16
16
|
export declare function nativeCrash(): void;
|
|
17
|
+
/**
|
|
18
|
+
* Signals that the application has finished loading and is ready for user interaction.
|
|
19
|
+
*
|
|
20
|
+
* Call this when your app is truly ready — after async initialization, data loading,
|
|
21
|
+
* splash screen dismissal, auth session restore, etc. This marks the end of the app start span,
|
|
22
|
+
* giving you a more accurate measurement of perceived startup time.
|
|
23
|
+
*
|
|
24
|
+
* If not called, the SDK falls back to the root component mount time (via `Sentry.wrap()`)
|
|
25
|
+
* or JS bundle execution start.
|
|
26
|
+
*
|
|
27
|
+
* @experimental This API is subject to change in future versions.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```ts
|
|
31
|
+
* await loadRemoteConfig();
|
|
32
|
+
* await restoreSession();
|
|
33
|
+
* SplashScreen.hide();
|
|
34
|
+
* Sentry.appLoaded();
|
|
35
|
+
* ```
|
|
36
|
+
*/
|
|
37
|
+
export declare function appLoaded(): void;
|
|
17
38
|
/**
|
|
18
39
|
* Flushes all pending events in the queue to disk.
|
|
19
40
|
* Use this before applying any realtime updates such as code-push or expo updates.
|
|
@@ -2,6 +2,9 @@ import type { Integration } from '@sentry/core';
|
|
|
2
2
|
import type { NativeFramesResponse } from '../../NativeRNSentry';
|
|
3
3
|
export type AppStartIntegration = Integration & {
|
|
4
4
|
captureStandaloneAppStart: () => Promise<void>;
|
|
5
|
+
resetAppStartDataFlushed: () => void;
|
|
6
|
+
cancelDeferredStandaloneCapture: () => void;
|
|
7
|
+
scheduleDeferredStandaloneCapture: () => void;
|
|
5
8
|
};
|
|
6
9
|
interface AppStartEndData {
|
|
7
10
|
timestampMs: number;
|
|
@@ -10,8 +13,17 @@ interface AppStartEndData {
|
|
|
10
13
|
/**
|
|
11
14
|
* Records the application start end.
|
|
12
15
|
* Used automatically by `Sentry.wrap` and `Sentry.ReactNativeProfiler`.
|
|
16
|
+
*
|
|
17
|
+
* @deprecated Use {@link appLoaded} from the public SDK API instead (`Sentry.appLoaded()`).
|
|
13
18
|
*/
|
|
14
19
|
export declare function captureAppStart(): Promise<void>;
|
|
20
|
+
/**
|
|
21
|
+
* Signals that the app has finished loading and is ready for user interaction.
|
|
22
|
+
* Called internally by `appLoaded()` from the public SDK API.
|
|
23
|
+
*
|
|
24
|
+
* @private
|
|
25
|
+
*/
|
|
26
|
+
export declare function _appLoaded(): Promise<void>;
|
|
15
27
|
/**
|
|
16
28
|
* For internal use only.
|
|
17
29
|
*
|
|
@@ -51,6 +63,12 @@ export declare const _updateAppStartEndFrames: (endFrames: NativeFramesResponse
|
|
|
51
63
|
* @private
|
|
52
64
|
*/
|
|
53
65
|
export declare function _clearRootComponentCreationTimestampMs(): void;
|
|
66
|
+
/**
|
|
67
|
+
* For testing purposes only.
|
|
68
|
+
*
|
|
69
|
+
* @private
|
|
70
|
+
*/
|
|
71
|
+
export declare function _clearAppStartEndData(): void;
|
|
54
72
|
/**
|
|
55
73
|
* Adds AppStart spans from the native layer to the transaction event.
|
|
56
74
|
*/
|
|
@@ -61,7 +79,7 @@ export declare const appStartIntegration: ({ standalone, }?: {
|
|
|
61
79
|
*
|
|
62
80
|
* @default false
|
|
63
81
|
*/
|
|
64
|
-
standalone?: boolean
|
|
82
|
+
standalone?: boolean;
|
|
65
83
|
}) => AppStartIntegration;
|
|
66
84
|
export {};
|
|
67
85
|
//# sourceMappingURL=appStart.d.ts.map
|
|
@@ -26,6 +26,6 @@ export declare const stallTrackingIntegration: ({ minimumStallThresholdMs, }?: {
|
|
|
26
26
|
* How long in milliseconds an event loop iteration can be delayed for before being considered a "stall."
|
|
27
27
|
* @default 50
|
|
28
28
|
*/
|
|
29
|
-
minimumStallThresholdMs?: number
|
|
29
|
+
minimumStallThresholdMs?: number;
|
|
30
30
|
}) => Integration;
|
|
31
31
|
//# sourceMappingURL=stalltracking.d.ts.map
|
|
@@ -27,6 +27,9 @@ interface ReactNavigationIntegrationOptions {
|
|
|
27
27
|
* Time to initial display measures the time it takes from
|
|
28
28
|
* navigation dispatch to the render of the first frame of the new screen.
|
|
29
29
|
*
|
|
30
|
+
* Note: Enabling this adds native bridge calls on every navigation
|
|
31
|
+
* which may cause noticeable overhead on low-end devices.
|
|
32
|
+
*
|
|
30
33
|
* @default false
|
|
31
34
|
*/
|
|
32
35
|
enableTimeToInitialDisplay: boolean;
|
|
@@ -16,23 +16,8 @@ export declare const defaultIdleOptions: {
|
|
|
16
16
|
*/
|
|
17
17
|
finalTimeout: number;
|
|
18
18
|
};
|
|
19
|
-
export declare const startIdleNavigationSpan: (startSpanOption: StartSpanOptions, { finalTimeout, idleTimeout, isAppRestart, }?: Partial<{
|
|
20
|
-
|
|
21
|
-
* The time that has to pass without any span being created.
|
|
22
|
-
* If this time is exceeded, the idle span will finish.
|
|
23
|
-
*
|
|
24
|
-
* @default 1_000 (ms)
|
|
25
|
-
*/
|
|
26
|
-
idleTimeout: number;
|
|
27
|
-
/**
|
|
28
|
-
* The max. time an idle span may run.
|
|
29
|
-
* If this time is exceeded, the idle span will finish no matter what.
|
|
30
|
-
*
|
|
31
|
-
* @default 600_000 (ms)
|
|
32
|
-
*/
|
|
33
|
-
finalTimeout: number;
|
|
34
|
-
}> & {
|
|
35
|
-
isAppRestart?: boolean | undefined;
|
|
19
|
+
export declare const startIdleNavigationSpan: (startSpanOption: StartSpanOptions, { finalTimeout, idleTimeout, isAppRestart, }?: Partial<typeof defaultIdleOptions> & {
|
|
20
|
+
isAppRestart?: boolean;
|
|
36
21
|
}) => Span | undefined;
|
|
37
22
|
/**
|
|
38
23
|
* Starts an idle span from `@sentry/core` with React Native application
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { RN_GLOBAL_OBJ } from '../utils/worldwide';
|
|
2
2
|
export declare const useEncodePolyfill: () => void;
|
|
3
|
-
export declare const globalEncodeFactory: (Encoder: EncoderClass) => (text: string) => Uint8Array
|
|
3
|
+
export declare const globalEncodeFactory: (Encoder: EncoderClass) => (text: string) => Uint8Array<ArrayBuffer>;
|
|
4
4
|
type EncoderClass = Required<typeof RN_GLOBAL_OBJ>['TextEncoder'];
|
|
5
5
|
export declare const encodePolyfill: (text: string) => Uint8Array;
|
|
6
6
|
export {};
|
|
@@ -51,6 +51,7 @@ interface SentryNativeWrapper {
|
|
|
51
51
|
fetchNativeLogAttributes(): Promise<NativeDeviceContextsResponse | null>;
|
|
52
52
|
fetchNativeAppStart(): PromiseLike<NativeAppStartResponse | null>;
|
|
53
53
|
fetchNativeFrames(): PromiseLike<NativeFramesResponse | null>;
|
|
54
|
+
fetchNativeFramesDelay(startTimestampSeconds: number, endTimestampSeconds: number): PromiseLike<number | null>;
|
|
54
55
|
fetchNativeSdkInfo(): PromiseLike<Package | null>;
|
|
55
56
|
disableNativeFramesTracking(): void;
|
|
56
57
|
enableNativeFramesTracking(): void;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackWidget.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackWidget.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAoB/B,OAAO,KAAK,EAA2D,mBAAmB,EAAE,mBAAmB,EAAkD,MAAM,wBAAwB,CAAC;AAMhM;;;GAGG;AACH,qBAAa,cAAe,SAAQ,KAAK,CAAC,SAAS,CAAC,mBAAmB,EAAE,mBAAmB,CAAC;IAC3F,OAAc,YAAY,sBAAwB;IAElD,OAAO,CAAC,MAAM,CAAC,WAAW,CAOxB;IAEF,OAAO,CAAC,cAAc,CAAsC;IAE5D,OAAO,CAAC,cAAc,CAAkB;gBAErB,KAAK,EAAE,mBAAmB;IAuB7C;;OAEG;WACW,KAAK,IAAI,IAAI;IAWpB,oBAAoB,EAAE,MAAM,IAAI,CAiErC;IAEK,uBAAuB,EAAE,MAAM,IAAI,CAyExC;IAEF;;OAEG;IACI,iBAAiB,IAAI,IAAI;IAMhC;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAYnC;;OAEG;IACI,MAAM,IAAI,KAAK,CAAC,SAAS;IA8IhC,OAAO,CAAC,sBAAsB,CAkB5B;IAEF,OAAO,CAAC,cAAc,CAEpB;IAEF,OAAO,CAAC,eAAe,CASrB;IAEF,OAAO,CAAC,cAAc,CAErB;IAED,OAAO,CAAC,QAAQ,CAUf;IAED,OAAO,CAAC,kCAAkC,CAOzC;CACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackWidget.js","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackWidget.tsx"],"names":[],"mappings":"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","sourcesContent":["/* eslint-disable max-lines */\nimport type { SendFeedbackParams, User } from '@sentry/core';\nimport { captureFeedback, debug, getCurrentScope, getGlobalScope, getIsolationScope, lastEventId } from '@sentry/core';\nimport * as React from 'react';\nimport type { KeyboardTypeOptions ,\n NativeEventSubscription} from 'react-native';\nimport {\n Appearance,\n Image,\n Keyboard,\n Text,\n TextInput,\n TouchableOpacity,\n TouchableWithoutFeedback,\n View\n} from 'react-native';\nimport { isExpoGo, isWeb, notWeb } from '../utils/environment';\nimport type { Screenshot } from '../wrapper';\nimport { getDataFromUri, NATIVE } from '../wrapper';\nimport { sentryLogo } from './branding';\nimport { defaultConfiguration } from './defaults';\nimport defaultStyles from './FeedbackWidget.styles';\nimport { getTheme } from './FeedbackWidget.theme';\nimport type { FeedbackGeneralConfiguration, FeedbackTextConfiguration, FeedbackWidgetProps, FeedbackWidgetState, FeedbackWidgetStyles, ImagePickerConfiguration } from './FeedbackWidget.types';\nimport { hideFeedbackButton, showScreenshotButton } from './FeedbackWidgetManager';\nimport { lazyLoadFeedbackIntegration } from './lazy';\nimport { getCapturedScreenshot } from './ScreenshotButton';\nimport { base64ToUint8Array, feedbackAlertDialog, isValidEmail } from './utils';\n\n/**\n * @beta\n * Implements a feedback form screen that sends feedback to Sentry using Sentry.captureFeedback.\n */\nexport class FeedbackWidget extends React.Component<FeedbackWidgetProps, FeedbackWidgetState> {\n public static defaultProps = defaultConfiguration;\n\n private static _savedState: Omit<FeedbackWidgetState, 'isVisible'> = {\n name: '',\n email: '',\n description: '',\n filename: undefined,\n attachment: undefined,\n attachmentUri: undefined,\n };\n\n private _themeListener: NativeEventSubscription | undefined;\n\n private _didSubmitForm: boolean = false;\n\n public constructor(props: FeedbackWidgetProps) {\n super(props);\n\n const currentUser = {\n useSentryUser: {\n email: this.props?.useSentryUser?.email || this._getUser()?.email || '',\n name: this.props?.useSentryUser?.name || this._getUser()?.name || '',\n }\n }\n\n this.state = {\n isVisible: true,\n name: FeedbackWidget._savedState.name || currentUser.useSentryUser.name,\n email: FeedbackWidget._savedState.email || currentUser.useSentryUser.email,\n description: FeedbackWidget._savedState.description || '',\n filename: FeedbackWidget._savedState.filename || undefined,\n attachment: FeedbackWidget._savedState.attachment || undefined,\n attachmentUri: FeedbackWidget._savedState.attachmentUri || undefined,\n };\n\n lazyLoadFeedbackIntegration();\n }\n\n /**\n * For testing purposes only.\n */\n public static reset(): void {\n FeedbackWidget._savedState = {\n name: '',\n email: '',\n description: '',\n filename: undefined,\n attachment: undefined,\n attachmentUri: undefined,\n };\n }\n\n public handleFeedbackSubmit: () => void = () => {\n const { name, email, description } = this.state;\n const { onSubmitSuccess, onSubmitError, onFormSubmitted } = this.props;\n const text = this.props;\n\n const trimmedName = name?.trim();\n const trimmedEmail = email?.trim();\n const trimmedDescription = description?.trim();\n\n if (\n (this.props.isNameRequired && !trimmedName) ||\n (this.props.isEmailRequired && !trimmedEmail) ||\n !trimmedDescription\n ) {\n feedbackAlertDialog(text.errorTitle, text.formError);\n return;\n }\n\n if (\n this.props.shouldValidateEmail &&\n (this.props.isEmailRequired || trimmedEmail.length > 0) &&\n !isValidEmail(trimmedEmail)\n ) {\n feedbackAlertDialog(text.errorTitle, text.emailError);\n return;\n }\n\n const attachments =\n this.state.filename && this.state.attachment\n ? [\n {\n filename: this.state.filename,\n data: this.state.attachment,\n },\n ]\n : undefined;\n\n const eventId = lastEventId();\n const userFeedback: SendFeedbackParams = {\n message: trimmedDescription,\n name: trimmedName,\n email: trimmedEmail,\n associatedEventId: eventId,\n };\n\n try {\n if (!onFormSubmitted) {\n this.setState({ isVisible: false });\n }\n captureFeedback(userFeedback, attachments ? { attachments } : undefined);\n onSubmitSuccess({\n name: trimmedName,\n email: trimmedEmail,\n message: trimmedDescription,\n attachments: attachments,\n });\n feedbackAlertDialog(text.successMessageText, '');\n onFormSubmitted();\n this._didSubmitForm = true;\n } catch (error) {\n const errorString = `Feedback form submission failed: ${error}`;\n onSubmitError(new Error(errorString));\n feedbackAlertDialog(text.errorTitle, text.genericError);\n debug.error(`Feedback form submission failed: ${error}`);\n }\n };\n\n public onScreenshotButtonPress: () => void = async () => {\n if (!this._hasScreenshot()) {\n const { imagePicker } = this.props;\n if (imagePicker) {\n const launchImageLibrary = imagePicker.launchImageLibraryAsync\n ? // expo-image-picker library is available\n () => imagePicker.launchImageLibraryAsync?.({ mediaTypes: ['images'], base64: isWeb() })\n : // react-native-image-picker library is available\n imagePicker.launchImageLibrary\n ? () => imagePicker.launchImageLibrary?.({ mediaType: 'photo', includeBase64: isWeb() })\n : null;\n if (!launchImageLibrary) {\n debug.warn('No compatible image picker library found. Please provide a valid image picker library.');\n if (__DEV__) {\n feedbackAlertDialog(\n 'Development note',\n 'No compatible image picker library found. Please provide a compatible version of `expo-image-picker` or `react-native-image-picker`.',\n );\n }\n return;\n }\n\n const result = await launchImageLibrary();\n if (result?.assets && result.assets.length > 0) {\n if (isWeb()) {\n const filename = result.assets[0]?.fileName;\n const imageUri = result.assets[0]?.uri;\n const base64 = result.assets[0]?.base64;\n const data = base64 ? base64ToUint8Array(base64) : undefined;\n if (data) {\n this.setState({ filename, attachment: data, attachmentUri: imageUri });\n } else {\n debug.error('Failed to read image data on the web');\n }\n } else {\n const filename = result.assets[0]?.fileName;\n const imageUri = result.assets[0]?.uri;\n imageUri &&\n getDataFromUri(imageUri)\n .then((data) => {\n if (data != null) {\n this.setState({ filename, attachment: data, attachmentUri: imageUri });\n } else {\n this._showImageRetrievalDevelopmentNote();\n debug.error('Failed to read image data from uri:', imageUri);\n }\n })\n .catch((error) => {\n this._showImageRetrievalDevelopmentNote();\n debug.error('Failed to read image data from uri:', imageUri, 'error: ', error);\n });\n }\n }\n } else {\n // Defaulting to the onAddScreenshot callback\n const { onAddScreenshot } = { ...defaultConfiguration, ...this.props };\n onAddScreenshot((uri: string) => {\n getDataFromUri(uri).then((data) => {\n if (data != null) {\n this.setState({ filename: 'feedback_screenshot', attachment: data, attachmentUri: uri });\n } else {\n this._showImageRetrievalDevelopmentNote();\n debug.error('Failed to read image data from uri:', uri);\n }\n }).catch((error) => {\n this._showImageRetrievalDevelopmentNote();\n debug.error('Failed to read image data from uri:', uri, 'error: ', error);\n });\n });\n }\n } else {\n this.setState({ filename: undefined, attachment: undefined, attachmentUri: undefined });\n }\n };\n\n /**\n * Add a listener to the theme change event.\n */\n public componentDidMount(): void {\n this._themeListener = Appearance.addChangeListener(() => {\n this.forceUpdate();\n });\n }\n\n /**\n * Save the state before unmounting the component and remove the theme listener.\n */\n public componentWillUnmount(): void {\n if (this._didSubmitForm) {\n this._clearFormState();\n this._didSubmitForm = false;\n } else {\n this._saveFormState();\n }\n if (this._themeListener) {\n this._themeListener.remove();\n }\n }\n\n /**\n * Renders the feedback form screen.\n */\n public render(): React.ReactNode {\n const theme = getTheme();\n const { name, email, description } = this.state;\n const { onFormClose } = this.props;\n const config: FeedbackGeneralConfiguration = this.props;\n const imagePickerConfiguration: ImagePickerConfiguration = this.props;\n const text: FeedbackTextConfiguration = this.props;\n const _defaultStyles = defaultStyles(theme);\n const _propStyles = this.props.styles || {};\n const autoCorrect = config.autoCorrect !== false;\n const spellCheck = config.spellCheck !== false;\n const styles = (Object.keys(_defaultStyles) as Array<keyof FeedbackWidgetStyles>).reduce<FeedbackWidgetStyles>(\n (merged, key) => {\n (merged as Record<string, unknown>)[key] = { ...(_defaultStyles[key] as object), ...(_propStyles[key] as object) };\n return merged;\n },\n {},\n );\n const onCancel = (): void => {\n if (onFormClose) {\n onFormClose();\n } else {\n this.setState({ isVisible: false });\n }\n };\n\n if (!this.state.isVisible) {\n return null;\n }\n\n const screenshot = getCapturedScreenshot();\n if (screenshot === 'ErrorCapturingScreenshot') {\n setTimeout(async () => {\n feedbackAlertDialog(text.errorTitle, text.captureScreenshotError);\n }, 100);\n } else if (screenshot) {\n this._setCapturedScreenshot(screenshot);\n }\n\n return (\n <TouchableWithoutFeedback\n onPress={notWeb() ? Keyboard.dismiss : undefined}\n accessible={false}\n accessibilityElementsHidden={false}\n >\n <View style={styles.container}>\n <View style={styles.titleContainer}>\n <Text style={styles.title} testID=\"sentry-feedback-form-title\">\n {text.formTitle}\n </Text>\n {config.showBranding && (\n <Image source={{ uri: sentryLogo }} style={styles.sentryLogo} testID=\"sentry-logo\" />\n )}\n </View>\n\n {config.showName && (\n <>\n <Text style={styles.label}>\n {text.nameLabel}\n {config.isNameRequired && ` ${text.isRequiredLabel}`}\n </Text>\n <TextInput\n style={styles.input}\n testID=\"sentry-feedback-name-input\"\n placeholder={text.namePlaceholder}\n value={name}\n onChangeText={value => this.setState({ name: value })}\n autoCorrect={false}\n spellCheck={false}\n />\n </>\n )}\n\n {config.showEmail && (\n <>\n <Text style={styles.label}>\n {text.emailLabel}\n {config.isEmailRequired && ` ${text.isRequiredLabel}`}\n </Text>\n <TextInput\n style={styles.input}\n testID=\"sentry-feedback-email-input\"\n placeholder={text.emailPlaceholder}\n keyboardType={'email-address' as KeyboardTypeOptions}\n autoCapitalize=\"none\"\n autoCorrect={false}\n spellCheck={false}\n value={email}\n onChangeText={value => this.setState({ email: value })}\n />\n </>\n )}\n\n <Text style={styles.label}>\n {text.messageLabel}\n {` ${text.isRequiredLabel}`}\n </Text>\n <TextInput\n style={[styles.input, styles.textArea]}\n testID=\"sentry-feedback-message-input\"\n placeholder={text.messagePlaceholder}\n value={description}\n onChangeText={value => this.setState({ description: value })}\n multiline\n autoCorrect={autoCorrect}\n spellCheck={spellCheck}\n />\n {(config.enableScreenshot || imagePickerConfiguration.imagePicker || this._hasScreenshot()) && (\n <View style={styles.screenshotContainer}>\n {this.state.attachmentUri && (\n <Image source={{ uri: this.state.attachmentUri }} style={styles.screenshotThumbnail} />\n )}\n <TouchableOpacity style={styles.screenshotButton} onPress={this.onScreenshotButtonPress}>\n <Text style={styles.screenshotText}>\n {!this._hasScreenshot() ? text.addScreenshotButtonLabel : text.removeScreenshotButtonLabel}\n </Text>\n </TouchableOpacity>\n </View>\n )}\n {notWeb() && config.enableTakeScreenshot && !this.state.attachmentUri && (\n <TouchableOpacity style={styles.takeScreenshotButton} onPress={() => {\n hideFeedbackButton();\n onCancel();\n showScreenshotButton();\n }}>\n <Text style={styles.takeScreenshotText} testID='sentry-feedback-take-screenshot-button'>{text.captureScreenshotButtonLabel}</Text>\n </TouchableOpacity>\n )}\n <TouchableOpacity style={styles.submitButton} onPress={this.handleFeedbackSubmit}>\n <Text style={styles.submitText} testID=\"sentry-feedback-submit-button\">\n {text.submitButtonLabel}\n </Text>\n </TouchableOpacity>\n\n <TouchableOpacity style={styles.cancelButton} onPress={onCancel}>\n <Text style={styles.cancelText}>{text.cancelButtonLabel}</Text>\n </TouchableOpacity>\n </View>\n </TouchableWithoutFeedback>\n );\n }\n\n private _setCapturedScreenshot = (screenshot: Screenshot): void => {\n if (screenshot.data != null) {\n debug.log('Setting captured screenshot:', screenshot.filename);\n NATIVE.encodeToBase64(screenshot.data)\n .then(base64String => {\n if (base64String != null) {\n const dataUri = `data:${screenshot.contentType};base64,${base64String}`;\n this.setState({ filename: screenshot.filename, attachment: screenshot.data, attachmentUri: dataUri });\n } else {\n debug.error('Failed to read image data from:', screenshot.filename);\n }\n })\n .catch(error => {\n debug.error('Failed to read image data from:', screenshot.filename, 'error: ', error);\n });\n } else {\n debug.error('Failed to read image data from:', screenshot.filename);\n }\n };\n\n private _saveFormState = (): void => {\n FeedbackWidget._savedState = { ...this.state };\n };\n\n private _clearFormState = (): void => {\n FeedbackWidget._savedState = {\n name: '',\n email: '',\n description: '',\n filename: undefined,\n attachment: undefined,\n attachmentUri: undefined,\n };\n };\n\n private _hasScreenshot = (): boolean => {\n return this.state.filename !== undefined && this.state.attachment !== undefined && this.state.attachmentUri !== undefined;\n }\n\n private _getUser = (): User | undefined => {\n const currentUser = getCurrentScope().getUser();\n if (currentUser) {\n return currentUser;\n }\n const isolationUser = getIsolationScope().getUser();\n if (isolationUser) {\n return isolationUser;\n }\n return getGlobalScope().getUser();\n }\n\n private _showImageRetrievalDevelopmentNote = (): void => {\n if (isExpoGo()) {\n feedbackAlertDialog(\n 'Development note',\n 'The feedback widget cannot retrieve image data in Expo Go. Please build your app to test this functionality.',\n );\n }\n }\n}\n"]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { ViewStyle } from 'react-native';
|
|
2
|
-
import type { FeedbackWidgetTheme } from './FeedbackWidget.theme';
|
|
3
|
-
import type { FeedbackButtonStyles, FeedbackWidgetStyles } from './FeedbackWidget.types';
|
|
4
|
-
declare const defaultStyles: (theme: FeedbackWidgetTheme) => FeedbackWidgetStyles;
|
|
5
|
-
export declare const defaultButtonStyles: (theme: FeedbackWidgetTheme) => FeedbackButtonStyles;
|
|
6
|
-
export declare const defaultScreenshotButtonStyles: (theme: FeedbackWidgetTheme) => FeedbackButtonStyles;
|
|
7
|
-
export declare const modalWrapper: ViewStyle;
|
|
8
|
-
export declare const modalSheetContainer: (theme: FeedbackWidgetTheme) => ViewStyle;
|
|
9
|
-
export declare const topSpacer: ViewStyle;
|
|
10
|
-
export default defaultStyles;
|
|
11
|
-
//# sourceMappingURL=FeedbackWidget.styles.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackWidget.styles.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackWidget.styles.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAClE,OAAO,KAAK,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEzF,QAAA,MAAM,aAAa,UAAW,mBAAmB,KAAG,oBA2GnD,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAAW,mBAAmB,KAAG,oBAgChE,CAAC;AAEF,eAAO,MAAM,6BAA6B,UAlCC,mBAAmB,KAAG,oBAkCD,CAAC;AAEjE,eAAO,MAAM,YAAY,EAAE,SAM1B,CAAC;AAEF,eAAO,MAAM,mBAAmB,UAAW,mBAAmB,KAAG,SAchE,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SAEvB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackWidget.styles.js","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackWidget.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ViewStyle } from 'react-native';\nimport type { FeedbackWidgetTheme } from './FeedbackWidget.theme';\nimport type { FeedbackButtonStyles, FeedbackWidgetStyles } from './FeedbackWidget.types';\n\nconst defaultStyles = (theme: FeedbackWidgetTheme): FeedbackWidgetStyles => {\n return {\n container: {\n flex: 1,\n padding: 20,\n backgroundColor: theme.background,\n },\n title: {\n fontSize: 24,\n fontWeight: 'bold',\n marginBottom: 20,\n textAlign: 'left',\n flex: 1,\n color: theme.foreground,\n },\n label: {\n marginBottom: 4,\n fontSize: 16,\n color: theme.foreground,\n },\n input: {\n height: 50,\n borderColor: theme.border,\n borderWidth: 1,\n borderRadius: 5,\n paddingHorizontal: 10,\n marginBottom: 15,\n fontSize: 16,\n color: theme.foreground,\n },\n textArea: {\n height: 100,\n textAlignVertical: 'top',\n color: theme.foreground,\n },\n screenshotButton: {\n backgroundColor: theme.background,\n padding: 15,\n borderRadius: 5,\n alignItems: 'center',\n flex: 1,\n borderWidth: 1,\n borderColor: theme.border,\n },\n screenshotContainer: {\n flexDirection: 'row',\n alignItems: 'center',\n width: '100%',\n marginBottom: 20,\n },\n screenshotThumbnail: {\n width: 50,\n height: 50,\n borderRadius: 5,\n marginRight: 10,\n },\n screenshotText: {\n color: theme.foreground,\n fontSize: 16,\n },\n takeScreenshotButton: {\n backgroundColor: theme.background,\n padding: 15,\n borderRadius: 5,\n alignItems: 'center',\n borderWidth: 1,\n borderColor: theme.border,\n marginTop: -10,\n marginBottom: 20,\n },\n takeScreenshotText: {\n color: theme.foreground,\n fontSize: 16,\n },\n submitButton: {\n backgroundColor: theme.accentBackground,\n paddingVertical: 15,\n borderRadius: 5,\n alignItems: 'center',\n marginBottom: 10,\n },\n submitText: {\n color: theme.accentForeground,\n fontSize: 18,\n },\n cancelButton: {\n backgroundColor: theme.background,\n padding: 15,\n borderRadius: 5,\n alignItems: 'center',\n borderWidth: 1,\n borderColor: theme.border,\n },\n cancelText: {\n color: theme.foreground,\n fontSize: 16,\n },\n titleContainer: {\n flexDirection: 'row',\n width: '100%',\n },\n sentryLogo: {\n width: 40,\n height: 40,\n tintColor: theme.sentryLogo,\n },\n };\n};\n\nexport const defaultButtonStyles = (theme: FeedbackWidgetTheme): FeedbackButtonStyles => {\n return {\n triggerButton: {\n position: 'absolute',\n bottom: 30,\n right: 30,\n backgroundColor: theme.background,\n padding: 15,\n borderRadius: 40,\n justifyContent: 'center',\n alignItems: 'center',\n elevation: 5,\n shadowColor: theme.border,\n shadowOffset: { width: 1, height: 2 },\n shadowOpacity: 0.5,\n shadowRadius: 3,\n flexDirection: 'row',\n borderWidth: 1,\n borderColor: theme.border,\n },\n triggerText: {\n color: theme.foreground,\n fontSize: 18,\n },\n triggerIcon: {\n width: 24,\n height: 24,\n padding: 2,\n marginEnd: 6,\n tintColor: theme.sentryLogo,\n },\n };\n};\n\nexport const defaultScreenshotButtonStyles = defaultButtonStyles;\n\nexport const modalWrapper: ViewStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n bottom: 0,\n};\n\nexport const modalSheetContainer = (theme: FeedbackWidgetTheme): ViewStyle => {\n return {\n backgroundColor: theme.background,\n borderTopLeftRadius: 16,\n borderTopRightRadius: 16,\n overflow: 'hidden',\n alignSelf: 'stretch',\n shadowColor: '#000',\n shadowOffset: { width: 0, height: -3 },\n shadowOpacity: 0.1,\n shadowRadius: 4,\n elevation: 5,\n flex: 1,\n };\n};\n\nexport const topSpacer: ViewStyle = {\n height: 64, // magic number\n};\n\nexport default defaultStyles;\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackWidget.theme.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackWidget.theme.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,QAAQ,IAAI,mBAAmB,CAM9C;AAED,MAAM,WAAW,mBAAmB;IAClC;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,UAAU,EAAE,MAAM,CAAC;IAEnB;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;OAEG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;OAEG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;OAEG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,eAAO,MAAM,UAAU,EAAE,mBAQxB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,mBAQvB,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackWidget.theme.js","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackWidget.theme.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAE5F;;GAEG;AACH,MAAM,UAAU,QAAQ;IACtB,MAAM,SAAS,GAAG,cAAc,EAAE,CAAC;IACnC,MAAM,WAAW,GAAG,SAAS,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IACrF,MAAM,UAAU,mCAAQ,UAAU,GAAK,qBAAqB,EAAE,CAAE,CAAC;IACjE,MAAM,SAAS,mCAAQ,SAAS,GAAK,oBAAoB,EAAE,CAAE,CAAC;IAC9D,OAAO,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;AACzD,CAAC;AAuCD,MAAM,CAAC,MAAM,UAAU,GAAwB;IAC7C,gBAAgB,EAAE,sBAAsB;IACxC,gBAAgB,EAAE,SAAS;IAC3B,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,wBAAwB;IAChC,YAAY,EAAE,qBAAqB;IACnC,UAAU,EAAE,qBAAqB;CAClC,CAAC;AAEF,MAAM,CAAC,MAAM,SAAS,GAAwB;IAC5C,gBAAgB,EAAE,sBAAsB;IACxC,gBAAgB,EAAE,SAAS;IAC3B,UAAU,EAAE,SAAS;IACrB,UAAU,EAAE,SAAS;IACrB,MAAM,EAAE,2BAA2B;IACnC,YAAY,EAAE,SAAS;IACvB,UAAU,EAAE,SAAS;CACtB,CAAC","sourcesContent":["import { Appearance } from 'react-native';\nimport { getColorScheme, getFeedbackDarkTheme, getFeedbackLightTheme } from './integration';\n\n/**\n * Get the theme for the feedback widget based on the current color scheme\n */\nexport function getTheme(): FeedbackWidgetTheme {\n const userTheme = getColorScheme();\n const colorScheme = userTheme === 'system' ? Appearance.getColorScheme() : userTheme;\n const lightTheme = { ...LightTheme, ...getFeedbackLightTheme() };\n const darkTheme = { ...DarkTheme, ...getFeedbackDarkTheme() };\n return colorScheme === 'dark' ? darkTheme : lightTheme;\n}\n\nexport interface FeedbackWidgetTheme {\n /**\n * Background color for surfaces\n */\n background: string;\n\n /**\n * Foreground color (i.e. text color)\n */\n foreground: string;\n\n /**\n * Foreground color for accented elements\n */\n accentForeground?: string;\n\n /**\n * Background color for accented elements\n */\n accentBackground?: string;\n\n /**\n * Border color\n */\n border?: string;\n\n /**\n * Color for feedback icon\n */\n feedbackIcon?: string;\n\n /**\n * Color for Sentry logo\n */\n sentryLogo?: string;\n}\n\nexport const LightTheme: FeedbackWidgetTheme = {\n accentBackground: 'rgba(88, 74, 192, 1)',\n accentForeground: '#ffffff',\n foreground: '#2b2233',\n background: '#ffffff',\n border: 'rgba(41, 35, 47, 0.13)',\n feedbackIcon: 'rgba(54, 45, 89, 1)',\n sentryLogo: 'rgba(54, 45, 89, 1)',\n};\n\nexport const DarkTheme: FeedbackWidgetTheme = {\n accentBackground: 'rgba(88, 74, 192, 1)',\n accentForeground: '#ffffff',\n foreground: '#ebe6ef',\n background: '#29232f',\n border: 'rgba(235, 230, 239, 0.15)',\n feedbackIcon: '#ffffff',\n sentryLogo: '#ffffff',\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FeedbackWidget.types.d.ts","sourceRoot":"","sources":["../../../src/js/feedback/FeedbackWidget.types.ts"],"names":[],"mappings":"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"}
|