diff --git a/android/src/main/java/com/sourcepoint/reactnativecmp/ReactNativeCmpModule.kt b/android/src/main/java/com/sourcepoint/reactnativecmp/ReactNativeCmpModule.kt index 0dc8a90..c71f544 100644 --- a/android/src/main/java/com/sourcepoint/reactnativecmp/ReactNativeCmpModule.kt +++ b/android/src/main/java/com/sourcepoint/reactnativecmp/ReactNativeCmpModule.kt @@ -87,6 +87,10 @@ class ReactNativeCmpModule(reactContext: ReactApplicationContext) : NativeReactN } } + override fun setCleanUserDataOnError(value: Boolean) { + spConsentLib?.cleanUserDataOnError = value + } + override fun clearLocalData() { clearAllData(reactApplicationContext) } diff --git a/ios/RNSPCmp.swift b/ios/RNSPCmp.swift index b5972bf..01a55b5 100644 --- a/ios/RNSPCmp.swift +++ b/ios/RNSPCmp.swift @@ -49,6 +49,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 8959fd9..249eede 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:(RNSPAction*)action { [self emitInternalOnAction: [action stringifiedJson]]; diff --git a/src/NativeReactNativeCmp.ts b/src/NativeReactNativeCmp.ts index 3fd076a..c9fd06b 100644 --- a/src/NativeReactNativeCmp.ts +++ b/src/NativeReactNativeCmp.ts @@ -235,6 +235,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(); }