@trycourier/courier-react-native 2.0.0-beta2 → 2.0.0-beta3
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/ios/CourierReactNativeModule.m +43 -4
- package/ios/CourierReactNativeModule.swift +87 -79
- package/ios/CourierReactNativeViewManager.m +1 -3
- package/ios/CourierReactNativeViewManager.swift +4 -17
- package/lib/commonjs/hooks/useCourier.js +224 -0
- package/lib/commonjs/hooks/useCourier.js.map +1 -0
- package/lib/commonjs/index.js +193 -12
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/models/CourierAuthenticationListener.js +21 -0
- package/lib/commonjs/models/CourierAuthenticationListener.js.map +1 -0
- package/lib/commonjs/models/CourierPushListener.js +15 -0
- package/lib/commonjs/models/CourierPushListener.js.map +1 -0
- package/lib/commonjs/views/CourierInboxView.js +4 -2
- package/lib/commonjs/views/CourierInboxView.js.map +1 -1
- package/lib/module/hooks/useCourier.js +213 -0
- package/lib/module/hooks/useCourier.js.map +1 -0
- package/lib/module/index.js +166 -13
- package/lib/module/index.js.map +1 -1
- package/lib/module/models/CourierAuthenticationListener.js +13 -0
- package/lib/module/models/CourierAuthenticationListener.js.map +1 -0
- package/lib/module/models/CourierPushListener.js +8 -0
- package/lib/module/models/CourierPushListener.js.map +1 -0
- package/lib/module/views/CourierInboxView.js +4 -2
- package/lib/module/views/CourierInboxView.js.map +1 -1
- package/lib/typescript/hooks/useCourier.d.ts +52 -0
- package/lib/typescript/hooks/useCourier.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +81 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/CourierAuthenticationListener.d.ts +7 -0
- package/lib/typescript/models/CourierAuthenticationListener.d.ts.map +1 -0
- package/lib/typescript/models/CourierPushListener.d.ts +7 -0
- package/lib/typescript/models/CourierPushListener.d.ts.map +1 -0
- package/lib/typescript/views/CourierInboxView.d.ts +4 -2
- package/lib/typescript/views/CourierInboxView.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/hooks/useCourier.tsx +291 -0
- package/src/index.tsx +185 -13
- package/src/models/CourierAuthenticationListener.tsx +19 -0
- package/src/models/CourierPushListener.tsx +13 -0
- package/src/views/CourierInboxView.tsx +5 -4
|
@@ -3,7 +3,11 @@
|
|
|
3
3
|
@interface RCT_EXTERN_MODULE(CourierReactNativeModule, NSObject)
|
|
4
4
|
|
|
5
5
|
RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(
|
|
6
|
-
setDebugMode: (BOOL
|
|
6
|
+
setDebugMode: (BOOL)isDebugging
|
|
7
|
+
)
|
|
8
|
+
|
|
9
|
+
RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(
|
|
10
|
+
iOSForegroundPresentationOptions: (NSDictionary*)params
|
|
7
11
|
)
|
|
8
12
|
|
|
9
13
|
RCT_EXTERN_METHOD(
|
|
@@ -19,8 +23,39 @@ RCT_EXTERN_METHOD(
|
|
|
19
23
|
withRejecter: (RCTPromiseRejectBlock)reject
|
|
20
24
|
)
|
|
21
25
|
|
|
26
|
+
RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(
|
|
27
|
+
getUserId
|
|
28
|
+
)
|
|
29
|
+
|
|
30
|
+
RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(
|
|
31
|
+
addAuthenticationListener
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(
|
|
35
|
+
removeAuthenticationListener: (NSString*)listenerId
|
|
36
|
+
)
|
|
37
|
+
|
|
38
|
+
RCT_EXTERN_METHOD(
|
|
39
|
+
getNotificationPermissionStatus: (RCTPromiseResolveBlock)resolve
|
|
40
|
+
withRejecter: (RCTPromiseRejectBlock)reject
|
|
41
|
+
)
|
|
42
|
+
|
|
22
43
|
RCT_EXTERN_METHOD(
|
|
23
|
-
|
|
44
|
+
requestNotificationPermission: (RCTPromiseResolveBlock)resolve
|
|
45
|
+
withRejecter: (RCTPromiseRejectBlock)reject
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(
|
|
49
|
+
getApnsToken
|
|
50
|
+
)
|
|
51
|
+
|
|
52
|
+
RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(
|
|
53
|
+
getFcmToken
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
RCT_EXTERN_METHOD(
|
|
57
|
+
setFcmToken: (NSString*)token
|
|
58
|
+
withResolver: (RCTPromiseResolveBlock)resolve
|
|
24
59
|
withRejecter: (RCTPromiseRejectBlock)reject
|
|
25
60
|
)
|
|
26
61
|
|
|
@@ -42,7 +77,7 @@ RCT_EXTERN_METHOD(
|
|
|
42
77
|
)
|
|
43
78
|
|
|
44
79
|
RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(
|
|
45
|
-
addInboxListener
|
|
80
|
+
addInboxListener
|
|
46
81
|
)
|
|
47
82
|
|
|
48
83
|
RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(
|
|
@@ -60,7 +95,11 @@ RCT_EXTERN_METHOD(
|
|
|
60
95
|
)
|
|
61
96
|
|
|
62
97
|
RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(
|
|
63
|
-
setInboxPaginationLimit: (
|
|
98
|
+
setInboxPaginationLimit: (double)limit
|
|
99
|
+
)
|
|
100
|
+
|
|
101
|
+
RCT_EXTERN__BLOCKING_SYNCHRONOUS_METHOD(
|
|
102
|
+
registerPushNotificationClickedOnKilledState
|
|
64
103
|
)
|
|
65
104
|
|
|
66
105
|
@end
|
|
@@ -4,9 +4,19 @@ import Courier_iOS
|
|
|
4
4
|
class CourierReactNativeModule: RCTEventEmitter {
|
|
5
5
|
|
|
6
6
|
private static let COURIER_ERROR_TAG = "Courier iOS SDK Error"
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
|
|
8
|
+
class LogEvents {
|
|
9
|
+
internal static let DEBUG_LOG_EVENT = "courierDebugEvent"
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
class AuthEvents {
|
|
13
|
+
internal static let USER_CHANGED = "courierAuthUserChanged"
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
class PushEvents {
|
|
17
|
+
internal static let CLICKED_EVENT = "pushNotificationClicked"
|
|
18
|
+
internal static let DELIVERED_EVENT = "pushNotificationDelivered"
|
|
19
|
+
}
|
|
10
20
|
|
|
11
21
|
class InboxEvents {
|
|
12
22
|
internal static let INITIAL_LOADING = "inboxInitialLoad"
|
|
@@ -14,6 +24,7 @@ class CourierReactNativeModule: RCTEventEmitter {
|
|
|
14
24
|
internal static let MESSAGES_CHANGED = "inboxMessagesChanged"
|
|
15
25
|
}
|
|
16
26
|
|
|
27
|
+
private var authListeners = [String: CourierAuthenticationListener]()
|
|
17
28
|
private var inboxListeners = [String: CourierInboxListener]()
|
|
18
29
|
|
|
19
30
|
private var hasListeners = false
|
|
@@ -37,12 +48,6 @@ class CourierReactNativeModule: RCTEventEmitter {
|
|
|
37
48
|
|
|
38
49
|
}
|
|
39
50
|
|
|
40
|
-
@objc(setDebugMode:)
|
|
41
|
-
func setDebugMode(isDebugging: Bool) -> String {
|
|
42
|
-
Courier.shared.isDebugging = isDebugging
|
|
43
|
-
return String(describing: Courier.shared.isDebugging)
|
|
44
|
-
}
|
|
45
|
-
|
|
46
51
|
override func startObserving() {
|
|
47
52
|
|
|
48
53
|
hasListeners = true
|
|
@@ -50,7 +55,7 @@ class CourierReactNativeModule: RCTEventEmitter {
|
|
|
50
55
|
// setup listeners
|
|
51
56
|
Courier.shared.logListener = { log in
|
|
52
57
|
self.sendEvent(
|
|
53
|
-
withName: CourierReactNativeModule.
|
|
58
|
+
withName: CourierReactNativeModule.LogEvents.DEBUG_LOG_EVENT,
|
|
54
59
|
body: log
|
|
55
60
|
)
|
|
56
61
|
}
|
|
@@ -69,19 +74,25 @@ class CourierReactNativeModule: RCTEventEmitter {
|
|
|
69
74
|
notificationCenter.addObserver(
|
|
70
75
|
self,
|
|
71
76
|
selector: #selector(pushNotificationClicked),
|
|
72
|
-
name: Notification.Name(rawValue: CourierReactNativeModule.
|
|
77
|
+
name: Notification.Name(rawValue: CourierReactNativeModule.PushEvents.CLICKED_EVENT),
|
|
73
78
|
object: nil
|
|
74
79
|
)
|
|
75
80
|
|
|
76
81
|
notificationCenter.addObserver(
|
|
77
82
|
self,
|
|
78
83
|
selector: #selector(pushNotificationDelivered),
|
|
79
|
-
name: Notification.Name(rawValue: CourierReactNativeModule.
|
|
84
|
+
name: Notification.Name(rawValue: CourierReactNativeModule.PushEvents.DELIVERED_EVENT),
|
|
80
85
|
object: nil
|
|
81
86
|
)
|
|
82
87
|
|
|
83
88
|
}
|
|
84
89
|
|
|
90
|
+
@objc(setDebugMode:)
|
|
91
|
+
func setDebugMode(isDebugging: Bool) -> String {
|
|
92
|
+
Courier.shared.isDebugging = isDebugging
|
|
93
|
+
return String(describing: Courier.shared.isDebugging)
|
|
94
|
+
}
|
|
95
|
+
|
|
85
96
|
private func sendMessage(name: String, message: [AnyHashable: Any]?) {
|
|
86
97
|
|
|
87
98
|
guard let message = message else {
|
|
@@ -103,7 +114,7 @@ class CourierReactNativeModule: RCTEventEmitter {
|
|
|
103
114
|
|
|
104
115
|
lastClickedMessage = notification.userInfo
|
|
105
116
|
sendMessage(
|
|
106
|
-
name: CourierReactNativeModule.
|
|
117
|
+
name: CourierReactNativeModule.PushEvents.CLICKED_EVENT,
|
|
107
118
|
message: lastClickedMessage
|
|
108
119
|
)
|
|
109
120
|
|
|
@@ -112,19 +123,23 @@ class CourierReactNativeModule: RCTEventEmitter {
|
|
|
112
123
|
@objc private func pushNotificationDelivered(notification: Notification) {
|
|
113
124
|
|
|
114
125
|
sendMessage(
|
|
115
|
-
name: CourierReactNativeModule.
|
|
126
|
+
name: CourierReactNativeModule.PushEvents.DELIVERED_EVENT,
|
|
116
127
|
message: notification.userInfo
|
|
117
128
|
)
|
|
118
129
|
|
|
119
130
|
}
|
|
120
131
|
|
|
121
|
-
@objc func registerPushNotificationClickedOnKilledState() {
|
|
132
|
+
@objc func registerPushNotificationClickedOnKilledState() -> String {
|
|
133
|
+
|
|
134
|
+
let event = CourierReactNativeModule.PushEvents.CLICKED_EVENT
|
|
122
135
|
|
|
123
136
|
sendMessage(
|
|
124
|
-
name:
|
|
137
|
+
name: event,
|
|
125
138
|
message: lastClickedMessage
|
|
126
139
|
)
|
|
127
140
|
|
|
141
|
+
return event
|
|
142
|
+
|
|
128
143
|
}
|
|
129
144
|
|
|
130
145
|
@objc(getNotificationPermissionStatus: withRejecter:)
|
|
@@ -176,19 +191,42 @@ class CourierReactNativeModule: RCTEventEmitter {
|
|
|
176
191
|
|
|
177
192
|
}
|
|
178
193
|
|
|
179
|
-
@objc(
|
|
180
|
-
|
|
194
|
+
@objc func getUserId() -> String? {
|
|
195
|
+
return Courier.shared.userId
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
@objc func addAuthenticationListener() -> String {
|
|
181
199
|
|
|
182
|
-
let
|
|
183
|
-
|
|
200
|
+
let listener = Courier.shared.addAuthenticationListener { [weak self] userId in
|
|
201
|
+
|
|
202
|
+
self?.sendEvent(
|
|
203
|
+
withName: CourierReactNativeModule.AuthEvents.USER_CHANGED,
|
|
204
|
+
body: userId
|
|
205
|
+
)
|
|
206
|
+
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// Create an id and add the listener to the dictionary
|
|
210
|
+
let id = UUID().uuidString
|
|
211
|
+
authListeners[id] = listener
|
|
212
|
+
|
|
213
|
+
return id
|
|
184
214
|
|
|
185
215
|
}
|
|
186
|
-
|
|
187
|
-
@objc(
|
|
188
|
-
func
|
|
216
|
+
|
|
217
|
+
@objc(removeAuthenticationListener:)
|
|
218
|
+
func removeAuthenticationListener(listenerId: NSString) -> String {
|
|
219
|
+
|
|
220
|
+
let id = listenerId as String
|
|
221
|
+
|
|
222
|
+
// Remove the listener
|
|
223
|
+
let listener = authListeners[id]
|
|
224
|
+
listener?.remove()
|
|
189
225
|
|
|
190
|
-
|
|
191
|
-
|
|
226
|
+
// Remove from dictionary
|
|
227
|
+
authListeners.removeValue(forKey: id)
|
|
228
|
+
|
|
229
|
+
return id
|
|
192
230
|
|
|
193
231
|
}
|
|
194
232
|
|
|
@@ -206,41 +244,17 @@ class CourierReactNativeModule: RCTEventEmitter {
|
|
|
206
244
|
)
|
|
207
245
|
|
|
208
246
|
}
|
|
209
|
-
|
|
210
|
-
@objc(
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
let token = Courier.shared.apnsToken
|
|
214
|
-
resolve(token)
|
|
215
|
-
|
|
247
|
+
|
|
248
|
+
@objc func getFcmToken() -> String? {
|
|
249
|
+
return Courier.shared.fcmToken
|
|
216
250
|
}
|
|
217
251
|
|
|
218
|
-
@objc
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
guard let courierProviders = providers as? [String] else {
|
|
222
|
-
reject("No provider supported", CourierReactNativeModule.COURIER_ERROR_TAG, nil)
|
|
223
|
-
return
|
|
224
|
-
}
|
|
225
|
-
|
|
226
|
-
// Courier.shared.sendPush(
|
|
227
|
-
// authKey: authKey as String,
|
|
228
|
-
// userId: userId as String,
|
|
229
|
-
// title: title as String,
|
|
230
|
-
// message: body as String,
|
|
231
|
-
// providers: courierProviders,
|
|
232
|
-
// onSuccess: { requestId in
|
|
233
|
-
// resolve(requestId)
|
|
234
|
-
// },
|
|
235
|
-
// onFailure: { error in
|
|
236
|
-
// reject(String(describing: error), CourierReactNative.COURIER_ERROR_TAG, nil)
|
|
237
|
-
// }
|
|
238
|
-
// )
|
|
239
|
-
|
|
252
|
+
@objc func getApnsToken() -> String? {
|
|
253
|
+
return Courier.shared.apnsToken
|
|
240
254
|
}
|
|
241
255
|
|
|
242
256
|
@objc(iOSForegroundPresentationOptions:)
|
|
243
|
-
func iOSForegroundPresentationOptions(params: NSDictionary) {
|
|
257
|
+
func iOSForegroundPresentationOptions(params: NSDictionary) -> String {
|
|
244
258
|
|
|
245
259
|
let rawValue = params.toPresentationOptions().rawValue
|
|
246
260
|
NotificationCenter.default.post(
|
|
@@ -249,13 +263,7 @@ class CourierReactNativeModule: RCTEventEmitter {
|
|
|
249
263
|
userInfo: ["options": rawValue]
|
|
250
264
|
)
|
|
251
265
|
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
@objc(setDebugMode: withResolver: withRejecter:)
|
|
255
|
-
func setDebugMode(isDebugging: Bool, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
|
|
256
|
-
|
|
257
|
-
Courier.shared.isDebugging = isDebugging
|
|
258
|
-
resolve(Courier.shared.isDebugging)
|
|
266
|
+
return String(describing: rawValue)
|
|
259
267
|
|
|
260
268
|
}
|
|
261
269
|
|
|
@@ -303,8 +311,7 @@ class CourierReactNativeModule: RCTEventEmitter {
|
|
|
303
311
|
|
|
304
312
|
}
|
|
305
313
|
|
|
306
|
-
@objc(
|
|
307
|
-
func addInboxListener(listenerId: NSString?) -> String {
|
|
314
|
+
@objc func addInboxListener() -> String {
|
|
308
315
|
|
|
309
316
|
let listener = Courier.shared.addInboxListener(
|
|
310
317
|
onInitialLoad: { [weak self] in
|
|
@@ -348,15 +355,6 @@ class CourierReactNativeModule: RCTEventEmitter {
|
|
|
348
355
|
|
|
349
356
|
}
|
|
350
357
|
|
|
351
|
-
@objc(refreshInbox: withRejecter:)
|
|
352
|
-
func refreshInbox(resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
|
|
353
|
-
|
|
354
|
-
Courier.shared.refreshInbox {
|
|
355
|
-
resolve(nil)
|
|
356
|
-
}
|
|
357
|
-
|
|
358
|
-
}
|
|
359
|
-
|
|
360
358
|
@objc(removeInboxListener:)
|
|
361
359
|
func removeInboxListener(listenerId: NSString) -> String {
|
|
362
360
|
|
|
@@ -373,6 +371,15 @@ class CourierReactNativeModule: RCTEventEmitter {
|
|
|
373
371
|
|
|
374
372
|
}
|
|
375
373
|
|
|
374
|
+
@objc(refreshInbox: withRejecter:)
|
|
375
|
+
func refreshInbox(resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
|
|
376
|
+
|
|
377
|
+
Courier.shared.refreshInbox {
|
|
378
|
+
resolve(nil)
|
|
379
|
+
}
|
|
380
|
+
|
|
381
|
+
}
|
|
382
|
+
|
|
376
383
|
@objc(fetchNextPageOfMessages: withRejecter:)
|
|
377
384
|
func fetchNextPageOfMessages(resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
|
|
378
385
|
|
|
@@ -388,16 +395,17 @@ class CourierReactNativeModule: RCTEventEmitter {
|
|
|
388
395
|
}
|
|
389
396
|
|
|
390
397
|
@objc(setInboxPaginationLimit:)
|
|
391
|
-
func setInboxPaginationLimit(limit:
|
|
392
|
-
Courier.shared.inboxPaginationLimit = limit
|
|
393
|
-
return String(describing:
|
|
398
|
+
func setInboxPaginationLimit(limit: Double) -> String {
|
|
399
|
+
Courier.shared.inboxPaginationLimit = Int(limit)
|
|
400
|
+
return String(describing: Courier.shared.inboxPaginationLimit)
|
|
394
401
|
}
|
|
395
402
|
|
|
396
403
|
override func supportedEvents() -> [String]! {
|
|
397
404
|
return [
|
|
398
|
-
CourierReactNativeModule.
|
|
399
|
-
CourierReactNativeModule.
|
|
400
|
-
CourierReactNativeModule.
|
|
405
|
+
CourierReactNativeModule.LogEvents.DEBUG_LOG_EVENT,
|
|
406
|
+
CourierReactNativeModule.AuthEvents.USER_CHANGED,
|
|
407
|
+
CourierReactNativeModule.PushEvents.CLICKED_EVENT,
|
|
408
|
+
CourierReactNativeModule.PushEvents.DELIVERED_EVENT,
|
|
401
409
|
CourierReactNativeModule.InboxEvents.INITIAL_LOADING,
|
|
402
410
|
CourierReactNativeModule.InboxEvents.ERROR,
|
|
403
411
|
CourierReactNativeModule.InboxEvents.MESSAGES_CHANGED
|
|
@@ -2,9 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
@interface RCT_EXTERN_MODULE(CourierReactNativeViewManager, RCTViewManager)
|
|
4
4
|
|
|
5
|
-
RCT_EXPORT_VIEW_PROPERTY(
|
|
6
|
-
|
|
7
|
-
RCT_EXPORT_VIEW_PROPERTY(darkTheme, NSDictionary)
|
|
5
|
+
RCT_EXPORT_VIEW_PROPERTY(theme, NSDictionary)
|
|
8
6
|
|
|
9
7
|
RCT_EXPORT_VIEW_PROPERTY(onClickInboxMessageAtIndex, RCTBubblingEventBlock)
|
|
10
8
|
|
|
@@ -15,13 +15,7 @@ class CourierReactNativeViewManager: RCTViewManager {
|
|
|
15
15
|
|
|
16
16
|
class CourierReactNativeView : UIView {
|
|
17
17
|
|
|
18
|
-
@objc var
|
|
19
|
-
didSet {
|
|
20
|
-
refreshInbox()
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
@objc var darkTheme: NSDictionary? = [:] {
|
|
18
|
+
@objc var theme: NSDictionary? = [:] {
|
|
25
19
|
didSet {
|
|
26
20
|
refreshInbox()
|
|
27
21
|
}
|
|
@@ -33,16 +27,6 @@ class CourierReactNativeView : UIView {
|
|
|
33
27
|
|
|
34
28
|
@objc var onScrollInbox: RCTBubblingEventBlock? = nil
|
|
35
29
|
|
|
36
|
-
override init(frame: CGRect) {
|
|
37
|
-
super.init(frame: frame)
|
|
38
|
-
refreshInbox()
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
required init?(coder: NSCoder) {
|
|
42
|
-
super.init(coder: coder)
|
|
43
|
-
refreshInbox()
|
|
44
|
-
}
|
|
45
|
-
|
|
46
30
|
private func refreshInbox() {
|
|
47
31
|
|
|
48
32
|
// Disable animations
|
|
@@ -53,6 +37,9 @@ class CourierReactNativeView : UIView {
|
|
|
53
37
|
$0.removeFromSuperview()
|
|
54
38
|
}
|
|
55
39
|
|
|
40
|
+
let lightTheme = theme?["light"] as? NSDictionary
|
|
41
|
+
let darkTheme = theme?["dark"] as? NSDictionary
|
|
42
|
+
|
|
56
43
|
// Create the view
|
|
57
44
|
let courierInbox = CourierInbox(
|
|
58
45
|
lightTheme: dictionaryToTheme(dictionary: lightTheme) ?? .defaultLight,
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useCourier = exports.CourierProvider = void 0;
|
|
7
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
|
+
var _ = _interopRequireDefault(require(".."));
|
|
9
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
10
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
11
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
12
|
+
let authListener = undefined;
|
|
13
|
+
let pushListener = undefined;
|
|
14
|
+
let inboxListener = undefined;
|
|
15
|
+
const CourierContext = /*#__PURE__*/(0, _react.createContext)(undefined);
|
|
16
|
+
const CourierProvider = _ref => {
|
|
17
|
+
let {
|
|
18
|
+
listeners,
|
|
19
|
+
children
|
|
20
|
+
} = _ref;
|
|
21
|
+
// Auth
|
|
22
|
+
const [auth_userId, auth_setUserId] = (0, _react.useState)(undefined);
|
|
23
|
+
const [auth_isLoading, auth_setIsLoading] = (0, _react.useState)(false);
|
|
24
|
+
const [auth_error, auth_setError] = (0, _react.useState)(undefined);
|
|
25
|
+
|
|
26
|
+
// Push
|
|
27
|
+
const [push_pushNotificationDelivered, inbox_setPushNotificationDelivered] = (0, _react.useState)(undefined);
|
|
28
|
+
const [push_pushNotificationClicked, inbox_setPushNotificationClicked] = (0, _react.useState)(undefined);
|
|
29
|
+
const [push_apnsToken, push_setApnsToken] = (0, _react.useState)(undefined);
|
|
30
|
+
const [push_fcmToken, push_setFcmToken] = (0, _react.useState)(undefined);
|
|
31
|
+
const [push_notificationPermission, push_setNotificationPermission] = (0, _react.useState)(undefined);
|
|
32
|
+
|
|
33
|
+
// Inbox
|
|
34
|
+
const [inbox_isLoading, inbox_setIsLoading] = (0, _react.useState)(false);
|
|
35
|
+
const [inbox_isRefreshing, inbox_setIsRefreshing] = (0, _react.useState)(false);
|
|
36
|
+
const [inbox_error, inbox_setError] = (0, _react.useState)(undefined);
|
|
37
|
+
const [inbox_messages, inbox_setMessages] = (0, _react.useState)([]);
|
|
38
|
+
const [inbox_unreadMessageCount, inbox_setUnreadMessageCount] = (0, _react.useState)(0);
|
|
39
|
+
const [inbox_totalMessageCount, inbox_setTotalMessageCount] = (0, _react.useState)(0);
|
|
40
|
+
const [inbox_canPaginate, inbox_setCanPaginate] = (0, _react.useState)(false);
|
|
41
|
+
(0, _react.useEffect)(() => {
|
|
42
|
+
// Get the initial values
|
|
43
|
+
const userId = _.default.shared.userId;
|
|
44
|
+
auth_setUserId(userId);
|
|
45
|
+
|
|
46
|
+
// Permissions
|
|
47
|
+
syncNotificationPermissions();
|
|
48
|
+
|
|
49
|
+
// Push tokens
|
|
50
|
+
syncTokens();
|
|
51
|
+
}, []);
|
|
52
|
+
(0, _react.useEffect)(() => {
|
|
53
|
+
var _authListener, _pushListener, _inboxListener;
|
|
54
|
+
(_authListener = authListener) === null || _authListener === void 0 ? void 0 : _authListener.remove();
|
|
55
|
+
(_pushListener = pushListener) === null || _pushListener === void 0 ? void 0 : _pushListener.remove();
|
|
56
|
+
(_inboxListener = inboxListener) === null || _inboxListener === void 0 ? void 0 : _inboxListener.remove();
|
|
57
|
+
|
|
58
|
+
// Push
|
|
59
|
+
if (listeners.includes('auth')) {
|
|
60
|
+
authListener = _.default.shared.addAuthenticationListener({
|
|
61
|
+
onUserChanged: userId => {
|
|
62
|
+
auth_setUserId(userId);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
// Push
|
|
68
|
+
if (listeners.includes('push')) {
|
|
69
|
+
pushListener = _.default.shared.addPushNotificationListener({
|
|
70
|
+
onPushNotificationDelivered: push => inbox_setPushNotificationDelivered(push),
|
|
71
|
+
onPushNotificationClicked: push => inbox_setPushNotificationClicked(push)
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
// Inbox
|
|
76
|
+
if (listeners.includes('inbox')) {
|
|
77
|
+
inboxListener = _.default.shared.addInboxListener({
|
|
78
|
+
onInitialLoad: () => {
|
|
79
|
+
inbox_setIsLoading(true);
|
|
80
|
+
inbox_setError(undefined);
|
|
81
|
+
},
|
|
82
|
+
onError: error => {
|
|
83
|
+
inbox_setIsLoading(false);
|
|
84
|
+
inbox_setError(error);
|
|
85
|
+
},
|
|
86
|
+
onMessagesChanged: (messages, unreadMessageCount, totalMessageCount, canPaginate) => {
|
|
87
|
+
inbox_setIsLoading(false);
|
|
88
|
+
inbox_setError(undefined);
|
|
89
|
+
inbox_setMessages(messages);
|
|
90
|
+
inbox_setUnreadMessageCount(unreadMessageCount);
|
|
91
|
+
inbox_setTotalMessageCount(totalMessageCount);
|
|
92
|
+
inbox_setCanPaginate(canPaginate);
|
|
93
|
+
}
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
return () => {
|
|
97
|
+
var _authListener2, _pushListener2, _inboxListener2;
|
|
98
|
+
(_authListener2 = authListener) === null || _authListener2 === void 0 ? void 0 : _authListener2.remove();
|
|
99
|
+
(_pushListener2 = pushListener) === null || _pushListener2 === void 0 ? void 0 : _pushListener2.remove();
|
|
100
|
+
(_inboxListener2 = inboxListener) === null || _inboxListener2 === void 0 ? void 0 : _inboxListener2.remove();
|
|
101
|
+
};
|
|
102
|
+
}, [listeners]);
|
|
103
|
+
const signIn = async props => {
|
|
104
|
+
auth_setIsLoading(true);
|
|
105
|
+
auth_setError(undefined);
|
|
106
|
+
try {
|
|
107
|
+
await _.default.shared.signIn(props);
|
|
108
|
+
} catch (error) {
|
|
109
|
+
auth_setError(error);
|
|
110
|
+
}
|
|
111
|
+
auth_setIsLoading(false);
|
|
112
|
+
};
|
|
113
|
+
const signOut = async () => {
|
|
114
|
+
auth_setIsLoading(true);
|
|
115
|
+
auth_setError(undefined);
|
|
116
|
+
try {
|
|
117
|
+
await _.default.shared.signOut();
|
|
118
|
+
} catch (error) {
|
|
119
|
+
auth_setError(error);
|
|
120
|
+
}
|
|
121
|
+
auth_setIsLoading(false);
|
|
122
|
+
};
|
|
123
|
+
const syncNotificationPermissions = async () => {
|
|
124
|
+
const status = await _.default.shared.getNotificationPermissionStatus();
|
|
125
|
+
push_setNotificationPermission(status);
|
|
126
|
+
};
|
|
127
|
+
const syncTokens = () => {
|
|
128
|
+
// APNS
|
|
129
|
+
const apnsToken = _.default.shared.apnsToken;
|
|
130
|
+
push_setApnsToken(apnsToken);
|
|
131
|
+
const fcmToken = _.default.shared.fcmToken;
|
|
132
|
+
push_setFcmToken(fcmToken);
|
|
133
|
+
};
|
|
134
|
+
const requestNotificationPermission = async () => {
|
|
135
|
+
const status = await _.default.shared.requestNotificationPermission();
|
|
136
|
+
push_setNotificationPermission(status);
|
|
137
|
+
};
|
|
138
|
+
const setPaginationLimit = limit => {
|
|
139
|
+
_.default.shared.setInboxPaginationLimit({
|
|
140
|
+
limit
|
|
141
|
+
});
|
|
142
|
+
};
|
|
143
|
+
const fetchNextPageOfMessages = () => {
|
|
144
|
+
return _.default.shared.fetchNextPageOfMessages();
|
|
145
|
+
};
|
|
146
|
+
const refresh = async () => {
|
|
147
|
+
inbox_setIsRefreshing(true);
|
|
148
|
+
await _.default.shared.refreshInbox();
|
|
149
|
+
inbox_setIsRefreshing(false);
|
|
150
|
+
};
|
|
151
|
+
const readAllMessages = () => {
|
|
152
|
+
// Skip if no user is found
|
|
153
|
+
if (!_.default.shared.userId) {
|
|
154
|
+
return Promise.resolve();
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// Read the messages
|
|
158
|
+
return _.default.shared.readAllInboxMessages();
|
|
159
|
+
};
|
|
160
|
+
const readMessage = messageId => {
|
|
161
|
+
return _.default.shared.readMessage({
|
|
162
|
+
messageId
|
|
163
|
+
});
|
|
164
|
+
};
|
|
165
|
+
const unreadMessage = messageId => {
|
|
166
|
+
return _.default.shared.unreadMessage({
|
|
167
|
+
messageId
|
|
168
|
+
});
|
|
169
|
+
};
|
|
170
|
+
return /*#__PURE__*/_react.default.createElement(CourierContext.Provider, {
|
|
171
|
+
value: {
|
|
172
|
+
auth: {
|
|
173
|
+
isLoading: auth_isLoading,
|
|
174
|
+
error: auth_error,
|
|
175
|
+
userId: auth_userId,
|
|
176
|
+
signIn,
|
|
177
|
+
signOut
|
|
178
|
+
},
|
|
179
|
+
push: {
|
|
180
|
+
delivered: push_pushNotificationDelivered,
|
|
181
|
+
clicked: push_pushNotificationClicked,
|
|
182
|
+
tokens: {
|
|
183
|
+
fcm: push_fcmToken,
|
|
184
|
+
apns: push_apnsToken
|
|
185
|
+
},
|
|
186
|
+
notificationPermissionStatus: push_notificationPermission,
|
|
187
|
+
requestNotificationPermission
|
|
188
|
+
},
|
|
189
|
+
inbox: {
|
|
190
|
+
isLoading: inbox_isLoading,
|
|
191
|
+
error: inbox_error,
|
|
192
|
+
messages: inbox_messages,
|
|
193
|
+
unreadMessageCount: inbox_unreadMessageCount,
|
|
194
|
+
totalMessageCount: inbox_totalMessageCount,
|
|
195
|
+
canPaginate: inbox_canPaginate,
|
|
196
|
+
setPaginationLimit,
|
|
197
|
+
fetchNextPageOfMessages,
|
|
198
|
+
refresh,
|
|
199
|
+
isRefreshing: inbox_isRefreshing,
|
|
200
|
+
readAllMessages,
|
|
201
|
+
readMessage,
|
|
202
|
+
unreadMessage
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}, children);
|
|
206
|
+
};
|
|
207
|
+
exports.CourierProvider = CourierProvider;
|
|
208
|
+
const useCourier = function () {
|
|
209
|
+
var _props$inbox;
|
|
210
|
+
let props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
211
|
+
const context = (0, _react.useContext)(CourierContext);
|
|
212
|
+
if (!context) {
|
|
213
|
+
throw new Error('useCourier must be used within an CourierProvider');
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
// Set the initial pagination limit if needed
|
|
217
|
+
if ((_props$inbox = props.inbox) !== null && _props$inbox !== void 0 && _props$inbox.paginationLimit) {
|
|
218
|
+
var _context$inbox, _props$inbox2;
|
|
219
|
+
(_context$inbox = context.inbox) === null || _context$inbox === void 0 ? void 0 : _context$inbox.setPaginationLimit((_props$inbox2 = props.inbox) === null || _props$inbox2 === void 0 ? void 0 : _props$inbox2.paginationLimit);
|
|
220
|
+
}
|
|
221
|
+
return context;
|
|
222
|
+
};
|
|
223
|
+
exports.useCourier = useCourier;
|
|
224
|
+
//# sourceMappingURL=useCourier.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","_interopRequireWildcard","require","_","_interopRequireDefault","obj","__esModule","default","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","authListener","undefined","pushListener","inboxListener","CourierContext","createContext","CourierProvider","_ref","listeners","children","auth_userId","auth_setUserId","useState","auth_isLoading","auth_setIsLoading","auth_error","auth_setError","push_pushNotificationDelivered","inbox_setPushNotificationDelivered","push_pushNotificationClicked","inbox_setPushNotificationClicked","push_apnsToken","push_setApnsToken","push_fcmToken","push_setFcmToken","push_notificationPermission","push_setNotificationPermission","inbox_isLoading","inbox_setIsLoading","inbox_isRefreshing","inbox_setIsRefreshing","inbox_error","inbox_setError","inbox_messages","inbox_setMessages","inbox_unreadMessageCount","inbox_setUnreadMessageCount","inbox_totalMessageCount","inbox_setTotalMessageCount","inbox_canPaginate","inbox_setCanPaginate","useEffect","userId","Courier","shared","syncNotificationPermissions","syncTokens","_authListener","_pushListener","_inboxListener","remove","includes","addAuthenticationListener","onUserChanged","addPushNotificationListener","onPushNotificationDelivered","push","onPushNotificationClicked","addInboxListener","onInitialLoad","onError","error","onMessagesChanged","messages","unreadMessageCount","totalMessageCount","canPaginate","_authListener2","_pushListener2","_inboxListener2","signIn","props","signOut","status","getNotificationPermissionStatus","apnsToken","fcmToken","requestNotificationPermission","setPaginationLimit","limit","setInboxPaginationLimit","fetchNextPageOfMessages","refresh","refreshInbox","readAllMessages","Promise","resolve","readAllInboxMessages","readMessage","messageId","unreadMessage","createElement","Provider","value","auth","isLoading","delivered","clicked","tokens","fcm","apns","notificationPermissionStatus","inbox","isRefreshing","exports","useCourier","_props$inbox","arguments","length","context","useContext","Error","paginationLimit","_context$inbox","_props$inbox2"],"sourceRoot":"../../../src","sources":["hooks/useCourier.tsx"],"mappings":"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"}
|