@trycourier/courier-react-native 2.1.0 → 2.2.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.
Files changed (36) hide show
  1. package/android/build.gradle +2 -2
  2. package/android/src/main/java/com/courierreactnative/CourierReactNativeActivity.kt +0 -3
  3. package/android/src/main/java/com/courierreactnative/CourierReactNativeModule.kt +30 -22
  4. package/android/src/main/java/com/courierreactnative/CourierReactNativeViewManager.kt +84 -18
  5. package/courier-react-native.podspec +1 -1
  6. package/ios/CourierReactNativeModule.m +4 -6
  7. package/ios/CourierReactNativeModule.swift +17 -11
  8. package/ios/CourierReactNativeViewManager.swift +122 -41
  9. package/lib/commonjs/index.js +55 -38
  10. package/lib/commonjs/index.js.map +1 -1
  11. package/lib/commonjs/models/CourierPushProvider.js +16 -0
  12. package/lib/commonjs/models/CourierPushProvider.js.map +1 -0
  13. package/lib/module/index.js +14 -21
  14. package/lib/module/index.js.map +1 -1
  15. package/lib/module/models/CourierPushProvider.js +9 -0
  16. package/lib/module/models/CourierPushProvider.js.map +1 -0
  17. package/lib/typescript/index.d.ts +16 -8
  18. package/lib/typescript/index.d.ts.map +1 -1
  19. package/lib/typescript/models/CourierInboxTheme.d.ts +24 -8
  20. package/lib/typescript/models/CourierInboxTheme.d.ts.map +1 -1
  21. package/lib/typescript/models/CourierPushProvider.d.ts +8 -0
  22. package/lib/typescript/models/CourierPushProvider.d.ts.map +1 -0
  23. package/lib/typescript/views/CourierInboxView.d.ts +1 -1
  24. package/lib/typescript/views/CourierInboxView.d.ts.map +1 -1
  25. package/package.json +1 -1
  26. package/src/index.tsx +16 -26
  27. package/src/models/CourierInboxTheme.tsx +28 -8
  28. package/src/models/CourierPushProvider.tsx +7 -0
  29. package/src/views/CourierInboxView.tsx +1 -1
  30. package/lib/commonjs/hooks/CourierProvider.js +0 -254
  31. package/lib/commonjs/hooks/CourierProvider.js.map +0 -1
  32. package/lib/module/hooks/CourierProvider.js +0 -241
  33. package/lib/module/hooks/CourierProvider.js.map +0 -1
  34. package/lib/typescript/hooks/CourierProvider.d.ts +0 -57
  35. package/lib/typescript/hooks/CourierProvider.d.ts.map +0 -1
  36. package/src/hooks/CourierProvider.tsx +0 -356
