cm-sdk-react-native-v3 3.6.6 → 3.10.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/README.md +1 -1
- package/android/build.gradle +1 -1
- package/android/src/main/java/com/cmsdkreactnativev3/CmSdkReactNativeV3Module.kt +315 -130
- package/ios/CmSdkReactNativeV3.mm +20 -0
- package/ios/CmSdkReactNativeV3.swift +204 -26
- package/lib/commonjs/NativeCmSdkReactNativeV3.js.map +1 -1
- package/lib/commonjs/index.js +49 -12
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/NativeCmSdkReactNativeV3.js.map +1 -1
- package/lib/module/index.js +38 -9
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/src/NativeCmSdkReactNativeV3.d.ts +25 -3
- package/lib/typescript/commonjs/src/NativeCmSdkReactNativeV3.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +10 -2
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/NativeCmSdkReactNativeV3.d.ts +25 -3
- package/lib/typescript/module/src/NativeCmSdkReactNativeV3.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +10 -2
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/react-native-cm-sdk-react-native-v3.podspec +1 -1
- package/src/NativeCmSdkReactNativeV3.ts +33 -4
- package/src/index.tsx +57 -14
|
@@ -29,6 +29,9 @@ RCT_EXTERN_METHOD(forceOpen:(BOOL)jumpToSettings
|
|
|
29
29
|
RCT_EXTERN_METHOD(getUserStatus:(RCTPromiseResolveBlock)resolve
|
|
30
30
|
reject:(RCTPromiseRejectBlock)reject)
|
|
31
31
|
|
|
32
|
+
RCT_EXTERN_METHOD(isConsentRequired:(RCTPromiseResolveBlock)resolve
|
|
33
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
34
|
+
|
|
32
35
|
RCT_EXTERN_METHOD(getStatusForPurpose:(NSString *)purposeId
|
|
33
36
|
resolve:(RCTPromiseResolveBlock)resolve
|
|
34
37
|
reject:(RCTPromiseRejectBlock)reject)
|
|
@@ -75,6 +78,23 @@ RCT_EXTERN_METHOD(importCMPInfo:(NSString *)cmpString
|
|
|
75
78
|
RCT_EXTERN_METHOD(resetConsentManagementData:(RCTPromiseResolveBlock)resolve
|
|
76
79
|
reject:(RCTPromiseRejectBlock)reject)
|
|
77
80
|
|
|
81
|
+
RCT_EXTERN_METHOD(configureAutomaticFirebaseConsentUpdates:(BOOL)enabled
|
|
82
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
83
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
84
|
+
|
|
85
|
+
RCT_EXTERN_METHOD(setAutomaticFirebaseConsentUpdatesEnabled:(BOOL)enabled
|
|
86
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
87
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
88
|
+
|
|
89
|
+
RCT_EXTERN_METHOD(isAutomaticFirebaseConsentUpdatesEnabled:(RCTPromiseResolveBlock)resolve
|
|
90
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
91
|
+
|
|
92
|
+
RCT_EXTERN_METHOD(updateFirebaseConsent:(RCTPromiseResolveBlock)resolve
|
|
93
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
94
|
+
|
|
95
|
+
RCT_EXTERN_METHOD(isFirebaseAnalyticsAvailable:(RCTPromiseResolveBlock)resolve
|
|
96
|
+
reject:(RCTPromiseRejectBlock)reject)
|
|
97
|
+
|
|
78
98
|
// Event emitter support methods
|
|
79
99
|
RCT_EXTERN_METHOD(addListener:(NSString *)eventName)
|
|
80
100
|
RCT_EXTERN_METHOD(removeListeners:(double)count)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import Foundation
|
|
2
2
|
import UIKit
|
|
3
|
+
import WebKit
|
|
3
4
|
import cm_sdk_ios_v3
|
|
4
5
|
import React
|
|
5
6
|
|
|
@@ -77,6 +78,21 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
|
|
|
77
78
|
// MARK: - CMPManagerDelegate methods
|
|
78
79
|
|
|
79
80
|
@objc public func didReceiveConsent(consent: String, jsonObject: [String: Any]) {
|
|
81
|
+
print("[CMP iOS] didReceiveConsent called")
|
|
82
|
+
print("[CMP iOS] consent parameter length: \(consent.count)")
|
|
83
|
+
print("[CMP iOS] consent first 60 chars: \(String(consent.prefix(60)))")
|
|
84
|
+
if let firstChar = consent.first {
|
|
85
|
+
print("[CMP iOS] consent first char: '\(firstChar)' code: \(firstChar.asciiValue ?? 0)")
|
|
86
|
+
}
|
|
87
|
+
if let lastChar = consent.last {
|
|
88
|
+
print("[CMP iOS] consent last char: '\(lastChar)' code: \(lastChar.asciiValue ?? 0)")
|
|
89
|
+
}
|
|
90
|
+
print("[CMP iOS] jsonObject keys: \(jsonObject.keys)")
|
|
91
|
+
if let cmpString = jsonObject["cmpString"] as? String {
|
|
92
|
+
print("[CMP iOS] jsonObject.cmpString exists! Length: \(cmpString.count)")
|
|
93
|
+
print("[CMP iOS] Are consent param and jsonObject.cmpString same? \(consent == cmpString)")
|
|
94
|
+
}
|
|
95
|
+
|
|
80
96
|
sendEventIfListening(name: "didReceiveConsent", body: [
|
|
81
97
|
"consent": consent,
|
|
82
98
|
"jsonObject": jsonObject
|
|
@@ -111,6 +127,7 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
|
|
|
111
127
|
let cornerRadius = CGFloat(config["cornerRadius"] as? Double ?? 5)
|
|
112
128
|
let respectsSafeArea = config["respectsSafeArea"] as? Bool ?? true
|
|
113
129
|
let allowsOrientationChanges = config["allowsOrientationChanges"] as? Bool ?? true
|
|
130
|
+
let darkMode = config["darkMode"] as? Bool ?? false
|
|
114
131
|
|
|
115
132
|
let position = self.mapPosition(config: config, respectsSafeArea: respectsSafeArea)
|
|
116
133
|
let backgroundStyle = self.mapBackgroundStyle(config: config)
|
|
@@ -120,7 +137,8 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
|
|
|
120
137
|
backgroundStyle: backgroundStyle,
|
|
121
138
|
cornerRadius: cornerRadius,
|
|
122
139
|
respectsSafeArea: respectsSafeArea,
|
|
123
|
-
allowsOrientationChanges: allowsOrientationChanges
|
|
140
|
+
allowsOrientationChanges: allowsOrientationChanges,
|
|
141
|
+
darkMode: darkMode
|
|
124
142
|
)
|
|
125
143
|
|
|
126
144
|
self.cmpManager.setWebViewConfig(uiConfig)
|
|
@@ -240,10 +258,22 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
|
|
|
240
258
|
let appName = config["appName"] as? String else {
|
|
241
259
|
throw NSError(domain: "CmSdkReactNativeV3", code: 0, userInfo: [NSLocalizedDescriptionKey: "Invalid config parameters"])
|
|
242
260
|
}
|
|
261
|
+
let jsonConfig = config["jsonConfig"] as? String
|
|
243
262
|
let noHash = config["noHash"] as? Bool ?? false
|
|
263
|
+
let webViewConnectionTimeoutMillis = (config["webViewConnectionTimeoutMillis"] as? NSNumber)?.intValue ?? 3000
|
|
264
|
+
let forceRegulation = config["forceRegulation"] as? String
|
|
244
265
|
print("ID: \(id) - Domain: \(domain)")
|
|
245
266
|
|
|
246
|
-
let urlConfig = UrlConfig(
|
|
267
|
+
let urlConfig = UrlConfig(
|
|
268
|
+
id: id,
|
|
269
|
+
domain: domain,
|
|
270
|
+
language: language,
|
|
271
|
+
appName: appName,
|
|
272
|
+
jsonConfig: jsonConfig,
|
|
273
|
+
noHash: noHash,
|
|
274
|
+
webViewConnectionTimeoutMillis: webViewConnectionTimeoutMillis,
|
|
275
|
+
forceRegulation: forceRegulation
|
|
276
|
+
)
|
|
247
277
|
print("urlConfig = \(urlConfig)")
|
|
248
278
|
self.cmpManager.setUrlConfig(urlConfig)
|
|
249
279
|
resolve(nil)
|
|
@@ -275,16 +305,27 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
|
|
|
275
305
|
resolve(response)
|
|
276
306
|
}
|
|
277
307
|
|
|
308
|
+
@objc(isConsentRequired:reject:)
|
|
309
|
+
func isConsentRequired(resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
310
|
+
cmpManager.isConsentRequired { isRequired, error in
|
|
311
|
+
if let error = error {
|
|
312
|
+
reject("ERROR", "Failed to check if consent is required: \(error.localizedDescription)", error)
|
|
313
|
+
} else {
|
|
314
|
+
resolve(isRequired)
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
|
|
278
319
|
@objc(getStatusForPurpose:resolve:reject:)
|
|
279
320
|
func getStatusForPurpose(_ purposeId: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
280
321
|
let status = cmpManager.getStatusForPurpose(id: purposeId)
|
|
281
|
-
resolve(status
|
|
322
|
+
resolve(stringValue(for: status))
|
|
282
323
|
}
|
|
283
324
|
|
|
284
325
|
@objc(getStatusForVendor:resolve:reject:)
|
|
285
326
|
func getStatusForVendor(_ vendorId: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
286
327
|
let status = cmpManager.getStatusForVendor(id: vendorId)
|
|
287
|
-
resolve(status
|
|
328
|
+
resolve(stringValue(for: status))
|
|
288
329
|
}
|
|
289
330
|
|
|
290
331
|
@objc(getGoogleConsentModeStatus:reject:)
|
|
@@ -295,23 +336,29 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
|
|
|
295
336
|
|
|
296
337
|
@objc(checkAndOpen:resolve:reject:)
|
|
297
338
|
func checkAndOpen(_ jumpToSettings: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
339
|
+
runOnMainThread {
|
|
340
|
+
self.updatePresentingViewControllerIfNeeded()
|
|
341
|
+
self.cmpManager.checkAndOpen(jumpToSettings: jumpToSettings) { error in
|
|
342
|
+
if let error = error {
|
|
343
|
+
reject("ERROR", "Failed to check and open: \(error.localizedDescription)", error)
|
|
344
|
+
} else {
|
|
345
|
+
resolve(true)
|
|
346
|
+
}
|
|
347
|
+
}
|
|
304
348
|
}
|
|
305
349
|
}
|
|
306
350
|
|
|
307
351
|
@objc(forceOpen:resolve:reject:)
|
|
308
352
|
func forceOpen(_ jumpToSettings: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
353
|
+
runOnMainThread {
|
|
354
|
+
self.updatePresentingViewControllerIfNeeded()
|
|
355
|
+
self.cmpManager.forceOpen(jumpToSettings: jumpToSettings) { error in
|
|
356
|
+
if let error = error {
|
|
357
|
+
reject("ERROR", "Failed to force open: \(error.localizedDescription)", error)
|
|
358
|
+
} else {
|
|
359
|
+
resolve(true)
|
|
360
|
+
}
|
|
361
|
+
}
|
|
315
362
|
}
|
|
316
363
|
}
|
|
317
364
|
|
|
@@ -323,29 +370,29 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
|
|
|
323
370
|
|
|
324
371
|
@objc(acceptVendors:resolve:reject:)
|
|
325
372
|
func acceptVendors(_ vendors: [String], resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
326
|
-
self.cmpManager.acceptVendors(vendors) {
|
|
327
|
-
|
|
328
|
-
|
|
373
|
+
self.cmpManager.acceptVendors(vendors) { error in
|
|
374
|
+
self.resolveBooleanCompletion(error: error, successMessage: "Failed to accept vendors", resolve: resolve, reject: reject)
|
|
375
|
+
}
|
|
329
376
|
}
|
|
330
377
|
|
|
331
378
|
@objc(rejectVendors:resolve:reject:)
|
|
332
379
|
func rejectVendors(_ vendors: [String], resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
333
|
-
self.cmpManager.rejectVendors(vendors) {
|
|
334
|
-
|
|
380
|
+
self.cmpManager.rejectVendors(vendors) { error in
|
|
381
|
+
self.resolveBooleanCompletion(error: error, successMessage: "Failed to reject vendors", resolve: resolve, reject: reject)
|
|
335
382
|
}
|
|
336
383
|
}
|
|
337
384
|
|
|
338
385
|
@objc(acceptPurposes:updatePurpose:resolve:reject:)
|
|
339
386
|
func acceptPurposes(_ purposes: [String], updatePurpose: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
340
|
-
self.cmpManager.acceptPurposes(purposes, updatePurpose: updatePurpose) {
|
|
341
|
-
|
|
387
|
+
self.cmpManager.acceptPurposes(purposes, updatePurpose: updatePurpose) { error in
|
|
388
|
+
self.resolveBooleanCompletion(error: error, successMessage: "Failed to accept purposes", resolve: resolve, reject: reject)
|
|
342
389
|
}
|
|
343
390
|
}
|
|
344
391
|
|
|
345
392
|
@objc(rejectPurposes:updateVendor:resolve:reject:)
|
|
346
393
|
func rejectPurposes(_ purposes: [String], updateVendor: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
347
|
-
self.cmpManager.rejectPurposes(purposes, updateVendor: updateVendor) {
|
|
348
|
-
|
|
394
|
+
self.cmpManager.rejectPurposes(purposes, updateVendor: updateVendor) { error in
|
|
395
|
+
self.resolveBooleanCompletion(error: error, successMessage: "Failed to reject purposes", resolve: resolve, reject: reject)
|
|
349
396
|
}
|
|
350
397
|
}
|
|
351
398
|
|
|
@@ -384,7 +431,43 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
|
|
|
384
431
|
|
|
385
432
|
@objc(resetConsentManagementData:reject:)
|
|
386
433
|
func resetConsentManagementData(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
387
|
-
self.cmpManager.resetConsentManagementData
|
|
434
|
+
self.cmpManager.resetConsentManagementData { error in
|
|
435
|
+
if let error = error {
|
|
436
|
+
reject("ERROR", "Failed to reset consent management data: \(error.localizedDescription)", error)
|
|
437
|
+
return
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
self.clearWebViewData {
|
|
441
|
+
resolve(true)
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
@objc(configureAutomaticFirebaseConsentUpdates:resolve:reject:)
|
|
447
|
+
func configureAutomaticFirebaseConsentUpdates(_ enabled: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
448
|
+
CMPManager.configureAutomaticFirebaseConsentUpdates(enabled)
|
|
449
|
+
resolve(nil)
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
@objc(setAutomaticFirebaseConsentUpdatesEnabled:resolve:reject:)
|
|
453
|
+
func setAutomaticFirebaseConsentUpdatesEnabled(_ enabled: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
454
|
+
cmpManager.setAutomaticFirebaseConsentUpdatesEnabled(enabled)
|
|
455
|
+
resolve(nil)
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
@objc(isAutomaticFirebaseConsentUpdatesEnabled:reject:)
|
|
459
|
+
func isAutomaticFirebaseConsentUpdatesEnabled(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
460
|
+
resolve(cmpManager.isAutomaticFirebaseConsentUpdatesEnabled())
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
@objc(updateFirebaseConsent:reject:)
|
|
464
|
+
func updateFirebaseConsent(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
465
|
+
resolve(cmpManager.updateFirebaseConsent())
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
@objc(isFirebaseAnalyticsAvailable:reject:)
|
|
469
|
+
func isFirebaseAnalyticsAvailable(_ resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
470
|
+
resolve(cmpManager.isFirebaseAnalyticsAvailable())
|
|
388
471
|
}
|
|
389
472
|
|
|
390
473
|
// MARK: - Event emitter methods
|
|
@@ -398,4 +481,99 @@ class CmSdkReactNativeV3: RCTEventEmitter, CMPManagerDelegate {
|
|
|
398
481
|
override func removeListeners(_ count: Double) {
|
|
399
482
|
super.removeListeners(Double(Int(count)))
|
|
400
483
|
}
|
|
484
|
+
|
|
485
|
+
private func clearWebViewData(completion: @escaping () -> Void) {
|
|
486
|
+
let dataStore = WKWebsiteDataStore.default()
|
|
487
|
+
let types = WKWebsiteDataStore.allWebsiteDataTypes()
|
|
488
|
+
let domainsToClear = [
|
|
489
|
+
"consentmanager.net",
|
|
490
|
+
"delivery.consentmanager.net",
|
|
491
|
+
"a.delivery.consentmanager.net"
|
|
492
|
+
]
|
|
493
|
+
|
|
494
|
+
DispatchQueue.main.async {
|
|
495
|
+
dataStore.fetchDataRecords(ofTypes: types) { records in
|
|
496
|
+
let toDelete = records.filter { record in
|
|
497
|
+
domainsToClear.contains { domain in
|
|
498
|
+
record.displayName.contains(domain)
|
|
499
|
+
}
|
|
500
|
+
}
|
|
501
|
+
|
|
502
|
+
let deleteAndComplete = {
|
|
503
|
+
self.clearCookiesForDomains(domainsToClear)
|
|
504
|
+
completion()
|
|
505
|
+
}
|
|
506
|
+
|
|
507
|
+
guard !toDelete.isEmpty else {
|
|
508
|
+
deleteAndComplete()
|
|
509
|
+
return
|
|
510
|
+
}
|
|
511
|
+
|
|
512
|
+
dataStore.removeData(ofTypes: types, for: toDelete) {
|
|
513
|
+
deleteAndComplete()
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
}
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
private func clearCookiesForDomains(_ domains: [String]) {
|
|
520
|
+
let cookieStorage = HTTPCookieStorage.shared
|
|
521
|
+
cookieStorage.cookies?.forEach { cookie in
|
|
522
|
+
if domains.contains(where: { domain in cookie.domain.contains(domain) }) {
|
|
523
|
+
cookieStorage.deleteCookie(cookie)
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
private func stringValue(for status: UniqueConsentStatus) -> String {
|
|
529
|
+
switch status {
|
|
530
|
+
case .choiceDoesntExist:
|
|
531
|
+
return "choiceDoesntExist"
|
|
532
|
+
case .granted:
|
|
533
|
+
return "granted"
|
|
534
|
+
case .denied:
|
|
535
|
+
return "denied"
|
|
536
|
+
@unknown default:
|
|
537
|
+
return "choiceDoesntExist"
|
|
538
|
+
}
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
private func resolveBooleanCompletion(
|
|
542
|
+
error: NSError?,
|
|
543
|
+
successMessage: String,
|
|
544
|
+
resolve: @escaping RCTPromiseResolveBlock,
|
|
545
|
+
reject: @escaping RCTPromiseRejectBlock
|
|
546
|
+
) {
|
|
547
|
+
if let error = error {
|
|
548
|
+
reject("ERROR", "\(successMessage): \(error.localizedDescription)", error)
|
|
549
|
+
} else {
|
|
550
|
+
resolve(true)
|
|
551
|
+
}
|
|
552
|
+
}
|
|
553
|
+
|
|
554
|
+
private func updatePresentingViewControllerIfNeeded() {
|
|
555
|
+
if let viewController = currentPresentingViewController() {
|
|
556
|
+
cmpManager.setPresentingViewController(viewController)
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
private func currentPresentingViewController() -> UIViewController? {
|
|
561
|
+
if #available(iOS 13.0, *) {
|
|
562
|
+
let windowScene = UIApplication.shared.connectedScenes
|
|
563
|
+
.compactMap { $0 as? UIWindowScene }
|
|
564
|
+
.first { $0.activationState == .foregroundActive }
|
|
565
|
+
let rootViewController = windowScene?.windows.first { $0.isKeyWindow }?.rootViewController
|
|
566
|
+
return topMostViewController(from: rootViewController)
|
|
567
|
+
}
|
|
568
|
+
|
|
569
|
+
return topMostViewController(from: UIApplication.shared.keyWindow?.rootViewController)
|
|
570
|
+
}
|
|
571
|
+
|
|
572
|
+
private func topMostViewController(from rootViewController: UIViewController?) -> UIViewController? {
|
|
573
|
+
var current = rootViewController
|
|
574
|
+
while let presented = current?.presentedViewController {
|
|
575
|
+
current = presented
|
|
576
|
+
}
|
|
577
|
+
return current
|
|
578
|
+
}
|
|
401
579
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","WebViewPosition","exports","BackgroundStyleType","BlurEffectStyle","ATTStatus","CmSdkReactNativeV3","NativeModules","_default","default"],"sourceRoot":"../../src","sources":["NativeCmSdkReactNativeV3.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AAoBA;AAAA,
|
|
1
|
+
{"version":3,"names":["_reactNative","require","WebViewPosition","exports","BackgroundStyleType","BlurEffectStyle","ATTStatus","CmSdkReactNativeV3","NativeModules","_default","default"],"sourceRoot":"../../src","sources":["NativeCmSdkReactNativeV3.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA;AAoBA;AAAA,IAeYC,eAAe,GAAAC,OAAA,CAAAD,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAcfE,mBAAmB,GAAAD,OAAA,CAAAC,mBAAA,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAAA,IAOnBC,eAAe,GAAAF,OAAA,CAAAE,eAAA,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAAA,IAMfC,SAAS,GAAAH,OAAA,CAAAG,SAAA,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AA4FrB,MAAM;EAAEC;AAAmB,CAAC,GAAGC,0BAAa;AAAC,IAAAC,QAAA,GAAAN,OAAA,CAAAO,OAAA,GAE9BH,kBAAkB","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -28,13 +28,13 @@ Object.defineProperty(exports, "WebViewPosition", {
|
|
|
28
28
|
return _NativeCmSdkReactNativeV.WebViewPosition;
|
|
29
29
|
}
|
|
30
30
|
});
|
|
31
|
-
exports.setWebViewConfig = exports.setUrlConfig = exports.setATTStatus = exports.resetConsentManagementData = exports.rejectVendors = exports.rejectPurposes = exports.rejectAll = exports.importCMPInfo = exports.getUserStatus = exports.getStatusForVendor = exports.getStatusForPurpose = exports.getGoogleConsentModeStatus = exports.forceOpen = exports.exportCMPInfo = exports.default = exports.checkAndOpen = exports.addShowConsentLayerListener = exports.addErrorListener = exports.addConsentListener = exports.addCloseConsentLayerListener = exports.addClickLinkListener = exports.addATTStatusChangeListener = exports.acceptVendors = exports.acceptPurposes = exports.acceptAll = void 0;
|
|
31
|
+
exports.updateThirdPartyConsent = exports.updateFirebaseConsent = exports.setWebViewConfig = exports.setUrlConfig = exports.setAutomaticFirebaseConsentUpdatesEnabled = exports.setAutomaticConsentUpdatesEnabled = exports.setATTStatus = exports.resetConsentManagementData = exports.rejectVendors = exports.rejectPurposes = exports.rejectAll = exports.isFirebaseAnalyticsAvailable = exports.isConsentRequired = exports.isAutomaticFirebaseConsentUpdatesEnabled = exports.importCMPInfo = exports.getUserStatus = exports.getStatusForVendor = exports.getStatusForPurpose = exports.getGoogleConsentModeStatus = exports.forceOpen = exports.exportCMPInfo = exports.default = exports.configureAutomaticFirebaseConsentUpdates = exports.checkAndOpen = exports.addShowConsentLayerListener = exports.addErrorListener = exports.addConsentListener = exports.addCloseConsentLayerListener = exports.addClickLinkListener = exports.addATTStatusChangeListener = exports.acceptVendors = exports.acceptPurposes = exports.acceptAll = void 0;
|
|
32
32
|
var _reactNative = require("react-native");
|
|
33
33
|
var _NativeCmSdkReactNativeV = _interopRequireWildcard(require("./NativeCmSdkReactNativeV3.js"));
|
|
34
34
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
35
35
|
// Re-export enums/constants for consumers
|
|
36
36
|
|
|
37
|
-
const LINKING_ERROR = `The package '
|
|
37
|
+
const LINKING_ERROR = `The package 'cm-sdk-react-native-v3' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
|
|
38
38
|
ios: "- You have run 'pod install'\n",
|
|
39
39
|
default: ''
|
|
40
40
|
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
@@ -44,6 +44,13 @@ const CmSdkReactNativeV3 = _NativeCmSdkReactNativeV.default ?? _reactNative.Nati
|
|
|
44
44
|
}
|
|
45
45
|
});
|
|
46
46
|
const eventEmitter = new _reactNative.NativeEventEmitter(CmSdkReactNativeV3);
|
|
47
|
+
const getOptionalNativeMethod = methodName => {
|
|
48
|
+
const method = CmSdkReactNativeV3[methodName];
|
|
49
|
+
if (typeof method !== 'function') {
|
|
50
|
+
throw new Error(`[cm-sdk-react-native-v3] ${String(methodName)} is not available on ${_reactNative.Platform.OS}.`);
|
|
51
|
+
}
|
|
52
|
+
return method.bind(CmSdkReactNativeV3);
|
|
53
|
+
};
|
|
47
54
|
const addConsentListener = callback => {
|
|
48
55
|
return eventEmitter.addListener('didReceiveConsent', event => {
|
|
49
56
|
callback(event.consent, event.jsonObject);
|
|
@@ -108,9 +115,13 @@ exports.forceOpen = forceOpen;
|
|
|
108
115
|
const getUserStatus = () => {
|
|
109
116
|
return CmSdkReactNativeV3.getUserStatus();
|
|
110
117
|
};
|
|
118
|
+
exports.getUserStatus = getUserStatus;
|
|
119
|
+
const isConsentRequired = () => {
|
|
120
|
+
return CmSdkReactNativeV3.isConsentRequired();
|
|
121
|
+
};
|
|
111
122
|
|
|
112
123
|
// Helpers
|
|
113
|
-
exports.
|
|
124
|
+
exports.isConsentRequired = isConsentRequired;
|
|
114
125
|
const normalizeWebViewConfig = config => {
|
|
115
126
|
const position = config.position ?? _NativeCmSdkReactNativeV.WebViewPosition.FullScreen;
|
|
116
127
|
const allowedPositions = [_NativeCmSdkReactNativeV.WebViewPosition.FullScreen, _NativeCmSdkReactNativeV.WebViewPosition.HalfScreenTop, _NativeCmSdkReactNativeV.WebViewPosition.HalfScreenBottom, _NativeCmSdkReactNativeV.WebViewPosition.Custom];
|
|
@@ -122,7 +133,7 @@ const normalizeWebViewConfig = config => {
|
|
|
122
133
|
throw new Error('customRect is required when position is "custom"');
|
|
123
134
|
}
|
|
124
135
|
if (_reactNative.Platform.OS === 'android') {
|
|
125
|
-
console.warn('[cm-sdk-react-native-v3] Android native SDK
|
|
136
|
+
console.warn('[cm-sdk-react-native-v3] Android native SDK uses width/height/gravity for custom positioning, so RN customRect falls back to full screen.');
|
|
126
137
|
}
|
|
127
138
|
}
|
|
128
139
|
const backgroundStyle = (() => {
|
|
@@ -155,12 +166,11 @@ const normalizeWebViewConfig = config => {
|
|
|
155
166
|
if (blurStyle !== _NativeCmSdkReactNativeV.BlurEffectStyle.Dark && blurStyle !== _NativeCmSdkReactNativeV.BlurEffectStyle.Light && blurStyle !== _NativeCmSdkReactNativeV.BlurEffectStyle.ExtraLight) {
|
|
156
167
|
throw new Error(`Invalid blurEffectStyle: ${blurStyle}`);
|
|
157
168
|
}
|
|
158
|
-
if (_reactNative.Platform.OS === 'android') {
|
|
159
|
-
console.warn('[cm-sdk-react-native-v3] Android native SDK currently ignores blur backgrounds; using dimmed.');
|
|
160
|
-
}
|
|
161
169
|
return {
|
|
162
170
|
type,
|
|
163
|
-
blurEffectStyle: blurStyle
|
|
171
|
+
blurEffectStyle: blurStyle,
|
|
172
|
+
fallbackColor: normalizeColor(config.backgroundStyle.fallbackColor ?? 'black'),
|
|
173
|
+
fallbackOpacity: config.backgroundStyle.fallbackOpacity ?? 0.5
|
|
164
174
|
};
|
|
165
175
|
}
|
|
166
176
|
case _NativeCmSdkReactNativeV.BackgroundStyleType.None:
|
|
@@ -171,15 +181,14 @@ const normalizeWebViewConfig = config => {
|
|
|
171
181
|
throw new Error(`Invalid backgroundStyle type: ${config.backgroundStyle.type}`);
|
|
172
182
|
}
|
|
173
183
|
})();
|
|
174
|
-
if (_reactNative.Platform.OS === 'android' && config.backgroundStyle) {
|
|
175
|
-
console.warn('[cm-sdk-react-native-v3] Android native SDK currently ignores backgroundStyle overrides; it always uses a dimmed background.');
|
|
176
|
-
}
|
|
177
184
|
return {
|
|
178
185
|
position,
|
|
179
186
|
customRect: config.customRect,
|
|
180
187
|
cornerRadius: config.cornerRadius ?? 5,
|
|
181
188
|
respectsSafeArea: config.respectsSafeArea ?? true,
|
|
182
189
|
allowsOrientationChanges: config.allowsOrientationChanges ?? true,
|
|
190
|
+
darkMode: config.darkMode ?? false,
|
|
191
|
+
navigationBarColor: normalizeColor(config.navigationBarColor),
|
|
183
192
|
backgroundStyle
|
|
184
193
|
};
|
|
185
194
|
};
|
|
@@ -238,9 +247,37 @@ exports.rejectAll = rejectAll;
|
|
|
238
247
|
const acceptAll = () => {
|
|
239
248
|
return CmSdkReactNativeV3.acceptAll();
|
|
240
249
|
};
|
|
250
|
+
exports.acceptAll = acceptAll;
|
|
251
|
+
const setAutomaticConsentUpdatesEnabled = enabled => {
|
|
252
|
+
return getOptionalNativeMethod('setAutomaticConsentUpdatesEnabled')(enabled);
|
|
253
|
+
};
|
|
254
|
+
exports.setAutomaticConsentUpdatesEnabled = setAutomaticConsentUpdatesEnabled;
|
|
255
|
+
const updateThirdPartyConsent = () => {
|
|
256
|
+
return getOptionalNativeMethod('updateThirdPartyConsent')();
|
|
257
|
+
};
|
|
258
|
+
exports.updateThirdPartyConsent = updateThirdPartyConsent;
|
|
259
|
+
const configureAutomaticFirebaseConsentUpdates = enabled => {
|
|
260
|
+
return getOptionalNativeMethod('configureAutomaticFirebaseConsentUpdates')(enabled);
|
|
261
|
+
};
|
|
262
|
+
exports.configureAutomaticFirebaseConsentUpdates = configureAutomaticFirebaseConsentUpdates;
|
|
263
|
+
const setAutomaticFirebaseConsentUpdatesEnabled = enabled => {
|
|
264
|
+
return getOptionalNativeMethod('setAutomaticFirebaseConsentUpdatesEnabled')(enabled);
|
|
265
|
+
};
|
|
266
|
+
exports.setAutomaticFirebaseConsentUpdatesEnabled = setAutomaticFirebaseConsentUpdatesEnabled;
|
|
267
|
+
const isAutomaticFirebaseConsentUpdatesEnabled = () => {
|
|
268
|
+
return getOptionalNativeMethod('isAutomaticFirebaseConsentUpdatesEnabled')();
|
|
269
|
+
};
|
|
270
|
+
exports.isAutomaticFirebaseConsentUpdatesEnabled = isAutomaticFirebaseConsentUpdatesEnabled;
|
|
271
|
+
const updateFirebaseConsent = () => {
|
|
272
|
+
return getOptionalNativeMethod('updateFirebaseConsent')();
|
|
273
|
+
};
|
|
274
|
+
exports.updateFirebaseConsent = updateFirebaseConsent;
|
|
275
|
+
const isFirebaseAnalyticsAvailable = () => {
|
|
276
|
+
return getOptionalNativeMethod('isFirebaseAnalyticsAvailable')();
|
|
277
|
+
};
|
|
241
278
|
|
|
242
279
|
// Re-export types for consumer convenience
|
|
243
|
-
exports.
|
|
280
|
+
exports.isFirebaseAnalyticsAvailable = isFirebaseAnalyticsAvailable;
|
|
244
281
|
/**
|
|
245
282
|
* Helper factory to build strongly-typed background styles.
|
|
246
283
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_NativeCmSdkReactNativeV","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LINKING_ERROR","Platform","select","ios","CmSdkReactNativeV3","NativeCmSdkReactNativeV3","NativeModules","Proxy","Error","eventEmitter","NativeEventEmitter","addConsentListener","callback","addListener","event","consent","jsonObject","exports","addShowConsentLayerListener","addCloseConsentLayerListener","addErrorListener","error","addClickLinkListener","url","addATTStatusChangeListener","setUrlConfig","config","setWebViewConfig","normalized","normalizeWebViewConfig","setATTStatus","status","allowed","Set","ATTStatus","NotDetermined","Restricted","Denied","Authorized","checkAndOpen","jumpToSettings","forceOpen","getUserStatus","position","WebViewPosition","FullScreen","allowedPositions","HalfScreenTop","HalfScreenBottom","Custom","includes","customRect","OS","console","warn","backgroundStyle","type","BackgroundStyleType","Dimmed","color","normalizeColor","opacity","Color","Blur","blurStyle","blurEffectStyle","BlurEffectStyle","Dark","Light","ExtraLight","None","cornerRadius","respectsSafeArea","allowsOrientationChanges","undefined","processed","processColor","getStatusForPurpose","purposeId","getStatusForVendor","vendorId","getGoogleConsentModeStatus","exportCMPInfo","importCMPInfo","cmpString","resetConsentManagementData","acceptVendors","vendors","rejectVendors","acceptPurposes","purposes","updatePurpose","rejectPurposes","updateVendor","rejectAll","acceptAll","BackgroundStyle","dimmed","blur","none","_default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_NativeCmSdkReactNativeV","_interopRequireWildcard","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","LINKING_ERROR","Platform","select","ios","CmSdkReactNativeV3","NativeCmSdkReactNativeV3","NativeModules","Proxy","Error","eventEmitter","NativeEventEmitter","getOptionalNativeMethod","methodName","method","String","OS","bind","addConsentListener","callback","addListener","event","consent","jsonObject","exports","addShowConsentLayerListener","addCloseConsentLayerListener","addErrorListener","error","addClickLinkListener","url","addATTStatusChangeListener","setUrlConfig","config","setWebViewConfig","normalized","normalizeWebViewConfig","setATTStatus","status","allowed","Set","ATTStatus","NotDetermined","Restricted","Denied","Authorized","checkAndOpen","jumpToSettings","forceOpen","getUserStatus","isConsentRequired","position","WebViewPosition","FullScreen","allowedPositions","HalfScreenTop","HalfScreenBottom","Custom","includes","customRect","console","warn","backgroundStyle","type","BackgroundStyleType","Dimmed","color","normalizeColor","opacity","Color","Blur","blurStyle","blurEffectStyle","BlurEffectStyle","Dark","Light","ExtraLight","fallbackColor","fallbackOpacity","None","cornerRadius","respectsSafeArea","allowsOrientationChanges","darkMode","navigationBarColor","undefined","processed","processColor","getStatusForPurpose","purposeId","getStatusForVendor","vendorId","getGoogleConsentModeStatus","exportCMPInfo","importCMPInfo","cmpString","resetConsentManagementData","acceptVendors","vendors","rejectVendors","acceptPurposes","purposes","updatePurpose","rejectPurposes","updateVendor","rejectAll","acceptAll","setAutomaticConsentUpdatesEnabled","enabled","updateThirdPartyConsent","configureAutomaticFirebaseConsentUpdates","setAutomaticFirebaseConsentUpdatesEnabled","isAutomaticFirebaseConsentUpdatesEnabled","updateFirebaseConsent","isFirebaseAnalyticsAvailable","BackgroundStyle","dimmed","blur","none","_default"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["NativeModules","WebViewPosition","BackgroundStyleType","BlurEffectStyle","ATTStatus","CmSdkReactNativeV3"],"sourceRoot":"../../src","sources":["NativeCmSdkReactNativeV3.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,cAAc;;AAE5C;;AAoBA;;
|
|
1
|
+
{"version":3,"names":["NativeModules","WebViewPosition","BackgroundStyleType","BlurEffectStyle","ATTStatus","CmSdkReactNativeV3"],"sourceRoot":"../../src","sources":["NativeCmSdkReactNativeV3.ts"],"mappings":";;AAAA,SAASA,aAAa,QAAQ,cAAc;;AAE5C;;AAoBA;;AAeA,WAAYC,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAc3B,WAAYC,mBAAmB,0BAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAnBA,mBAAmB;EAAA,OAAnBA,mBAAmB;AAAA;AAO/B,WAAYC,eAAe,0BAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAfA,eAAe;EAAA,OAAfA,eAAe;AAAA;AAM3B,WAAYC,SAAS,0BAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAATA,SAAS,CAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AA4FrB,MAAM;EAAEC;AAAmB,CAAC,GAAGL,aAAa;AAE5C,eAAeK,kBAAkB","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -5,7 +5,7 @@ import NativeCmSdkReactNativeV3, { WebViewPosition, BackgroundStyleType, BlurEff
|
|
|
5
5
|
|
|
6
6
|
// Re-export enums/constants for consumers
|
|
7
7
|
export { WebViewPosition, BackgroundStyleType, BlurEffectStyle, ATTStatus };
|
|
8
|
-
const LINKING_ERROR = `The package '
|
|
8
|
+
const LINKING_ERROR = `The package 'cm-sdk-react-native-v3' doesn't seem to be linked. Make sure: \n\n` + Platform.select({
|
|
9
9
|
ios: "- You have run 'pod install'\n",
|
|
10
10
|
default: ''
|
|
11
11
|
}) + '- You rebuilt the app after installing the package\n' + '- You are not using Expo Go\n';
|
|
@@ -15,6 +15,13 @@ const CmSdkReactNativeV3 = NativeCmSdkReactNativeV3 ?? NativeModules.CmSdkReactN
|
|
|
15
15
|
}
|
|
16
16
|
});
|
|
17
17
|
const eventEmitter = new NativeEventEmitter(CmSdkReactNativeV3);
|
|
18
|
+
const getOptionalNativeMethod = methodName => {
|
|
19
|
+
const method = CmSdkReactNativeV3[methodName];
|
|
20
|
+
if (typeof method !== 'function') {
|
|
21
|
+
throw new Error(`[cm-sdk-react-native-v3] ${String(methodName)} is not available on ${Platform.OS}.`);
|
|
22
|
+
}
|
|
23
|
+
return method.bind(CmSdkReactNativeV3);
|
|
24
|
+
};
|
|
18
25
|
export const addConsentListener = callback => {
|
|
19
26
|
return eventEmitter.addListener('didReceiveConsent', event => {
|
|
20
27
|
callback(event.consent, event.jsonObject);
|
|
@@ -68,6 +75,9 @@ export const forceOpen = jumpToSettings => {
|
|
|
68
75
|
export const getUserStatus = () => {
|
|
69
76
|
return CmSdkReactNativeV3.getUserStatus();
|
|
70
77
|
};
|
|
78
|
+
export const isConsentRequired = () => {
|
|
79
|
+
return CmSdkReactNativeV3.isConsentRequired();
|
|
80
|
+
};
|
|
71
81
|
|
|
72
82
|
// Helpers
|
|
73
83
|
const normalizeWebViewConfig = config => {
|
|
@@ -81,7 +91,7 @@ const normalizeWebViewConfig = config => {
|
|
|
81
91
|
throw new Error('customRect is required when position is "custom"');
|
|
82
92
|
}
|
|
83
93
|
if (Platform.OS === 'android') {
|
|
84
|
-
console.warn('[cm-sdk-react-native-v3] Android native SDK
|
|
94
|
+
console.warn('[cm-sdk-react-native-v3] Android native SDK uses width/height/gravity for custom positioning, so RN customRect falls back to full screen.');
|
|
85
95
|
}
|
|
86
96
|
}
|
|
87
97
|
const backgroundStyle = (() => {
|
|
@@ -114,12 +124,11 @@ const normalizeWebViewConfig = config => {
|
|
|
114
124
|
if (blurStyle !== BlurEffectStyle.Dark && blurStyle !== BlurEffectStyle.Light && blurStyle !== BlurEffectStyle.ExtraLight) {
|
|
115
125
|
throw new Error(`Invalid blurEffectStyle: ${blurStyle}`);
|
|
116
126
|
}
|
|
117
|
-
if (Platform.OS === 'android') {
|
|
118
|
-
console.warn('[cm-sdk-react-native-v3] Android native SDK currently ignores blur backgrounds; using dimmed.');
|
|
119
|
-
}
|
|
120
127
|
return {
|
|
121
128
|
type,
|
|
122
|
-
blurEffectStyle: blurStyle
|
|
129
|
+
blurEffectStyle: blurStyle,
|
|
130
|
+
fallbackColor: normalizeColor(config.backgroundStyle.fallbackColor ?? 'black'),
|
|
131
|
+
fallbackOpacity: config.backgroundStyle.fallbackOpacity ?? 0.5
|
|
123
132
|
};
|
|
124
133
|
}
|
|
125
134
|
case BackgroundStyleType.None:
|
|
@@ -130,15 +139,14 @@ const normalizeWebViewConfig = config => {
|
|
|
130
139
|
throw new Error(`Invalid backgroundStyle type: ${config.backgroundStyle.type}`);
|
|
131
140
|
}
|
|
132
141
|
})();
|
|
133
|
-
if (Platform.OS === 'android' && config.backgroundStyle) {
|
|
134
|
-
console.warn('[cm-sdk-react-native-v3] Android native SDK currently ignores backgroundStyle overrides; it always uses a dimmed background.');
|
|
135
|
-
}
|
|
136
142
|
return {
|
|
137
143
|
position,
|
|
138
144
|
customRect: config.customRect,
|
|
139
145
|
cornerRadius: config.cornerRadius ?? 5,
|
|
140
146
|
respectsSafeArea: config.respectsSafeArea ?? true,
|
|
141
147
|
allowsOrientationChanges: config.allowsOrientationChanges ?? true,
|
|
148
|
+
darkMode: config.darkMode ?? false,
|
|
149
|
+
navigationBarColor: normalizeColor(config.navigationBarColor),
|
|
142
150
|
backgroundStyle
|
|
143
151
|
};
|
|
144
152
|
};
|
|
@@ -186,6 +194,27 @@ export const rejectAll = () => {
|
|
|
186
194
|
export const acceptAll = () => {
|
|
187
195
|
return CmSdkReactNativeV3.acceptAll();
|
|
188
196
|
};
|
|
197
|
+
export const setAutomaticConsentUpdatesEnabled = enabled => {
|
|
198
|
+
return getOptionalNativeMethod('setAutomaticConsentUpdatesEnabled')(enabled);
|
|
199
|
+
};
|
|
200
|
+
export const updateThirdPartyConsent = () => {
|
|
201
|
+
return getOptionalNativeMethod('updateThirdPartyConsent')();
|
|
202
|
+
};
|
|
203
|
+
export const configureAutomaticFirebaseConsentUpdates = enabled => {
|
|
204
|
+
return getOptionalNativeMethod('configureAutomaticFirebaseConsentUpdates')(enabled);
|
|
205
|
+
};
|
|
206
|
+
export const setAutomaticFirebaseConsentUpdatesEnabled = enabled => {
|
|
207
|
+
return getOptionalNativeMethod('setAutomaticFirebaseConsentUpdatesEnabled')(enabled);
|
|
208
|
+
};
|
|
209
|
+
export const isAutomaticFirebaseConsentUpdatesEnabled = () => {
|
|
210
|
+
return getOptionalNativeMethod('isAutomaticFirebaseConsentUpdatesEnabled')();
|
|
211
|
+
};
|
|
212
|
+
export const updateFirebaseConsent = () => {
|
|
213
|
+
return getOptionalNativeMethod('updateFirebaseConsent')();
|
|
214
|
+
};
|
|
215
|
+
export const isFirebaseAnalyticsAvailable = () => {
|
|
216
|
+
return getOptionalNativeMethod('isFirebaseAnalyticsAvailable')();
|
|
217
|
+
};
|
|
189
218
|
|
|
190
219
|
// Re-export types for consumer convenience
|
|
191
220
|
|