From 210b1353911fd09adeec273d4f92363fd093bbd6 Mon Sep 17 00:00:00 2001 From: Dmytro Date: Wed, 27 Aug 2025 10:38:11 +0200 Subject: [PATCH 1/3] add `cleanUserDataOnError` implementation --- .../com/sourcepoint/reactnativecmp/ReactNativeCmpModule.kt | 4 ++++ ios/RNSourcepointCmp.swift | 4 ++++ ios/ReactNativeCmp.mm | 5 +++++ src/NativeReactNativeCmp.ts | 1 + src/index.tsx | 4 ++++ 5 files changed, 18 insertions(+) diff --git a/android/src/main/java/com/sourcepoint/reactnativecmp/ReactNativeCmpModule.kt b/android/src/main/java/com/sourcepoint/reactnativecmp/ReactNativeCmpModule.kt index 0a256a6..8998edd 100644 --- a/android/src/main/java/com/sourcepoint/reactnativecmp/ReactNativeCmpModule.kt +++ b/android/src/main/java/com/sourcepoint/reactnativecmp/ReactNativeCmpModule.kt @@ -86,6 +86,10 @@ class ReactNativeCmpModule(reactContext: ReactApplicationContext) : NativeReactN } } + override fun setCleanUserDataOnError(value: Boolean) { + spConsentLib?.cleanUserDataOnError = value + } + override fun clearLocalData() { clearAllData(reactApplicationContext) } diff --git a/ios/RNSourcepointCmp.swift b/ios/RNSourcepointCmp.swift index c74187a..950ddc5 100644 --- a/ios/RNSourcepointCmp.swift +++ b/ios/RNSourcepointCmp.swift @@ -72,6 +72,10 @@ import React public func loadMessage(_ params: RNSPLoadMessageParams) { consentManager?.loadMessage(forAuthId: params.authId, pubData: nil) } + + public func setCleanUserDataOnError(_ value: Bool) { + consentManager?.cleanUserDataOnError = value + } // TODO: fix an issue with `SPConsentManager.clearAllData` returning in-memory data // SPConsentManager.clearAllData() clears all data from UserDefaults, but SPCoordinator diff --git a/ios/ReactNativeCmp.mm b/ios/ReactNativeCmp.mm index 9e99601..352c135 100644 --- a/ios/ReactNativeCmp.mm +++ b/ios/ReactNativeCmp.mm @@ -132,6 +132,11 @@ - (void)rejectAll:(nonnull NSString *)campaignType { [sdk rejectAll:campaignType]; } +- (void)setCleanUserDataOnError:(BOOL)value { + [sdk setCleanUserDataOnError:value]; +} + + // MARK: SPDelegate - (void)onAction:(RNAction*)action { [self emitInternalOnAction: [action stringifiedJson]]; diff --git a/src/NativeReactNativeCmp.ts b/src/NativeReactNativeCmp.ts index a2b821d..5159c76 100644 --- a/src/NativeReactNativeCmp.ts +++ b/src/NativeReactNativeCmp.ts @@ -223,6 +223,7 @@ export interface Spec extends TurboModule { ): void; getUserData(): Promise; loadMessage(params?: LoadMessageParams): void; + setCleanUserDataOnError(value: boolean): void; clearLocalData(): void; loadGDPRPrivacyManager(pmId: string): void; loadUSNatPrivacyManager(pmId: string): void; diff --git a/src/index.tsx b/src/index.tsx index 573f547..532a7d1 100644 --- a/src/index.tsx +++ b/src/index.tsx @@ -64,6 +64,10 @@ export default class SPConsentManager implements Spec { ReactNativeCmp.loadMessage(params); } + setCleanUserDataOnError(value: boolean) { + ReactNativeCmp.setCleanUserDataOnError(value); + } + clearLocalData() { ReactNativeCmp.clearLocalData(); } From 308a67c88a6e4209941a89dec4ea5561e0803dc5 Mon Sep 17 00:00:00 2001 From: Dmytro Date: Wed, 27 Aug 2025 10:39:31 +0200 Subject: [PATCH 2/3] update example app --- example/src/App.tsx | 1 + 1 file changed, 1 insertion(+) diff --git a/example/src/App.tsx b/example/src/App.tsx index 63f340a..b0a48f4 100644 --- a/example/src/App.tsx +++ b/example/src/App.tsx @@ -100,6 +100,7 @@ export default function App() { consentManager.current?.onError((description) => { setSDKStatus(SDKStatus.Errored); console.error(description); + consentManager.current?.getUserData().then(setUserData); }); consentManager.current?.getUserData().then(setUserData); From 9a582b2f5dd2b3dfea9a96a4026849b7a3bb243f Mon Sep 17 00:00:00 2001 From: Dmytro Date: Thu, 28 Aug 2025 17:11:20 +0200 Subject: [PATCH 3/3] Update Android native sdk --- android/build.gradle | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/android/build.gradle b/android/build.gradle index ce9ece7..2022793 100644 --- a/android/build.gradle +++ b/android/build.gradle @@ -77,7 +77,7 @@ dependencies { implementation "org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3" implementation "org.jetbrains.kotlinx:kotlinx-datetime:0.6.1" - implementation "com.sourcepoint.cmplibrary:cmplibrary:7.15.4" + implementation "com.sourcepoint.cmplibrary:cmplibrary:7.15.5" } react {