@@ -1 +0,0 @@
1
- {"version":3,"names":["React","createContext","useContext","useEffect","useState","Courier","authListener","undefined","pushListener","inboxListener","CourierContext","CourierProvider","_ref","children","auth_userId","auth_setUserId","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","userId","shared","_authListener","_pushListener","_inboxListener","remove","startAuth","addAuthenticationListener","onUserChanged","startPush","syncNotificationPermissions","syncTokens","addPushNotificationListener","onPushNotificationDelivered","push","onPushNotificationClicked","startInbox","addInboxListener","onInitialLoad","onError","error","onMessagesChanged","messages","unreadMessageCount","totalMessageCount","canPaginate","signIn","props","signOut","status","getNotificationPermissionStatus","apnsToken","fcmToken","requestNotificationPermission","iOSForegroundPresentationOptions","options","setPaginationLimit","limit","setInboxPaginationLimit","fetchNextPageOfMessages","refresh","refreshInbox","readAllMessages","Promise","resolve","readAllInboxMessages","readMessage","messageId","unreadMessage","createElement","Provider","value","auth","start","isLoading","delivered","clicked","tokens","fcm","apns","notificationPermissionStatus","inbox","isRefreshing","useCourierAuth","context","Error","useCourierPush","arguments","length","useCourierInbox","paginationLimit"],"sourceRoot":"../../../src","sources":["hooks/CourierProvider.tsx"],"mappings":"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"}
@@ -1,57 +0,0 @@
1
- import React, { ReactNode } from 'react';
2
- import { InboxMessage } from '../models/InboxMessage';
3
- import { iOSForegroundPresentationOptions } from '..';
4
- interface CourierAuthContext {
5
- start: () => void;
6
- isLoading: boolean;
7
- error?: string;
8
- userId?: string;
9
- signIn: (props: {
10
- accessToken: string;
11
- clientKey?: string;
12
- userId: string;
13
- }) => Promise<void>;
14
- signOut: () => Promise<void>;
15
- }
16
- interface CourierPushContext {
17
- start: () => void;
18
- delivered: any;
19
- clicked: any;
20
- tokens: {
21
- apns?: string;
22
- fcm?: string;
23
- };
24
- iOSForegroundPresentationOptions: (options: iOSForegroundPresentationOptions[]) => void;
25
- notificationPermissionStatus?: string;
26
- requestNotificationPermission: () => Promise<void>;
27
- }
28
- interface CourierInboxContext {
29
- start: () => void;
30
- isLoading: boolean;
31
- error?: string;
32
- messages: InboxMessage[];
33
- unreadMessageCount: number;
34
- totalMessageCount: number;
35
- canPaginate: boolean;
36
- setPaginationLimit: (limit: number) => void;
37
- fetchNextPageOfMessages: () => Promise<InboxMessage[]>;
38
- refresh: () => Promise<void>;
39
- isRefreshing: boolean;
40
- readAllMessages: () => Promise<void>;
41
- readMessage: (messageId: string) => string;
42
- unreadMessage: (messageId: string) => string;
43
- }
44
- export declare const CourierProvider: React.FC<{
45
- children: ReactNode;
46
- }>;
47
- export declare const useCourierAuth: () => CourierAuthContext;
48
- interface UseCourierPushProps {
49
- iOSForegroundPresentationOptions?: iOSForegroundPresentationOptions[];
50
- }
51
- export declare const useCourierPush: (props?: UseCourierPushProps) => CourierPushContext;
52
- interface UseCourierInboxProps {
53
- paginationLimit?: number;
54
- }
55
- export declare const useCourierInbox: (props?: UseCourierInboxProps) => CourierInboxContext;
56
- export {};
57
- //# sourceMappingURL=CourierProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CourierProvider.d.ts","sourceRoot":"","sources":["../../../src/hooks/CourierProvider.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAiB,SAAS,EAAmC,MAAM,OAAO,CAAC;AACzF,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAgB,EAA4E,gCAAgC,EAAE,MAAM,IAAI,CAAC;AAMzI,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,CAAC,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9F,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,SAAS,EAAE,GAAG,CAAC;IACf,OAAO,EAAE,GAAG,CAAC;IACb,MAAM,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,GAAG,CAAC,EAAE,MAAM,CAAC;KACd,CAAC;IACF,gCAAgC,EAAE,CAAC,OAAO,EAAE,gCAAgC,EAAE,KAAK,IAAI,CAAC;IACxF,4BAA4B,CAAC,EAAE,MAAM,CAAC;IACtC,6BAA6B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CACpD;AAED,UAAU,mBAAmB;IAC3B,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,OAAO,CAAC;IACrB,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,uBAAuB,EAAE,MAAM,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACvD,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7B,YAAY,EAAE,OAAO,CAAC;IACtB,eAAe,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACrC,WAAW,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;IAC3C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,MAAM,CAAC;CAC9C;AAUD,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,CA2O7D,CAAC;AAGF,eAAO,MAAM,cAAc,QAAO,kBAYjC,CAAC;AAEF,UAAU,mBAAmB;IAC3B,gCAAgC,CAAC,EAAE,gCAAgC,EAAE,CAAA;CACtE;AAGD,eAAO,MAAM,cAAc,WAAW,mBAAmB,KAAQ,kBAkBhE,CAAC;AAEF,UAAU,oBAAoB;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAGD,eAAO,MAAM,eAAe,WAAW,oBAAoB,KAAQ,mBAkBlE,CAAC"}
@@ -1,356 +0,0 @@
1
- import React, { createContext, ReactNode, useContext, useEffect, useState } from 'react';
2
- import { InboxMessage } from '../models/InboxMessage';
3
- import Courier, { CourierPushListener, CourierInboxListener, CourierAuthenticationListener, iOSForegroundPresentationOptions } from '..';
4
-
5
- let authListener: CourierAuthenticationListener | undefined = undefined
6
- let pushListener: CourierPushListener | undefined = undefined
7
- let inboxListener: CourierInboxListener | undefined = undefined
8
-
9
- interface CourierAuthContext {
10
- start: () => void;
11
- isLoading: boolean;
12
- error?: string;
13
- userId?: string;
14
- signIn: (props: { accessToken: string; clientKey?: string; userId: string }) => Promise<void>;
15
- signOut: () => Promise<void>;
16
- }
17
-
18
- interface CourierPushContext {
19
- start: () => void;
20
- delivered: any;
21
- clicked: any;
22
- tokens: {
23
- apns?: string;
24
- fcm?: string;
25
- };
26
- iOSForegroundPresentationOptions: (options: iOSForegroundPresentationOptions[]) => void;
27
- notificationPermissionStatus?: string;
28
- requestNotificationPermission: () => Promise<void>;
29
- }
30
-
31
- interface CourierInboxContext {
32
- start: () => void;
33
- isLoading: boolean;
34
- error?: string;
35
- messages: InboxMessage[];
36
- unreadMessageCount: number;
37
- totalMessageCount: number;
38
- canPaginate: boolean;
39
- setPaginationLimit: (limit: number) => void;
40
- fetchNextPageOfMessages: () => Promise<InboxMessage[]>;
41
- refresh: () => Promise<void>;
42
- isRefreshing: boolean;
43
- readAllMessages: () => Promise<void>;
44
- readMessage: (messageId: string) => string;
45
- unreadMessage: (messageId: string) => string;
46
- }
47
-
48
- interface CourierContext {
49
- auth: CourierAuthContext;
50
- push: CourierPushContext;
51
- inbox: CourierInboxContext;
52
- }
53
-
54
- const CourierContext = createContext<CourierContext | undefined>(undefined);
55
-
56
- export const CourierProvider: React.FC<{ children: ReactNode }> = ({ children }) => {
57
-
58
- // Auth
59
- const [auth_userId, auth_setUserId] = useState<string | undefined>(undefined);
60
- const [auth_isLoading, auth_setIsLoading] = useState<boolean>(false);
61
- const [auth_error, auth_setError] = useState<string | undefined>(undefined);
62
-
63
- // Push
64
- const [push_pushNotificationDelivered, inbox_setPushNotificationDelivered] = useState<any>(undefined);
65
- const [push_pushNotificationClicked, inbox_setPushNotificationClicked] = useState<any>(undefined);
66
- const [push_apnsToken, push_setApnsToken] = useState<string | undefined>(undefined);
67
- const [push_fcmToken, push_setFcmToken] = useState<string | undefined>(undefined);
68
- const [push_notificationPermission, push_setNotificationPermission] = useState<string | undefined>(undefined);
69
-
70
- // Inbox
71
- const [inbox_isLoading, inbox_setIsLoading] = useState<boolean>(false);
72
- const [inbox_isRefreshing, inbox_setIsRefreshing] = useState<boolean>(false);
73
- const [inbox_error, inbox_setError] = useState<string | undefined>(undefined);
74
- const [inbox_messages, inbox_setMessages] = useState<InboxMessage[]>([]);
75
- const [inbox_unreadMessageCount, inbox_setUnreadMessageCount] = useState<number>(0);
76
- const [inbox_totalMessageCount, inbox_setTotalMessageCount] = useState<number>(0);
77
- const [inbox_canPaginate, inbox_setCanPaginate] = useState<boolean>(false);
78
-
79
- useEffect(() => {
80
-
81
- // Get the initial values
82
- const userId = Courier.shared.userId;
83
- auth_setUserId(userId);
84
-
85
- }, []);
86
-
87
- useEffect(() => {
88
-
89
- return () => {
90
- authListener?.remove();
91
- pushListener?.remove();
92
- inboxListener?.remove();
93
- }
94
-
95
- }, []);
96
-
97
- const startAuth = () => {
98
-
99
- if (!authListener) {
100
-
101
- authListener = Courier.shared.addAuthenticationListener({
102
- onUserChanged: (userId) => auth_setUserId(userId)
103
- });
104
-
105
- }
106
-
107
- }
108
-
109
- const startPush = () => {
110
-
111
- // Permissions
112
- syncNotificationPermissions();
113
-
114
- // Push tokens
115
- syncTokens();
116
-
117
- if (!pushListener) {
118
-
119
- pushListener = Courier.shared.addPushNotificationListener({
120
- onPushNotificationDelivered: (push) => inbox_setPushNotificationDelivered(push),
121
- onPushNotificationClicked: (push) => inbox_setPushNotificationClicked(push)
122
- });
123
-
124
- }
125
-
126
- }
127
-
128
- const startInbox = () => {
129
-
130
- if (!inboxListener) {
131
-
132
- inboxListener = Courier.shared.addInboxListener({
133
- onInitialLoad: () => {
134
- inbox_setIsLoading(true);
135
- inbox_setError(undefined);
136
- },
137
- onError: (error) => {
138
- inbox_setIsLoading(false);
139
- inbox_setError(error);
140
- },
141
- onMessagesChanged: (messages, unreadMessageCount, totalMessageCount, canPaginate) => {
142
- inbox_setIsLoading(false);
143
- inbox_setError(undefined);
144
- inbox_setMessages(messages);
145
- inbox_setUnreadMessageCount(unreadMessageCount);
146
- inbox_setTotalMessageCount(totalMessageCount);
147
- inbox_setCanPaginate(canPaginate);
148
- }
149
- });
150
-
151
- }
152
-
153
- }
154
-
155
- const signIn = async (props: { accessToken: string, clientKey?: string, userId: string }): Promise<void> => {
156
-
157
- auth_setIsLoading(true);
158
- auth_setError(undefined);
159
-
160
- try {
161
- await Courier.shared.signIn(props);
162
- } catch (error) {
163
- auth_setError(error as string);
164
- }
165
-
166
- auth_setIsLoading(false);
167
-
168
- };
169
-
170
- const signOut = async (): Promise<void> => {
171
-
172
- auth_setIsLoading(true);
173
- auth_setError(undefined);
174
-
175
- try {
176
- await Courier.shared.signOut();
177
- } catch (error) {
178
- auth_setError(error as string);
179
- }
180
-
181
- auth_setIsLoading(false);
182
-
183
- };
184
-
185
- const syncNotificationPermissions = async () => {
186
-
187
- const status = await Courier.shared.getNotificationPermissionStatus();
188
- push_setNotificationPermission(status);
189
-
190
- }
191
-
192
- const syncTokens = async () => {
193
-
194
- // APNS
195
- const apnsToken = Courier.shared.apnsToken;
196
- push_setApnsToken(apnsToken);
197
-
198
- const fcmToken = await Courier.shared.fcmToken;
199
- push_setFcmToken(fcmToken);
200
-
201
- }
202
-
203
- const requestNotificationPermission = async () => {
204
- const status = await Courier.shared.requestNotificationPermission();
205
- push_setNotificationPermission(status);
206
- };
207
-
208
- const iOSForegroundPresentationOptions = (options: iOSForegroundPresentationOptions[]) => {
209
- Courier.shared.iOSForegroundPresentationOptions({
210
- options: options,
211
- });
212
- }
213
-
214
- const setPaginationLimit = (limit: number) => {
215
- Courier.shared.setInboxPaginationLimit({ limit });
216
- };
217
-
218
- const fetchNextPageOfMessages = (): Promise<InboxMessage[]> => {
219
- return Courier.shared.fetchNextPageOfMessages();
220
- };
221
-
222
- const refresh = async () => {
223
- inbox_setIsRefreshing(true);
224
- await Courier.shared.refreshInbox();
225
- inbox_setIsRefreshing(false);
226
- };
227
-
228
- const readAllMessages = () => {
229
-
230
- // Skip if no user is found
231
- if (!Courier.shared.userId) {
232
- return Promise.resolve();
233
- }
234
-
235
- // Read the messages
236
- return Courier.shared.readAllInboxMessages();
237
-
238
- };
239
-
240
- const readMessage = (messageId: string) => {
241
- return Courier.shared.readMessage({ messageId });
242
- };
243
-
244
- const unreadMessage = (messageId: string) => {
245
- return Courier.shared.unreadMessage({ messageId });
246
- };
247
-
248
- return (
249
- <CourierContext.Provider value={{
250
- auth: {
251
- start: startAuth,
252
- isLoading: auth_isLoading,
253
- error: auth_error,
254
- userId: auth_userId,
255
- signIn,
256
- signOut
257
- },
258
- push: {
259
- start: startPush,
260
- delivered: push_pushNotificationDelivered,
261
- clicked: push_pushNotificationClicked,
262
- tokens: {
263
- fcm: push_fcmToken,
264
- apns: push_apnsToken,
265
- },
266
- iOSForegroundPresentationOptions,
267
- notificationPermissionStatus: push_notificationPermission,
268
- requestNotificationPermission,
269
- },
270
- inbox: {
271
- start: startInbox,
272
- isLoading: inbox_isLoading,
273
- error: inbox_error,
274
- messages: inbox_messages,
275
- unreadMessageCount: inbox_unreadMessageCount,
276
- totalMessageCount: inbox_totalMessageCount,
277
- canPaginate: inbox_canPaginate,
278
- setPaginationLimit,
279
- fetchNextPageOfMessages,
280
- refresh,
281
- isRefreshing: inbox_isRefreshing,
282
- readAllMessages,
283
- readMessage,
284
- unreadMessage,
285
- }
286
- }}>
287
- {children}
288
- </CourierContext.Provider>
289
- );
290
-
291
- };
292
-
293
- // Auth Hook
294
- export const useCourierAuth = (): CourierAuthContext => {
295
-
296
- const context = useContext(CourierContext);
297
-
298
- if (!context) {
299
- throw new Error('useCourierAuth must be used within an CourierProvider');
300
- }
301
-
302
- context.auth.start();
303
-
304
- return context.auth;
305
-
306
- };
307
-
308
- interface UseCourierPushProps {
309
- iOSForegroundPresentationOptions?: iOSForegroundPresentationOptions[]
310
- }
311
-
312
- // Push Hook
313
- export const useCourierPush = (props: UseCourierPushProps = {}): CourierPushContext => {
314
-
315
- const context = useContext(CourierContext);
316
-
317
- if (!context) {
318
- throw new Error('useCourierPush must be used within an CourierProvider');
319
- }
320
-
321
- // Set the presentation options
322
- const options = props.iOSForegroundPresentationOptions;
323
- if (options) {
324
- context.push.iOSForegroundPresentationOptions(options);
325
- }
326
-
327
- context.push.start();
328
-
329
- return context.push;
330
-
331
- };
332
-
333
- interface UseCourierInboxProps {
334
- paginationLimit?: number;
335
- }
336
-
337
- // Inbox Hook
338
- export const useCourierInbox = (props: UseCourierInboxProps = {}): CourierInboxContext => {
339
-
340
- const context = useContext(CourierContext);
341
-
342
- if (!context) {
343
- throw new Error('useCourierInbox must be used within an CourierProvider');
344
- }
345
-
346
- // Set the initial pagination limit if needed
347
- const limit = props.paginationLimit;
348
- if (limit) {
349
- context.inbox.setPaginationLimit(limit);
350
- }
351
-
352
- context.inbox.start();
353
-
354
- return context.inbox;
355
-
356
- };