@usercentrics/react-native-sdk 2.31.0 → 2.32.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/android/build.gradle.kts +1 -1
- package/android/src/main/java/com/usercentrics/reactnative/RNUsercentricsModule.kt +38 -6
- package/android/src/main/java/com/usercentrics/reactnative/RNUsercentricsModuleSpec.kt +9 -0
- package/android/src/main/java/com/usercentrics/reactnative/api/UsercentricsProxy.kt +14 -4
- package/ios/Manager/UsercentricsManager.swift +23 -1
- package/ios/RNUsercentricsModule.mm +9 -0
- package/ios/RNUsercentricsModule.swift +32 -2
- package/ios/RNUsercentricsModuleSpec.h +10 -0
- package/lib/NativeUsercentrics.d.ts +3 -0
- package/lib/NativeUsercentrics.js.map +1 -1
- package/lib/Usercentrics.d.ts +5 -0
- package/lib/Usercentrics.js +29 -0
- package/lib/Usercentrics.js.map +1 -1
- package/lib/fabric/NativeUsercentricsModule.d.ts +3 -0
- package/lib/fabric/NativeUsercentricsModule.js.map +1 -1
- package/package.json +2 -2
- package/src/NativeUsercentrics.ts +5 -0
- package/src/Usercentrics.tsx +34 -0
- package/src/__tests__/index.test.ts +22 -0
- package/src/fabric/NativeUsercentricsModule.ts +5 -0
package/android/build.gradle.kts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
package com.usercentrics.reactnative
|
|
2
2
|
|
|
3
3
|
import com.facebook.react.bridge.*
|
|
4
|
-
import com.facebook.react.modules.core.DeviceEventManagerModule
|
|
5
4
|
import com.usercentrics.sdk.UsercentricsDisposableEvent
|
|
6
5
|
import com.usercentrics.sdk.UsercentricsEvent
|
|
7
6
|
import com.usercentrics.reactnative.api.UsercentricsProxy
|
|
@@ -44,7 +43,13 @@ internal class RNUsercentricsModule(
|
|
|
44
43
|
val bannerSettings = options?.bannerSettingsFromMap(context)
|
|
45
44
|
|
|
46
45
|
val activity = reactContextProvider.activity()!!
|
|
47
|
-
usercentricsProxy.showFirstLayer(
|
|
46
|
+
usercentricsProxy.showFirstLayer(
|
|
47
|
+
activity,
|
|
48
|
+
bannerSettings,
|
|
49
|
+
onLoginClicked = { url -> emitEvent(ON_LOGIN_CLICKED_EVENT, url) },
|
|
50
|
+
onSubscribeClicked = { url -> emitEvent(ON_SUBSCRIBE_CLICKED_EVENT, url) },
|
|
51
|
+
promise,
|
|
52
|
+
)
|
|
48
53
|
} catch (e: Exception) {
|
|
49
54
|
promise.reject(e)
|
|
50
55
|
}
|
|
@@ -254,6 +259,33 @@ internal class RNUsercentricsModule(
|
|
|
254
259
|
})
|
|
255
260
|
}
|
|
256
261
|
|
|
262
|
+
@ReactMethod
|
|
263
|
+
override fun notifyLoginSuccess(promise: Promise) {
|
|
264
|
+
usercentricsProxy.instance.notifyLoginSuccess({
|
|
265
|
+
promise.resolve(null)
|
|
266
|
+
}, {
|
|
267
|
+
promise.reject(it)
|
|
268
|
+
})
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
@ReactMethod
|
|
272
|
+
override fun notifySubscribeSuccess(promise: Promise) {
|
|
273
|
+
usercentricsProxy.instance.notifySubscribeSuccess({
|
|
274
|
+
promise.resolve(null)
|
|
275
|
+
}, {
|
|
276
|
+
promise.reject(it)
|
|
277
|
+
})
|
|
278
|
+
}
|
|
279
|
+
|
|
280
|
+
@ReactMethod
|
|
281
|
+
override fun notifySubscriptionLapsed(promise: Promise) {
|
|
282
|
+
usercentricsProxy.instance.notifySubscriptionLapsed({
|
|
283
|
+
promise.resolve(null)
|
|
284
|
+
}, {
|
|
285
|
+
promise.reject(it)
|
|
286
|
+
})
|
|
287
|
+
}
|
|
288
|
+
|
|
257
289
|
@ReactMethod
|
|
258
290
|
override fun addListener(eventName: String) {
|
|
259
291
|
if (eventName != ON_GPP_SECTION_CHANGE_EVENT) return
|
|
@@ -282,10 +314,8 @@ internal class RNUsercentricsModule(
|
|
|
282
314
|
super.invalidate()
|
|
283
315
|
}
|
|
284
316
|
|
|
285
|
-
private fun emitEvent(eventName: String, payload:
|
|
286
|
-
reactApplicationContext
|
|
287
|
-
.getJSModule(DeviceEventManagerModule.RCTDeviceEventEmitter::class.java)
|
|
288
|
-
.emit(eventName, payload)
|
|
317
|
+
private fun emitEvent(eventName: String, payload: Any?) {
|
|
318
|
+
reactApplicationContext.emitDeviceEvent(eventName, payload)
|
|
289
319
|
}
|
|
290
320
|
|
|
291
321
|
private fun readableMapValueToAny(map: ReadableMap): Any? {
|
|
@@ -322,5 +352,7 @@ internal class RNUsercentricsModule(
|
|
|
322
352
|
companion object {
|
|
323
353
|
const val NAME = "RNUsercentricsModule"
|
|
324
354
|
const val ON_GPP_SECTION_CHANGE_EVENT = "onGppSectionChange"
|
|
355
|
+
const val ON_LOGIN_CLICKED_EVENT = "onLoginClicked"
|
|
356
|
+
const val ON_SUBSCRIBE_CLICKED_EVENT = "onSubscribeClicked"
|
|
325
357
|
}
|
|
326
358
|
}
|
|
@@ -33,6 +33,15 @@ abstract class RNUsercentricsModuleSpec internal constructor(context: ReactAppli
|
|
|
33
33
|
@ReactMethod
|
|
34
34
|
abstract fun clearUserSession(promise: Promise)
|
|
35
35
|
|
|
36
|
+
@ReactMethod
|
|
37
|
+
abstract fun notifyLoginSuccess(promise: Promise)
|
|
38
|
+
|
|
39
|
+
@ReactMethod
|
|
40
|
+
abstract fun notifySubscribeSuccess(promise: Promise)
|
|
41
|
+
|
|
42
|
+
@ReactMethod
|
|
43
|
+
abstract fun notifySubscriptionLapsed(promise: Promise)
|
|
44
|
+
|
|
36
45
|
@ReactMethod
|
|
37
46
|
abstract fun getConsents(promise: Promise)
|
|
38
47
|
|
|
@@ -14,7 +14,13 @@ interface UsercentricsProxy {
|
|
|
14
14
|
fun initialize(context: Context, options: UsercentricsOptions)
|
|
15
15
|
fun isReady(onSuccess: (UsercentricsReadyStatus) -> Unit, onFailure: (UsercentricsError) -> Unit)
|
|
16
16
|
|
|
17
|
-
fun showFirstLayer(
|
|
17
|
+
fun showFirstLayer(
|
|
18
|
+
activity: Activity,
|
|
19
|
+
bannerSettings: BannerSettings?,
|
|
20
|
+
onLoginClicked: (String?) -> Unit,
|
|
21
|
+
onSubscribeClicked: (String?) -> Unit,
|
|
22
|
+
promise: Promise,
|
|
23
|
+
)
|
|
18
24
|
fun showSecondLayer(activity: Activity, bannerSettings: BannerSettings?, promise: Promise)
|
|
19
25
|
}
|
|
20
26
|
|
|
@@ -39,11 +45,15 @@ internal class UsercentricsProxyImpl : UsercentricsProxy {
|
|
|
39
45
|
override fun showFirstLayer(
|
|
40
46
|
activity: Activity,
|
|
41
47
|
bannerSettings: BannerSettings?,
|
|
48
|
+
onLoginClicked: (String?) -> Unit,
|
|
49
|
+
onSubscribeClicked: (String?) -> Unit,
|
|
42
50
|
promise: Promise,
|
|
43
51
|
) {
|
|
44
|
-
UsercentricsBanner(activity, bannerSettings).showFirstLayer
|
|
45
|
-
promise.resolve(it?.toWritableMap())
|
|
46
|
-
|
|
52
|
+
UsercentricsBanner(activity, bannerSettings).showFirstLayer(
|
|
53
|
+
callback = { promise.resolve(it?.toWritableMap()) },
|
|
54
|
+
onLoginClicked = onLoginClicked,
|
|
55
|
+
onSubscribeClicked = onSubscribeClicked,
|
|
56
|
+
)
|
|
47
57
|
}
|
|
48
58
|
|
|
49
59
|
override fun showSecondLayer(
|
|
@@ -9,8 +9,14 @@ public protocol UsercentricsManager {
|
|
|
9
9
|
func restoreUserSession(controllerId: String, onSuccess: @escaping ((UsercentricsReadyStatus) -> Void), onFailure: @escaping ((Error) -> Void))
|
|
10
10
|
|
|
11
11
|
func showFirstLayer(bannerSettings: BannerSettings?,
|
|
12
|
+
onLoginClicked: @escaping (String?) -> Void,
|
|
13
|
+
onSubscribeClicked: @escaping (String?) -> Void,
|
|
12
14
|
dismissViewHandler: @escaping (UsercentricsConsentUserResponse) -> Void)
|
|
13
15
|
|
|
16
|
+
func notifyLoginSuccess(onSuccess: @escaping (() -> Void), onError: @escaping ((Error) -> Void))
|
|
17
|
+
func notifySubscribeSuccess(onSuccess: @escaping (() -> Void), onError: @escaping ((Error) -> Void))
|
|
18
|
+
func notifySubscriptionLapsed(onSuccess: @escaping (() -> Void), onError: @escaping ((Error) -> Void))
|
|
19
|
+
|
|
14
20
|
func showSecondLayer(bannerSettings: BannerSettings?,
|
|
15
21
|
dismissViewHandler: @escaping (UsercentricsConsentUserResponse) -> Void)
|
|
16
22
|
|
|
@@ -60,8 +66,24 @@ final class UsercentricsManagerImplementation: UsercentricsManager {
|
|
|
60
66
|
}
|
|
61
67
|
|
|
62
68
|
func showFirstLayer(bannerSettings: BannerSettings?,
|
|
69
|
+
onLoginClicked: @escaping (String?) -> Void,
|
|
70
|
+
onSubscribeClicked: @escaping (String?) -> Void,
|
|
63
71
|
dismissViewHandler: @escaping (UsercentricsConsentUserResponse) -> Void) {
|
|
64
|
-
UsercentricsBanner(bannerSettings: bannerSettings).showFirstLayer(
|
|
72
|
+
UsercentricsBanner(bannerSettings: bannerSettings).showFirstLayer(onLoginClicked: onLoginClicked,
|
|
73
|
+
onSubscribeClicked: onSubscribeClicked,
|
|
74
|
+
completionHandler: dismissViewHandler)
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
func notifyLoginSuccess(onSuccess: @escaping (() -> Void), onError: @escaping ((Error) -> Void)) {
|
|
78
|
+
UsercentricsCore.shared.notifyLoginSuccess(onSuccess: onSuccess, onError: onError)
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
func notifySubscribeSuccess(onSuccess: @escaping (() -> Void), onError: @escaping ((Error) -> Void)) {
|
|
82
|
+
UsercentricsCore.shared.notifySubscribeSuccess(onSuccess: onSuccess, onError: onError)
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
func notifySubscriptionLapsed(onSuccess: @escaping (() -> Void), onError: @escaping ((Error) -> Void)) {
|
|
86
|
+
UsercentricsCore.shared.notifySubscriptionLapsed(onSuccess: onSuccess, onError: onError)
|
|
65
87
|
}
|
|
66
88
|
|
|
67
89
|
func showSecondLayer(bannerSettings: BannerSettings?,
|
|
@@ -108,4 +108,13 @@ RCT_EXTERN_METHOD(track:(double)event)
|
|
|
108
108
|
|
|
109
109
|
RCT_EXTERN_METHOD(clearUserSession:(RCTPromiseResolveBlock)resolve
|
|
110
110
|
reject:(RCTPromiseRejectBlock)reject)
|
|
111
|
+
|
|
112
|
+
RCT_EXTERN_METHOD(notifyLoginSuccess:(RCTPromiseResolveBlock)resolve
|
|
113
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
114
|
+
|
|
115
|
+
RCT_EXTERN_METHOD(notifySubscribeSuccess:(RCTPromiseResolveBlock)resolve
|
|
116
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
117
|
+
|
|
118
|
+
RCT_EXTERN_METHOD(notifySubscriptionLapsed:(RCTPromiseResolveBlock)resolve
|
|
119
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
111
120
|
@end
|
|
@@ -32,7 +32,7 @@ class RNUsercentricsModule: RCTEventEmitter {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
override func supportedEvents() -> [String]! {
|
|
35
|
-
return [Self.onGppSectionChangeEvent]
|
|
35
|
+
return [Self.onGppSectionChangeEvent, Self.onLoginClickedEvent, Self.onSubscribeClickedEvent]
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
override func startObserving() {
|
|
@@ -79,7 +79,11 @@ class RNUsercentricsModule: RCTEventEmitter {
|
|
|
79
79
|
return
|
|
80
80
|
}
|
|
81
81
|
|
|
82
|
-
self.usercentricsManager.showFirstLayer(bannerSettings: BannerSettings(from: dict)
|
|
82
|
+
self.usercentricsManager.showFirstLayer(bannerSettings: BannerSettings(from: dict), onLoginClicked: { [weak self] url in
|
|
83
|
+
self?.sendEvent(withName: Self.onLoginClickedEvent, body: url)
|
|
84
|
+
}, onSubscribeClicked: { [weak self] url in
|
|
85
|
+
self?.sendEvent(withName: Self.onSubscribeClickedEvent, body: url)
|
|
86
|
+
}) { response in
|
|
83
87
|
resolve(response.toDictionary())
|
|
84
88
|
}
|
|
85
89
|
}
|
|
@@ -270,7 +274,33 @@ class RNUsercentricsModule: RCTEventEmitter {
|
|
|
270
274
|
}
|
|
271
275
|
}
|
|
272
276
|
|
|
277
|
+
@objc func notifyLoginSuccess(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
|
|
278
|
+
usercentricsManager.notifyLoginSuccess {
|
|
279
|
+
resolve(nil)
|
|
280
|
+
} onError: { error in
|
|
281
|
+
reject("usercentrics_reactNative_notifyLoginSuccess_error", error.localizedDescription, error)
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
@objc func notifySubscribeSuccess(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
|
|
286
|
+
usercentricsManager.notifySubscribeSuccess {
|
|
287
|
+
resolve(nil)
|
|
288
|
+
} onError: { error in
|
|
289
|
+
reject("usercentrics_reactNative_notifySubscribeSuccess_error", error.localizedDescription, error)
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
@objc func notifySubscriptionLapsed(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
|
|
294
|
+
usercentricsManager.notifySubscriptionLapsed {
|
|
295
|
+
resolve(nil)
|
|
296
|
+
} onError: { error in
|
|
297
|
+
reject("usercentrics_reactNative_notifySubscriptionLapsed_error", error.localizedDescription, error)
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
|
|
273
301
|
private static let onGppSectionChangeEvent = "onGppSectionChange"
|
|
302
|
+
private static let onLoginClickedEvent = "onLoginClicked"
|
|
303
|
+
private static let onSubscribeClickedEvent = "onSubscribeClicked"
|
|
274
304
|
}
|
|
275
305
|
|
|
276
306
|
// MARK: - RCTBridgeModule & TurboModule Conformance
|
|
@@ -29,6 +29,16 @@ NS_ASSUME_NONNULL_BEGIN
|
|
|
29
29
|
- (void)clearUserSession:(RCTPromiseResolveBlock)resolve
|
|
30
30
|
reject:(RCTPromiseRejectBlock)reject;
|
|
31
31
|
|
|
32
|
+
// Consent or Pay
|
|
33
|
+
- (void)notifyLoginSuccess:(RCTPromiseResolveBlock)resolve
|
|
34
|
+
reject:(RCTPromiseRejectBlock)reject;
|
|
35
|
+
|
|
36
|
+
- (void)notifySubscribeSuccess:(RCTPromiseResolveBlock)resolve
|
|
37
|
+
reject:(RCTPromiseRejectBlock)reject;
|
|
38
|
+
|
|
39
|
+
- (void)notifySubscriptionLapsed:(RCTPromiseResolveBlock)resolve
|
|
40
|
+
reject:(RCTPromiseRejectBlock)reject;
|
|
41
|
+
|
|
32
42
|
// Data Retrieval
|
|
33
43
|
- (void)getConsents:(RCTPromiseResolveBlock)resolve
|
|
34
44
|
reject:(RCTPromiseRejectBlock)reject;
|
|
@@ -8,6 +8,9 @@ export interface Spec extends TurboModule {
|
|
|
8
8
|
restoreUserSession(controllerId: string): Promise<UsercentricsReadyStatus>;
|
|
9
9
|
getControllerId(): Promise<string>;
|
|
10
10
|
clearUserSession(): Promise<UsercentricsReadyStatus>;
|
|
11
|
+
notifyLoginSuccess(): Promise<void>;
|
|
12
|
+
notifySubscribeSuccess(): Promise<void>;
|
|
13
|
+
notifySubscriptionLapsed(): Promise<void>;
|
|
11
14
|
getConsents(): Promise<Array<UsercentricsServiceConsent>>;
|
|
12
15
|
getCMPData(): Promise<UsercentricsCMPData>;
|
|
13
16
|
getAdditionalConsentModeData(): Promise<AdditionalConsentModeData>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeUsercentrics.js","sourceRoot":"","sources":["../src/NativeUsercentrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAe,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeUsercentrics.js","sourceRoot":"","sources":["../src/NativeUsercentrics.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAe,MAAM,cAAc,CAAC;AA6E/E,yDAAyD;AACzD,MAAM,oBAAoB,GAAG,mBAAmB,CAAC,GAAG,CAAO,sBAAsB,CAAC,IAAI,aAAa,CAAC,oBAAoB,CAAC;AAEzH,IAAI,CAAC,oBAAoB,EAAE,CAAC;IAC1B,MAAM,IAAI,KAAK,CACb,0DAA0D;QAC1D,sDAAsD;QACtD,wCAAwC;QACxC,0DAA0D,CAC3D,CAAC;AACJ,CAAC;AAED,eAAe,oBAA4B,CAAC"}
|
package/lib/Usercentrics.d.ts
CHANGED
|
@@ -31,4 +31,9 @@ export declare const Usercentrics: {
|
|
|
31
31
|
track: (event: UsercentricsAnalyticsEventType) => Promise<void>;
|
|
32
32
|
clearUserSession: () => Promise<UsercentricsReadyStatus>;
|
|
33
33
|
onGppSectionChange: (callback: (payload: GppSectionChangePayload) => void) => EmitterSubscription;
|
|
34
|
+
onLoginClicked: (callback: (url: string | null) => void) => EmitterSubscription;
|
|
35
|
+
onSubscribeClicked: (callback: (url: string | null) => void) => EmitterSubscription;
|
|
36
|
+
notifyLoginSuccess: () => Promise<void>;
|
|
37
|
+
notifySubscribeSuccess: () => Promise<void>;
|
|
38
|
+
notifySubscriptionLapsed: () => Promise<void>;
|
|
34
39
|
};
|
package/lib/Usercentrics.js
CHANGED
|
@@ -119,5 +119,34 @@ export const Usercentrics = {
|
|
|
119
119
|
onGppSectionChange: (callback) => {
|
|
120
120
|
return eventEmitter.addListener("onGppSectionChange", callback);
|
|
121
121
|
},
|
|
122
|
+
// Fires when the user taps the Consent-or-Pay 1st-layer subscriber-login link. The banner is not
|
|
123
|
+
// dismissed automatically — call notifyLoginSuccess once the host app confirms login, then dismiss
|
|
124
|
+
// the banner yourself.
|
|
125
|
+
onLoginClicked: (callback) => {
|
|
126
|
+
return eventEmitter.addListener("onLoginClicked", callback);
|
|
127
|
+
},
|
|
128
|
+
// Fires when the user taps the Consent-or-Pay 1st-layer Reject & Subscribe button. The banner is not
|
|
129
|
+
// dismissed automatically — call notifySubscribeSuccess once the host app confirms the subscription,
|
|
130
|
+
// then dismiss the banner yourself.
|
|
131
|
+
onSubscribeClicked: (callback) => {
|
|
132
|
+
return eventEmitter.addListener("onSubscribeClicked", callback);
|
|
133
|
+
},
|
|
134
|
+
// Clears stored TCF consent data after a successful Consent-or-Pay login.
|
|
135
|
+
notifyLoginSuccess: async () => {
|
|
136
|
+
await RNUsercentricsModule.isReady();
|
|
137
|
+
return RNUsercentricsModule.notifyLoginSuccess();
|
|
138
|
+
},
|
|
139
|
+
// Clears stored TCF consent data after a successful Consent-or-Pay subscription.
|
|
140
|
+
notifySubscribeSuccess: async () => {
|
|
141
|
+
await RNUsercentricsModule.isReady();
|
|
142
|
+
return RNUsercentricsModule.notifySubscribeSuccess();
|
|
143
|
+
},
|
|
144
|
+
// Notifies the SDK that a previously active Consent-or-Pay subscription has lapsed,
|
|
145
|
+
// resetting the subscriber flag so the host app can re-surface the banner. Does not
|
|
146
|
+
// alter any existing consent data, which remains accurate.
|
|
147
|
+
notifySubscriptionLapsed: async () => {
|
|
148
|
+
await RNUsercentricsModule.isReady();
|
|
149
|
+
return RNUsercentricsModule.notifySubscriptionLapsed();
|
|
150
|
+
},
|
|
122
151
|
};
|
|
123
152
|
//# sourceMappingURL=Usercentrics.js.map
|
package/lib/Usercentrics.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Usercentrics.js","sourceRoot":"","sources":["../src/Usercentrics.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Usercentrics.js","sourceRoot":"","sources":["../src/Usercentrics.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,9 @@ export interface Spec extends TurboModule {
|
|
|
7
7
|
restoreUserSession(controllerId: string): Promise<Object>;
|
|
8
8
|
getControllerId(): Promise<string>;
|
|
9
9
|
clearUserSession(): Promise<Object>;
|
|
10
|
+
notifyLoginSuccess(): Promise<void>;
|
|
11
|
+
notifySubscribeSuccess(): Promise<void>;
|
|
12
|
+
notifySubscriptionLapsed(): Promise<void>;
|
|
10
13
|
getConsents(): Promise<Array<Object>>;
|
|
11
14
|
getCMPData(): Promise<Object>;
|
|
12
15
|
getAdditionalConsentModeData(): Promise<Object>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NativeUsercentricsModule.js","sourceRoot":"","sources":["../../src/fabric/NativeUsercentricsModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"NativeUsercentricsModule.js","sourceRoot":"","sources":["../../src/fabric/NativeUsercentricsModule.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AA6DnD,eAAe,mBAAmB,CAAC,GAAG,CAAO,sBAAsB,CAAC,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@usercentrics/react-native-sdk",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.32.0",
|
|
4
4
|
"description": "Usercentrics SDK",
|
|
5
5
|
"homepage": "https://usercentrics.com",
|
|
6
6
|
"main": "lib/index.js",
|
|
7
7
|
"types": "lib/index.d.ts",
|
|
8
8
|
"author": "Usercentrics <developer@usercentrics.com>",
|
|
9
9
|
"iosPackageName": "react-native-usercentrics",
|
|
10
|
-
"iosPackageVersion": "2.
|
|
10
|
+
"iosPackageVersion": "2.32.0",
|
|
11
11
|
"license": "SEE LICENSE IN LICENSE",
|
|
12
12
|
"files": [
|
|
13
13
|
"android",
|
|
@@ -30,6 +30,11 @@ export interface Spec extends TurboModule {
|
|
|
30
30
|
getControllerId(): Promise<string>;
|
|
31
31
|
clearUserSession(): Promise<UsercentricsReadyStatus>;
|
|
32
32
|
|
|
33
|
+
// Consent or Pay
|
|
34
|
+
notifyLoginSuccess(): Promise<void>;
|
|
35
|
+
notifySubscribeSuccess(): Promise<void>;
|
|
36
|
+
notifySubscriptionLapsed(): Promise<void>;
|
|
37
|
+
|
|
33
38
|
// Data Retrieval
|
|
34
39
|
getConsents(): Promise<Array<UsercentricsServiceConsent>>;
|
|
35
40
|
getCMPData(): Promise<UsercentricsCMPData>;
|
package/src/Usercentrics.tsx
CHANGED
|
@@ -171,4 +171,38 @@ export const Usercentrics = {
|
|
|
171
171
|
onGppSectionChange: (callback: (payload: GppSectionChangePayload) => void): EmitterSubscription => {
|
|
172
172
|
return eventEmitter.addListener("onGppSectionChange", callback);
|
|
173
173
|
},
|
|
174
|
+
|
|
175
|
+
// Fires when the user taps the Consent-or-Pay 1st-layer subscriber-login link. The banner is not
|
|
176
|
+
// dismissed automatically — call notifyLoginSuccess once the host app confirms login, then dismiss
|
|
177
|
+
// the banner yourself.
|
|
178
|
+
onLoginClicked: (callback: (url: string | null) => void): EmitterSubscription => {
|
|
179
|
+
return eventEmitter.addListener("onLoginClicked", callback);
|
|
180
|
+
},
|
|
181
|
+
|
|
182
|
+
// Fires when the user taps the Consent-or-Pay 1st-layer Reject & Subscribe button. The banner is not
|
|
183
|
+
// dismissed automatically — call notifySubscribeSuccess once the host app confirms the subscription,
|
|
184
|
+
// then dismiss the banner yourself.
|
|
185
|
+
onSubscribeClicked: (callback: (url: string | null) => void): EmitterSubscription => {
|
|
186
|
+
return eventEmitter.addListener("onSubscribeClicked", callback);
|
|
187
|
+
},
|
|
188
|
+
|
|
189
|
+
// Clears stored TCF consent data after a successful Consent-or-Pay login.
|
|
190
|
+
notifyLoginSuccess: async (): Promise<void> => {
|
|
191
|
+
await RNUsercentricsModule.isReady();
|
|
192
|
+
return RNUsercentricsModule.notifyLoginSuccess();
|
|
193
|
+
},
|
|
194
|
+
|
|
195
|
+
// Clears stored TCF consent data after a successful Consent-or-Pay subscription.
|
|
196
|
+
notifySubscribeSuccess: async (): Promise<void> => {
|
|
197
|
+
await RNUsercentricsModule.isReady();
|
|
198
|
+
return RNUsercentricsModule.notifySubscribeSuccess();
|
|
199
|
+
},
|
|
200
|
+
|
|
201
|
+
// Notifies the SDK that a previously active Consent-or-Pay subscription has lapsed,
|
|
202
|
+
// resetting the subscriber flag so the host app can re-surface the banner. Does not
|
|
203
|
+
// alter any existing consent data, which remains accurate.
|
|
204
|
+
notifySubscriptionLapsed: async (): Promise<void> => {
|
|
205
|
+
await RNUsercentricsModule.isReady();
|
|
206
|
+
return RNUsercentricsModule.notifySubscriptionLapsed();
|
|
207
|
+
},
|
|
174
208
|
}
|
|
@@ -65,6 +65,7 @@ jest.mock("react-native", () => {
|
|
|
65
65
|
reset: jest.fn(),
|
|
66
66
|
getDpsMetadata: jest.fn(),
|
|
67
67
|
clearUserSession: jest.fn(),
|
|
68
|
+
notifySubscriptionLapsed: jest.fn(),
|
|
68
69
|
addListener: jest.fn(),
|
|
69
70
|
removeListeners: jest.fn()
|
|
70
71
|
};
|
|
@@ -633,4 +634,25 @@ describe('Test Usercentrics Module', () => {
|
|
|
633
634
|
expect(e).toBe("Failed");
|
|
634
635
|
}
|
|
635
636
|
})
|
|
637
|
+
|
|
638
|
+
test('testNotifySubscriptionLapsed', async () => {
|
|
639
|
+
RNUsercentricsModule.notifySubscriptionLapsed.mockImplementationOnce(
|
|
640
|
+
(): Promise<any> => Promise.resolve()
|
|
641
|
+
)
|
|
642
|
+
|
|
643
|
+
await Usercentrics.notifySubscriptionLapsed();
|
|
644
|
+
expect(RNUsercentricsModule.notifySubscriptionLapsed).toHaveBeenCalled();
|
|
645
|
+
})
|
|
646
|
+
|
|
647
|
+
test('testNotifySubscriptionLapsedWithError', async () => {
|
|
648
|
+
RNUsercentricsModule.notifySubscriptionLapsed.mockImplementationOnce(
|
|
649
|
+
(): Promise<any> => Promise.reject("Failed")
|
|
650
|
+
)
|
|
651
|
+
|
|
652
|
+
try {
|
|
653
|
+
await Usercentrics.notifySubscriptionLapsed();
|
|
654
|
+
} catch (e) {
|
|
655
|
+
expect(e).toBe("Failed");
|
|
656
|
+
}
|
|
657
|
+
})
|
|
636
658
|
})
|
|
@@ -15,6 +15,11 @@ export interface Spec extends TurboModule {
|
|
|
15
15
|
getControllerId(): Promise<string>;
|
|
16
16
|
clearUserSession(): Promise<Object>;
|
|
17
17
|
|
|
18
|
+
// Consent or Pay
|
|
19
|
+
notifyLoginSuccess(): Promise<void>;
|
|
20
|
+
notifySubscribeSuccess(): Promise<void>;
|
|
21
|
+
notifySubscriptionLapsed(): Promise<void>;
|
|
22
|
+
|
|
18
23
|
// Data Retrieval
|
|
19
24
|
getConsents(): Promise<Array<Object>>;
|
|
20
25
|
getCMPData(): Promise<Object>;
|