diff --git a/CHANGELOG.md b/CHANGELOG.md index 9215e70b39..976cee497e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,32 @@ > make sure you follow our [migration guide](https://docs.sentry.io/platforms/react-native/migration/) first. +## Unreleased + +### Important Changes + +- The `_experiments.enableLogs` and `_experiments.beforeSendLog` options were removed, use the top-level `enableLogs` and `beforeSendLog` options instead. ([#5122](https://github.com/getsentry/sentry-react-native/pull/5122)) + +```js +// before +Sentry.init({ + _experiments: { + enableLogs: true, + beforeSendLog: log => { + return log; + }, + }, +}); + +// after +Sentry.init({ + enableLogs: true, + beforeSendLog: log => { + return log; + }, +}); +``` + ## 7.0.0-rc.2 ### Important Changes diff --git a/packages/core/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java b/packages/core/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java index c1da1b9f07..8ae3f204b8 100644 --- a/packages/core/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java +++ b/packages/core/android/src/main/java/io/sentry/react/RNSentryModuleImpl.java @@ -283,11 +283,8 @@ protected void getSentryAndroidOptions( if (rnOptions.hasKey("enableNdk")) { options.setEnableNdk(rnOptions.getBoolean("enableNdk")); } - if (rnOptions.hasKey("_experiments")) { - ReadableMap experiments = rnOptions.getMap("_experiments"); - if (experiments.hasKey("enableLogs")) { - options.getLogs().setEnabled(experiments.getBoolean("enableLogs")); - } + if (rnOptions.hasKey("enableLogs")) { + options.getLogs().setEnabled(rnOptions.getBoolean("enableLogs")); } if (rnOptions.hasKey("spotlight")) { if (rnOptions.getType("spotlight") == ReadableType.Boolean) { diff --git a/packages/core/src/js/client.ts b/packages/core/src/js/client.ts index 9f0b918d5e..fb8e8eea40 100644 --- a/packages/core/src/js/client.ts +++ b/packages/core/src/js/client.ts @@ -64,7 +64,7 @@ export class ReactNativeClient extends Client { this.on('beforeSendSession', addAutoIpAddressToSession); } - if (options._experiments?.enableLogs) { + if (options.enableLogs) { this.on('flush', () => { _INTERNAL_flushLogsBuffer(this); }); diff --git a/packages/core/src/js/integrations/default.ts b/packages/core/src/js/integrations/default.ts index 2cc6fafd30..53b7c49e9f 100644 --- a/packages/core/src/js/integrations/default.ts +++ b/packages/core/src/js/integrations/default.ts @@ -85,7 +85,7 @@ export function getDefaultIntegrations(options: ReactNativeClientOptions): Integ if (options.enableNative) { integrations.push(deviceContextIntegration()); integrations.push(modulesLoaderIntegration()); - if (options._experiments?.enableLogs) { + if (options.enableLogs) { integrations.push(logEnricherIntegration()); } if (options.attachScreenshot) { diff --git a/packages/core/src/js/options.ts b/packages/core/src/js/options.ts index 028abba45c..df830dfdd2 100644 --- a/packages/core/src/js/options.ts +++ b/packages/core/src/js/options.ts @@ -10,7 +10,7 @@ type ProfilerProps = React.ComponentProps; type BrowserTransportOptions = Parameters[0]; type BrowserExperiments = NonNullable; -type SharedExperimentsSubset = Pick; +type SharedExperimentsSubset = BrowserExperiments; export interface BaseReactNativeOptions { /** diff --git a/samples/react-native/src/App.tsx b/samples/react-native/src/App.tsx index ec67d79385..25c44a6926 100644 --- a/samples/react-native/src/App.tsx +++ b/samples/react-native/src/App.tsx @@ -82,12 +82,12 @@ Sentry.init({ ); }, _experiments: { - enableLogs: true, - beforeSendLog: (log) => { - return log; - }, enableUnhandledCPPExceptionsV2: true, }, + enableLogs: true, + beforeSendLog: (log) => { + return log; + }, enableUserInteractionTracing: true, integrations(integrations) { integrations.push(