@trycourier/courier-react-native 5.8.0 → 6.0.1

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.
@@ -111,9 +111,12 @@ dependencies {
111
111
  implementation 'com.google.code.gson:gson:2.11.0'
112
112
 
113
113
  // Courier Core SDK
114
- api 'com.github.trycourier:courier-android:5.3.1'
114
+ api 'com.github.trycourier:courier-android:6.0.1'
115
115
  api 'androidx.recyclerview:recyclerview:1.3.2'
116
116
 
117
+ // Firebase Messaging (needed to resolve RemoteMessage from Courier SDK APIs)
118
+ compileOnly 'com.google.firebase:firebase-messaging:23.4.1'
119
+
117
120
  }
118
121
 
119
122
  if (isNewArchitectureEnabled()) {
@@ -120,6 +120,8 @@ class CourierInboxViewManager : SimpleViewManager<CourierInbox>() {
120
120
 
121
121
  val brandId = getString("brandId")
122
122
  val backgroundColor = getString("backgroundColor")
123
+ val listItemBackgroundColor = getString("listItemBackgroundColor")
124
+ val tabBackgroundColor = getString("tabBackgroundColor")
123
125
 
124
126
  val tabIndicatorColor = getString("tabIndicatorColor")
125
127
  val tabStyle = getMap("tabStyle")
@@ -141,6 +143,8 @@ class CourierInboxViewManager : SimpleViewManager<CourierInbox>() {
141
143
  return CourierInboxTheme(
142
144
  brandId = brandId,
143
145
  backgroundColor = backgroundColor?.toColor(),
146
+ listItemBackgroundColor = listItemBackgroundColor?.toColor(),
147
+ tabBackgroundColor = tabBackgroundColor?.toColor(),
144
148
  tabIndicatorColor = tabIndicatorColor?.toColor(),
145
149
  tabStyle = tabStyle?.toTabStyle(context) ?: CourierStyles.Inbox.TabStyle(
146
150
  selected = CourierStyles.Inbox.TabItemStyle(
@@ -10,16 +10,11 @@ open class CourierReactNativeActivity : ReactActivity() {
10
10
 
11
11
  override fun onCreate(savedInstanceState: Bundle?) {
12
12
 
13
- // Update the user agent
14
13
  Courier.agent = Utils.COURIER_AGENT
15
-
16
- // Starts the Courier SDK
17
- // Used to ensure shared preferences works properly
18
14
  Courier.initialize(this)
19
15
 
20
16
  super.onCreate(savedInstanceState)
21
17
 
22
- // See if there is a pending click event
23
18
  checkIntentForPushNotificationClick(intent)
24
19
 
25
20
  }
@@ -30,6 +25,9 @@ open class CourierReactNativeActivity : ReactActivity() {
30
25
  }
31
26
 
32
27
  private fun checkIntentForPushNotificationClick(intent: Intent?) {
28
+ // The Courier SDK broadcasts a CLICKED event via Courier.onPushNotificationEvent
29
+ // which is observed in CourierSystemModule. No need to reach into the React
30
+ // context here, which would crash on Bridgeless / cold start.
33
31
  intent?.trackPushNotificationClick {}
34
32
  }
35
33
 
@@ -2,31 +2,29 @@ package com.courierreactnative
2
2
 
3
3
  import android.content.Intent
4
4
  import android.provider.Settings
5
- import android.util.Log
6
5
  import com.courier.android.Courier
7
6
  import com.courier.android.models.CourierTrackingEvent.CLICKED
8
7
  import com.courier.android.models.CourierTrackingEvent.DELIVERED
9
8
  import com.courier.android.modules.isPushPermissionGranted
10
9
  import com.courier.android.modules.requestNotificationPermission
11
10
  import com.courier.android.utils.error
12
- import com.courier.android.utils.onPushNotificationEvent
13
- import com.courier.android.utils.pushNotification
14
11
  import com.courier.android.utils.trackPushNotificationClick
15
12
  import com.facebook.react.bridge.Promise
16
13
  import com.facebook.react.bridge.ReactApplicationContext
17
14
  import com.facebook.react.bridge.ReactMethod
18
- import com.google.firebase.messaging.RemoteMessage
19
15
  import org.json.JSONObject
20
16
 
21
17
  class CourierSystemModule(reactContext: ReactApplicationContext): ReactNativeModule(tag = "System Error", name = "CourierSystemModule", reactContext = reactContext) {
22
18
 
19
+ private var lastClickedPushNotification: String? = null
20
+
23
21
  init {
24
22
 
25
- Courier.shared.onPushNotificationEvent { event ->
23
+ Courier.onPushNotificationEvent { event ->
26
24
  when (event.trackingEvent) {
27
- CLICKED -> postPushNotificationJavascriptEvent(CourierEvents.Push.CLICKED_EVENT, event.remoteMessage)
28
- DELIVERED -> postPushNotificationJavascriptEvent(CourierEvents.Push.DELIVERED_EVENT, event.remoteMessage)
29
- else -> Log.w("CourierSystemModule", "Unknown tracking event: ${event.trackingEvent}")
25
+ DELIVERED -> postPushNotificationJavascriptEvent(CourierEvents.Push.DELIVERED_EVENT, event.data)
26
+ CLICKED -> postPushNotificationClickedEvent(event.data)
27
+ else -> {}
30
28
  }
31
29
  }
32
30
 
@@ -44,24 +42,53 @@ class CourierSystemModule(reactContext: ReactApplicationContext): ReactNativeMod
44
42
 
45
43
  @ReactMethod
46
44
  fun registerPushNotificationClickedOnKilledState() {
47
- activity?.let { act ->
48
- checkIntentForPushNotificationClick(act.intent)
45
+ lastClickedPushNotification?.let { payload ->
46
+ reactApplicationContext.sendEvent(
47
+ eventName = CourierEvents.Push.CLICKED_EVENT,
48
+ value = payload
49
+ )
50
+ lastClickedPushNotification = null
49
51
  }
50
52
  }
51
53
 
52
- private fun checkIntentForPushNotificationClick(intent: Intent?) {
54
+ fun checkIntentForPushNotificationClick(intent: Intent?) {
53
55
  intent?.trackPushNotificationClick { message ->
54
- postPushNotificationJavascriptEvent(CourierEvents.Push.CLICKED_EVENT, message)
56
+ postPushNotificationClickedEvent(message.data)
55
57
  }
56
58
  }
57
59
 
58
- private fun postPushNotificationJavascriptEvent(eventName: String, message: RemoteMessage) {
60
+ private fun postPushNotificationClickedEvent(data: Map<String, String>) {
61
+ val payload = buildPushPayload(data)
62
+ lastClickedPushNotification = payload
63
+ reactApplicationContext.sendEvent(
64
+ eventName = CourierEvents.Push.CLICKED_EVENT,
65
+ value = payload
66
+ )
67
+ }
68
+
69
+ private fun postPushNotificationJavascriptEvent(eventName: String, data: Map<String, String>) {
70
+ val payload = buildPushPayload(data)
59
71
  reactApplicationContext.sendEvent(
60
72
  eventName = eventName,
61
- value = JSONObject(message.pushNotification).toString()
73
+ value = payload
62
74
  )
63
75
  }
64
76
 
77
+ private fun buildPushPayload(data: Map<String, String>): String {
78
+ val rawData = data.toMutableMap()
79
+ val payload = mutableMapOf<String, Any?>()
80
+ val baseKeys = listOf("title", "subtitle", "body", "badge", "sound")
81
+ baseKeys.forEach { key ->
82
+ payload[key] = data[key]
83
+ rawData.remove(key)
84
+ }
85
+ for ((key, value) in rawData) {
86
+ payload[key] = value
87
+ }
88
+ payload["raw"] = data
89
+ return JSONObject(payload).toString()
90
+ }
91
+
65
92
  @ReactMethod
66
93
  fun requestNotificationPermission(promise: Promise) {
67
94
 
@@ -15,7 +15,7 @@ import com.facebook.react.modules.core.DeviceEventManagerModule
15
15
  import com.google.gson.GsonBuilder
16
16
 
17
17
  internal object Utils {
18
- val COURIER_AGENT = CourierAgent.ReactNativeAndroid(version = "5.8.0")
18
+ val COURIER_AGENT = CourierAgent.ReactNativeAndroid(version = "6.0.1")
19
19
  }
20
20
 
21
21
  internal fun ReactContext.sendEvent(eventName: String, value: Any?) {
@@ -17,7 +17,7 @@ Pod::Spec.new do |s|
17
17
  s.source_files = "ios/**/*.{h,m,mm,swift}"
18
18
 
19
19
  # Courier Core Dependency
20
- s.dependency "Courier_iOS", "5.8.1"
20
+ s.dependency "Courier_iOS", "5.8.3"
21
21
 
22
22
  # Use install_modules_dependencies helper to install the dependencies if React Native version >=0.71.0.
23
23
  # See https://github.com/facebook/react-native/blob/febf6b7f33fdb4904669f99d795eba4c0f95d7bf/scripts/cocoapods/new_architecture.rb#L79.
@@ -46,14 +46,6 @@ class CourierInboxView : UIView {
46
46
  let lightTheme = theme?["light"] as? NSDictionary
47
47
  let darkTheme = theme?["dark"] as? NSDictionary
48
48
 
49
- let lightBgColor = (lightTheme?["backgroundColor"] as? String)?.toColor()
50
- let darkBgColor = (darkTheme?["backgroundColor"] as? String)?.toColor()
51
- if let bgColor = traitCollection.userInterfaceStyle == .dark ? darkBgColor ?? lightBgColor : lightBgColor ?? darkBgColor {
52
- self.backgroundColor = bgColor
53
- } else {
54
- self.backgroundColor = nil
55
- }
56
-
57
49
  let courierInbox = CourierInbox(
58
50
  canSwipePages: self.canSwipePages,
59
51
  lightTheme: lightTheme?.toInboxTheme() ?? .defaultLight,
@@ -322,6 +314,9 @@ internal extension NSDictionary {
322
314
  let defaultTheme = CourierInboxTheme()
323
315
 
324
316
  let brandId = self["brandId"] as? String
317
+ let backgroundColor = self["backgroundColor"] as? String
318
+ let tabBackgroundColor = self["tabBackgroundColor"] as? String
319
+ let listItemBackgroundColor = self["listItemBackgroundColor"] as? String
325
320
  let tabIndicatorColor = self["tabIndicatorColor"] as? String
326
321
  let tabStyle = self["tabStyle"] as? NSDictionary
327
322
  let readingSwipeActionStyle = self["readingSwipeActionStyle"] as? NSDictionary
@@ -340,6 +335,9 @@ internal extension NSDictionary {
340
335
 
341
336
  return CourierInboxTheme(
342
337
  brandId: brandId,
338
+ backgroundColor: backgroundColor?.toColor() ?? .systemBackground,
339
+ tabBackgroundColor: tabBackgroundColor?.toColor() ?? .systemBackground,
340
+ listItemBackgroundColor: listItemBackgroundColor?.toColor() ?? .systemBackground,
343
341
  tabIndicatorColor: tabIndicatorColor?.toColor(),
344
342
  tabStyle: tabStyle?.toTabStyle() ?? CourierInboxView.defaultTabStyle(),
345
343
  readingSwipeActionStyle: readingSwipeActionStyle?.toReadingSwipeActionStyle() ?? CourierInboxView.defaultReadingStyle(),
@@ -33,7 +33,7 @@ static NSString *const CourierForegroundOptionsDidChangeNotification = @"iosFore
33
33
  if (self) {
34
34
 
35
35
  // Set the user agent
36
- Courier.agent = [CourierAgent reactNativeIOS:@"5.8.0"];
36
+ Courier.agent = [CourierAgent reactNativeIOS:@"6.0.1"];
37
37
 
38
38
  // Register for remote notifications
39
39
  UIApplication *app = [UIApplication sharedApplication];
@@ -14,7 +14,7 @@ internal class CourierReactNativeEventEmitter: RCTEventEmitter {
14
14
 
15
15
  // Set the user agent
16
16
  // Used to know the platform performing requests
17
- Courier.agent = CourierAgent.reactNativeIOS("5.8.0")
17
+ Courier.agent = CourierAgent.reactNativeIOS("6.0.1")
18
18
 
19
19
  }
20
20
 
@@ -99,18 +99,15 @@ class CourierSystemModule: CourierReactNativeEventEmitter {
99
99
  let pollInterval: UInt64 = 250_000_000 // 250ms
100
100
  let timeout: UInt64 = 10_000_000_000 // 10s
101
101
 
102
- // Poll until react native is ready
103
102
  Task.detached(priority: .background) { [weak self] in
104
103
  guard let self else { return }
105
104
 
106
105
  let start = DispatchTime.now().uptimeNanoseconds
107
106
 
108
- // Hold until react native is ready
109
107
  while !self.isReactNativeReady, DispatchTime.now().uptimeNanoseconds - start < timeout {
110
108
  try? await Task.sleep(nanoseconds: pollInterval)
111
109
  }
112
110
 
113
- // If possible, broadcast the message
114
111
  await MainActor.run {
115
112
  guard self.isReactNativeReady, let message = self.lastClickedMessage else {
116
113
  NSLog("[Courier] Timed out waiting for React Native or no message available.")
@@ -118,6 +115,7 @@ class CourierSystemModule: CourierReactNativeEventEmitter {
118
115
  }
119
116
 
120
117
  self.broadcast(name: PushEvents.CLICKED_EVENT, message: message)
118
+ self.lastClickedMessage = nil
121
119
  }
122
120
  }
123
121
  }
@@ -39,6 +39,8 @@ export interface CourierArchivingSwipeActionStyle {
39
39
  export interface CourierInboxTheme {
40
40
  brandId?: string;
41
41
  backgroundColor?: string;
42
+ listItemBackgroundColor?: string;
43
+ tabBackgroundColor?: string;
42
44
  tabIndicatorColor?: string;
43
45
  tabStyle?: CourierInboxTabStyle;
44
46
  readingSwipeActionStyle?: CourierReadingSwipeActionStyle;
@@ -1 +1 @@
1
- {"version":3,"file":"CourierInboxTheme.d.ts","sourceRoot":"","sources":["../../../../src/models/CourierInboxTheme.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,6BAA6B,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,UAAU,CAAC,EAAE,wBAAwB,CAAC;CACvC;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,CAAC,EAAE,uBAAuB,CAAC;IAC/B,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,CAAC,EAAE,uBAAuB,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,uBAAuB,CAAC,EAAE,8BAA8B,CAAC;IACzD,yBAAyB,CAAC,EAAE,gCAAgC,CAAC;IAC7D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,gCAAgC,CAAC;IACxD,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,GAAG,CAAC,EAAE;QACJ,qBAAqB,CAAC,EAClB,MAAM,GACN,OAAO,GACP,MAAM,GACN,KAAK,GACL,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,WAAW,CAAC;QAChB,UAAU,CAAC,EAAE;YACX,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,kBAAkB,CAAC;YAC5D,eAAe,CAAC,EAAE;gBAChB,GAAG,CAAC,EAAE,MAAM,CAAC;gBACb,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,MAAM,CAAC,EAAE,MAAM,CAAC;gBAChB,KAAK,CAAC,EAAE,MAAM,CAAC;aAChB,CAAC;YACF,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;SACvD,CAAC;KACH,CAAC;IACF,OAAO,CAAC,EAAE;QACR,qBAAqB,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;KAC7C,CAAC;CACH"}
1
+ {"version":3,"file":"CourierInboxTheme.d.ts","sourceRoot":"","sources":["../../../../src/models/CourierInboxTheme.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAE9D,MAAM,WAAW,uBAAuB;IACtC,MAAM,CAAC,EAAE,aAAa,CAAC;IACvB,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,IAAI,CAAC,EAAE,WAAW,CAAC;CACpB;AAED,MAAM,WAAW,gCAAgC;IAC/C,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,6BAA6B;IAC5C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,SAAS,CAAC,EAAE,6BAA6B,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,wBAAwB,CAAC;IACpC,UAAU,CAAC,EAAE,wBAAwB,CAAC;CACvC;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,8BAA8B;IAC7C,IAAI,CAAC,EAAE,uBAAuB,CAAC;IAC/B,MAAM,CAAC,EAAE,uBAAuB,CAAC;CAClC;AAED,MAAM,WAAW,gCAAgC;IAC/C,OAAO,CAAC,EAAE,uBAAuB,CAAC;CACnC;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,QAAQ,CAAC,EAAE,oBAAoB,CAAC;IAChC,uBAAuB,CAAC,EAAE,8BAA8B,CAAC;IACzD,yBAAyB,CAAC,EAAE,gCAAgC,CAAC;IAC7D,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,oBAAoB,CAAC,EAAE,gCAAgC,CAAC;IACxD,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,SAAS,CAAC,EAAE,qBAAqB,CAAC;IAClC,WAAW,CAAC,EAAE,uBAAuB,CAAC;IACtC,aAAa,CAAC,EAAE,oBAAoB,CAAC;IACrC,GAAG,CAAC,EAAE;QACJ,qBAAqB,CAAC,EAClB,MAAM,GACN,OAAO,GACP,MAAM,GACN,KAAK,GACL,QAAQ,GACR,MAAM,GACN,QAAQ,GACR,WAAW,CAAC;QAChB,UAAU,CAAC,EAAE;YACX,cAAc,CAAC,EAAE,MAAM,GAAG,YAAY,GAAG,kBAAkB,CAAC;YAC5D,eAAe,CAAC,EAAE;gBAChB,GAAG,CAAC,EAAE,MAAM,CAAC;gBACb,IAAI,CAAC,EAAE,MAAM,CAAC;gBACd,MAAM,CAAC,EAAE,MAAM,CAAC;gBAChB,KAAK,CAAC,EAAE,MAAM,CAAC;aAChB,CAAC;YACF,cAAc,CAAC,EAAE,MAAM,CAAC;YACxB,cAAc,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;SACvD,CAAC;KACH,CAAC;IACF,OAAO,CAAC,EAAE;QACR,qBAAqB,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;KAC7C,CAAC;CACH"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trycourier/courier-react-native",
3
- "version": "5.8.0",
3
+ "version": "6.0.1",
4
4
  "description": "Inbox, Push Notifications, and Preferences for React Native",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -14,7 +14,6 @@
14
14
  "ios",
15
15
  "cpp",
16
16
  "*.podspec",
17
- "!lib/typescript/example-073",
18
17
  "!lib/typescript/example-085",
19
18
  "!ios/build",
20
19
  "!android/build",
@@ -34,7 +33,6 @@
34
33
  "prepack": "bob build",
35
34
  "release": "release-it",
36
35
  "example": "yarn --cwd example-085",
37
- "example-073": "yarn --cwd example-073",
38
36
  "build:android": "cd example-085/android && ./gradlew assembleDebug --no-daemon --console=plain -PreactNativeArchitectures=arm64-v8a",
39
37
  "build:ios": "cd example-085/ios && xcodebuild -workspace CourierReactNativeExample.xcworkspace -scheme CourierReactNativeExample -configuration Debug -sdk iphonesimulator CC=clang CPLUSPLUS=clang++ LD=clang LDPLUSPLUS=clang++ GCC_OPTIMIZATION_LEVEL=0 GCC_PRECOMPILE_PREFIX_HEADER=YES ASSETCATALOG_COMPILER_OPTIMIZATION=time DEBUG_INFORMATION_FORMAT=dwarf COMPILER_INDEX_STORE_ENABLE=NO",
40
38
  "bootstrap": "yarn example && yarn install && yarn example pods",
@@ -99,7 +97,6 @@
99
97
  "preset": "react-native",
100
98
  "modulePathIgnorePatterns": [
101
99
  "<rootDir>/example-085/node_modules",
102
- "<rootDir>/example-073/node_modules",
103
100
  "<rootDir>/example-expo-55/node_modules",
104
101
  "<rootDir>/lib/"
105
102
  ]
@@ -49,6 +49,8 @@ export interface CourierArchivingSwipeActionStyle {
49
49
  export interface CourierInboxTheme {
50
50
  brandId?: string;
51
51
  backgroundColor?: string;
52
+ listItemBackgroundColor?: string;
53
+ tabBackgroundColor?: string;
52
54
  tabIndicatorColor?: string;
53
55
  tabStyle?: CourierInboxTabStyle;
54
56
  readingSwipeActionStyle?: CourierReadingSwipeActionStyle;