@knocklabs/expo 0.3.22-canary.0 → 0.3.22-canary.2

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@knocklabs/expo",
3
- "version": "0.3.22-canary.0",
3
+ "version": "0.3.22-canary.2",
4
4
  "author": "@knocklabs",
5
5
  "license": "MIT",
6
6
  "main": "dist/cjs/index.js",
@@ -49,9 +49,9 @@
49
49
  "react-native": "*"
50
50
  },
51
51
  "dependencies": {
52
- "@knocklabs/client": "^0.14.10-canary.0",
53
- "@knocklabs/react-core": "^0.6.14-canary.0",
54
- "@knocklabs/react-native": "^0.6.22-canary.0",
52
+ "@knocklabs/client": "workspace:^",
53
+ "@knocklabs/react-core": "workspace:^",
54
+ "@knocklabs/react-native": "workspace:^",
55
55
  "react-native-gesture-handler": "^2.25.0",
56
56
  "react-native-render-html": "^6.3.4",
57
57
  "react-native-svg": "^15.12.0"
@@ -77,4 +77,4 @@
77
77
  "vite-plugin-dts": "^4.5.0",
78
78
  "vite-plugin-no-bundle": "^4.0.0"
79
79
  }
80
- }
80
+ }
package/CHANGELOG.md DELETED
@@ -1,351 +0,0 @@
1
- # @knocklabs/expo
2
-
3
- ## 0.3.22-canary.0
4
-
5
- ### Patch Changes
6
-
7
- - Updated dependencies [86a72cc]
8
- - @knocklabs/react-core@0.6.14-canary.0
9
- - @knocklabs/client@0.14.10-canary.0
10
- - @knocklabs/react-native@0.6.22-canary.0
11
-
12
- ## 0.3.21
13
-
14
- ### Patch Changes
15
-
16
- - Updated dependencies [bea5604]
17
- - @knocklabs/react-core@0.6.13
18
- - @knocklabs/react-native@0.6.21
19
-
20
- ## 0.3.20
21
-
22
- ### Patch Changes
23
-
24
- - b317a4e: bump @types/react-native-htmlview from 0.16.5 to 0.16.6
25
- - Updated dependencies [b317a4e]
26
- - @knocklabs/react-native@0.6.20
27
-
28
- ## 0.3.19
29
-
30
- ### Patch Changes
31
-
32
- - Updated dependencies [4e73f12]
33
- - @knocklabs/client@0.14.9
34
- - @knocklabs/react-core@0.6.12
35
- - @knocklabs/react-native@0.6.19
36
-
37
- ## 0.3.18
38
-
39
- ### Patch Changes
40
-
41
- - Updated dependencies [dbbbaf7]
42
- - @knocklabs/react-core@0.6.11
43
- - @knocklabs/react-native@0.6.18
44
-
45
- ## 0.3.17
46
-
47
- ### Patch Changes
48
-
49
- - Updated dependencies [337bade]
50
- - @knocklabs/react-core@0.6.10
51
- - @knocklabs/react-native@0.6.17
52
-
53
- ## 0.3.16
54
-
55
- ### Patch Changes
56
-
57
- - e367c6f: Fix `ReferenceError` raised on feed initialization
58
-
59
- @knocklabs/react-native@0.6.13 and @knocklabs/expo@0.3.13 contained a bug in which the error
60
- `ReferenceError: Property 'crypto' doesn't exist` would occur when initializing a feed via any of
61
- the following methods:
62
-
63
- - The `KnockFeedProvider` context provider
64
- - The `useNotifications` hook
65
- - A call to `knock.feeds.initialize()`
66
-
67
- This has been fixed by adding
68
- [react-native-get-random-values](https://github.com/LinusU/react-native-get-random-values) as a
69
- dependency of our React Native and Expo SDKs.
70
-
71
- - Updated dependencies [e367c6f]
72
- - @knocklabs/react-native@0.6.16
73
-
74
- ## 0.3.15
75
-
76
- ### Patch Changes
77
-
78
- - Updated dependencies [329ee05]
79
- - @knocklabs/react-core@0.6.9
80
- - @knocklabs/client@0.14.8
81
- - @knocklabs/react-native@0.6.15
82
-
83
- ## 0.3.14
84
-
85
- ### Patch Changes
86
-
87
- - Updated dependencies [efd1005]
88
- - @knocklabs/client@0.14.7
89
- - @knocklabs/react-core@0.6.8
90
- - @knocklabs/react-native@0.6.14
91
-
92
- ## 0.3.13
93
-
94
- ### Patch Changes
95
-
96
- - Updated dependencies [a5c615e]
97
- - @knocklabs/client@0.14.6
98
- - @knocklabs/react-core@0.6.7
99
- - @knocklabs/react-native@0.6.13
100
-
101
- ## 0.3.12
102
-
103
- ### Patch Changes
104
-
105
- - Updated dependencies [8f00623]
106
- - @knocklabs/client@0.14.5
107
- - @knocklabs/react-core@0.6.6
108
- - @knocklabs/react-native@0.6.12
109
-
110
- ## 0.3.11
111
-
112
- ### Patch Changes
113
-
114
- - Updated dependencies [e800896]
115
- - @knocklabs/react-core@0.6.5
116
- - @knocklabs/client@0.14.4
117
- - @knocklabs/react-native@0.6.11
118
-
119
- ## 0.3.10
120
-
121
- ### Patch Changes
122
-
123
- - Updated dependencies [96d70bc]
124
- - @knocklabs/react-core@0.6.4
125
- - @knocklabs/react-native@0.6.10
126
-
127
- ## 0.3.9
128
-
129
- ### Patch Changes
130
-
131
- - 1fb7094: Allow styling stroke width of the bell icon
132
- - Updated dependencies [1fb7094]
133
- - @knocklabs/react-native@0.6.9
134
-
135
- ## 0.3.8
136
-
137
- ### Patch Changes
138
-
139
- - 43f9724: Allow styling bell icon and badge using `styleOverride` prop of `<NotificationIconButton>`
140
- - Updated dependencies [43f9724]
141
- - @knocklabs/react-native@0.6.8
142
-
143
- ## 0.3.7
144
-
145
- ### Patch Changes
146
-
147
- - Updated dependencies [c97a1d9]
148
- - @knocklabs/react-core@0.6.3
149
- - @knocklabs/client@0.14.3
150
- - @knocklabs/react-native@0.6.7
151
-
152
- ## 0.3.6
153
-
154
- ### Patch Changes
155
-
156
- - Updated dependencies [b80a656]
157
- - @knocklabs/react-native@0.6.6
158
-
159
- ## 0.3.5
160
-
161
- ### Patch Changes
162
-
163
- - Updated dependencies [00439a2]
164
- - @knocklabs/client@0.14.2
165
- - @knocklabs/react-core@0.6.2
166
- - @knocklabs/react-native@0.6.5
167
-
168
- ## 0.3.4
169
-
170
- ### Patch Changes
171
-
172
- - Updated dependencies [4c41841]
173
- - @knocklabs/client@0.14.1
174
- - @knocklabs/react-core@0.6.1
175
- - @knocklabs/react-native@0.6.4
176
-
177
- ## 0.3.3
178
-
179
- ### Patch Changes
180
-
181
- - Updated dependencies [711948c]
182
- - @knocklabs/react-core@0.6.0
183
- - @knocklabs/client@0.14.0
184
- - @knocklabs/react-native@0.6.3
185
-
186
- ## 0.3.2
187
-
188
- ### Patch Changes
189
-
190
- - Updated dependencies [187abc1]
191
- - @knocklabs/client@0.13.1
192
- - @knocklabs/react-core@0.5.2
193
- - @knocklabs/react-native@0.6.2
194
-
195
- ## 0.3.1
196
-
197
- ### Patch Changes
198
-
199
- - Updated dependencies [4cd1b1e]
200
- - @knocklabs/client@0.13.0
201
- - @knocklabs/react-core@0.5.1
202
- - @knocklabs/react-native@0.6.1
203
-
204
- ## 0.3.0
205
-
206
- ### Minor Changes
207
-
208
- - 8ba5dcb: [JS] Support React 19 in React SDKs
209
-
210
- ### Patch Changes
211
-
212
- - Updated dependencies [8ba5dcb]
213
- - @knocklabs/client@0.12.0
214
- - @knocklabs/react-core@0.5.0
215
- - @knocklabs/react-native@0.6.0
216
-
217
- ## 0.2.12
218
-
219
- ### Patch Changes
220
-
221
- - Updated dependencies [226e319]
222
- - @knocklabs/react-core@0.4.2
223
- - @knocklabs/react-native@0.5.12
224
-
225
- ## 0.2.11
226
-
227
- ### Patch Changes
228
-
229
- - Updated dependencies [1b86a0c]
230
- - @knocklabs/react-core@0.4.1
231
- - @knocklabs/react-native@0.5.11
232
-
233
- ## 0.2.10
234
-
235
- ### Patch Changes
236
-
237
- - Updated dependencies [7904b65]
238
- - @knocklabs/react-core@0.4.0
239
- - @knocklabs/react-native@0.5.10
240
-
241
- ## 0.2.9
242
-
243
- ### Patch Changes
244
-
245
- - Updated dependencies [8ea25f4]
246
- - @knocklabs/client@0.11.4
247
- - @knocklabs/react-core@0.3.4
248
- - @knocklabs/react-native@0.5.9
249
-
250
- ## 0.2.8
251
-
252
- ### Patch Changes
253
-
254
- - Updated dependencies [12bc993]
255
- - Updated dependencies [4f76cd6]
256
- - @knocklabs/react-core@0.3.3
257
- - @knocklabs/client@0.11.3
258
- - @knocklabs/react-native@0.5.8
259
-
260
- ## 0.2.7
261
-
262
- ### Patch Changes
263
-
264
- - Updated dependencies [85418a0]
265
- - Updated dependencies [2161d3f]
266
- - Updated dependencies [8cc9338]
267
- - Updated dependencies [da84a75]
268
- - Updated dependencies [2161d3f]
269
- - Updated dependencies [2161d3f]
270
- - Updated dependencies [1ba1393]
271
- - Updated dependencies [b4b5c02]
272
- - @knocklabs/react-core@0.3.2
273
- - @knocklabs/client@0.11.2
274
- - @knocklabs/react-native@0.5.7
275
-
276
- ## 0.2.6
277
-
278
- ### Patch Changes
279
-
280
- - Updated dependencies [b9f6712]
281
- - @knocklabs/react-core@0.3.1
282
- - @knocklabs/client@0.11.1
283
- - @knocklabs/react-native@0.5.6
284
-
285
- ## 0.2.5
286
-
287
- ### Patch Changes
288
-
289
- - Updated dependencies [013ad8d]
290
- - @knocklabs/react-core@0.3.0
291
- - @knocklabs/client@0.11.0
292
- - @knocklabs/react-native@0.5.5
293
-
294
- ## 0.2.4
295
-
296
- ### Patch Changes
297
-
298
- - Updated dependencies [26db496]
299
- - Updated dependencies [988aaf9]
300
- - @knocklabs/client@0.10.17
301
- - @knocklabs/react-core@0.2.29
302
- - @knocklabs/react-native@0.5.4
303
-
304
- ## 0.2.3
305
-
306
- ### Patch Changes
307
-
308
- - Updated dependencies [bc99374]
309
- - @knocklabs/client@0.10.16
310
- - @knocklabs/react-core@0.2.28
311
- - @knocklabs/react-native@0.5.3
312
-
313
- ## 0.2.2
314
-
315
- ### Patch Changes
316
-
317
- - Updated dependencies [26166e3]
318
- - @knocklabs/client@0.10.15
319
- - @knocklabs/react-core@0.2.27
320
- - @knocklabs/react-native@0.5.2
321
-
322
- ## 0.2.1
323
-
324
- ### Patch Changes
325
-
326
- - Updated dependencies [7510909]
327
- - @knocklabs/client@0.10.14
328
- - @knocklabs/react-core@0.2.26
329
- - @knocklabs/react-native@0.5.1
330
-
331
- ## 0.2.0
332
-
333
- ### Minor Changes
334
-
335
- - 4ac1e67: Add KnockPushNotificationProvider
336
-
337
- ### Patch Changes
338
-
339
- - Updated dependencies [4ac1e67]
340
- - @knocklabs/react-native@0.5.0
341
-
342
- ## 0.1.0
343
-
344
- ### Minor Changes
345
-
346
- - a82e897: Move KnockExpoPushNotificationProvider to @knocklabs/expo
347
-
348
- ### Patch Changes
349
-
350
- - Updated dependencies [a82e897]
351
- - @knocklabs/react-native@0.4.0
package/dist/cjs/index.js DELETED
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("./modules/push/KnockExpoPushNotificationProvider.js"),o=require("@knocklabs/react-native");exports.KnockExpoPushNotificationProvider=t.KnockExpoPushNotificationProvider;exports.useExpoPushNotifications=t.useExpoPushNotifications;Object.keys(o).forEach(e=>{e!=="default"&&!Object.prototype.hasOwnProperty.call(exports,e)&&Object.defineProperty(exports,e,{enumerable:!0,get:()=>o[e]})});
2
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
@@ -1,2 +0,0 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const h=require("react/jsx-runtime"),b=require("@knocklabs/react-core"),N=require("@knocklabs/react-native"),w=require("expo-constants"),T=require("expo-device"),j=require("expo-notifications"),i=require("react"),_=t=>t&&typeof t=="object"&&"default"in t?t:{default:t};function x(t){if(t&&typeof t=="object"&&"default"in t)return t;const r=Object.create(null,{[Symbol.toStringTag]:{value:"Module"}});if(t){for(const c in t)if(c!=="default"){const a=Object.getOwnPropertyDescriptor(t,c);Object.defineProperty(r,c,a.get?a:{enumerable:!0,get:()=>t[c]})}}return r.default=t,Object.freeze(r)}const d=_(w),q=x(T),s=x(j);s.setNotificationHandler({handleNotification:async()=>({shouldShowAlert:!0,shouldPlaySound:!0,shouldSetBadge:!0,shouldShowBanner:!0,shouldShowList:!0})});const R=async t=>({shouldShowAlert:!0,shouldPlaySound:!0,shouldSetBadge:!0,shouldShowBanner:!0,shouldShowList:!0}),v=i.createContext(void 0);async function D(){const{status:t}=await s.getPermissionsAsync();if(t!=="granted"){const{status:r}=await s.requestPermissionsAsync();return r}return t}async function A(){try{return!d.default.expoConfig||!d.default.expoConfig.extra||!d.default.expoConfig.extra.eas?(console.error("[Knock] Expo Project ID is not defined in the app configuration."),null):await s.getExpoPushTokenAsync({projectId:d.default.expoConfig.extra.eas.projectId})}catch(t){return console.error("[Knock] Error getting Expo push token:",t),null}}async function H(){return q.isDevice?await D()!=="granted"?(console.warn("[Knock] Push notification permission not granted"),null):A():(console.warn("[Knock] Must use physical device for Push Notifications"),null)}const O=({knockExpoChannelId:t,customNotificationHandler:r,children:c,autoRegister:a=!0})=>{const{registerPushTokenToChannel:p,unregisterPushTokenFromChannel:S}=N.usePushNotifications(),[u,m]=i.useState(null),n=b.useKnockClient(),[g,y]=i.useState(()=>()=>{}),[k,K]=i.useState(()=>()=>{}),C=i.useCallback(e=>{y(()=>e)},[]),E=i.useCallback(e=>{K(()=>e)},[]),l=i.useCallback(async()=>{try{n.log("[Knock] Registering for push notifications");const e=await H();n.log(`[Knock] Token received: ${e==null?void 0:e.data}`),e!=null&&e.data&&(n.log(`[Knock] Setting push token: ${e.data}`),m(e.data))}catch(e){console.error("[Knock] Error registering for push notifications:",e)}},[n]),P=i.useCallback(async(e,f)=>{const o=e.request.content.data.knock_message_id;return n.messages.updateStatus(o,f)},[n]);return i.useEffect(()=>{s.setNotificationHandler({handleNotification:r??R}),a&&l().then(()=>{u&&p(u,t).then(o=>{n.log("[Knock] setChannelData success")}).catch(o=>{console.error("[Knock] Error in setting push token or channel data",o)})}).catch(o=>{console.error("[Knock] Error in setting push token or channel data",o)});const e=s.addNotificationReceivedListener(o=>{n.log("[Knock] Expo Push Notification received in foreground:"),P(o,"interacted"),g(o)}),f=s.addNotificationResponseReceivedListener(o=>{n.log("[Knock] Expo Push Notification was interacted with"),P(o.notification,"interacted"),k(o)});return()=>{s.removeNotificationSubscription(e),s.removeNotificationSubscription(f)}},[l,g,k,r,a,u,t,n]),h.jsx(v.Provider,{value:{expoPushToken:u,registerForPushNotifications:l,registerPushTokenToChannel:p,unregisterPushTokenFromChannel:S,onNotificationReceived:C,onNotificationTapped:E},children:c})},I=t=>h.jsx(N.KnockPushNotificationProvider,{children:h.jsx(O,{...t})}),B=()=>{const t=i.useContext(v);if(t===void 0)throw new Error("[Knock] useExpoPushNotifications must be used within a KnockExpoPushNotificationProvider");return t};exports.KnockExpoPushNotificationProvider=I;exports.useExpoPushNotifications=B;
2
- //# sourceMappingURL=KnockExpoPushNotificationProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KnockExpoPushNotificationProvider.js","sources":["../../../../src/modules/push/KnockExpoPushNotificationProvider.tsx"],"sourcesContent":["import { Message, MessageEngagementStatus } from \"@knocklabs/client\";\nimport { useKnockClient } from \"@knocklabs/react-core\";\nimport {\n type KnockPushNotificationContextType,\n KnockPushNotificationProvider,\n usePushNotifications,\n} from \"@knocklabs/react-native\";\nimport Constants from \"expo-constants\";\nimport * as Device from \"expo-device\";\nimport * as Notifications from \"expo-notifications\";\nimport React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\nexport interface KnockExpoPushNotificationContextType\n extends KnockPushNotificationContextType {\n expoPushToken: string | null;\n registerForPushNotifications: () => Promise<void>;\n onNotificationReceived: (\n handler: (notification: Notifications.Notification) => void,\n ) => void;\n onNotificationTapped: (\n handler: (response: Notifications.NotificationResponse) => void,\n ) => void;\n}\n\nNotifications.setNotificationHandler({\n handleNotification: async () => {\n return {\n shouldShowAlert: true,\n shouldPlaySound: true,\n shouldSetBadge: true,\n shouldShowBanner: true,\n shouldShowList: true,\n };\n },\n});\n\nconst defaultNotificationHandler = async (\n _notification: Notifications.Notification,\n): Promise<Notifications.NotificationBehavior> => {\n return {\n shouldShowAlert: true,\n shouldPlaySound: true,\n shouldSetBadge: true,\n shouldShowBanner: true,\n shouldShowList: true,\n };\n};\n\nconst KnockExpoPushNotificationContext = createContext<\n KnockExpoPushNotificationContextType | undefined\n>(undefined);\n\nexport interface KnockExpoPushNotificationProviderProps {\n knockExpoChannelId: string;\n customNotificationHandler?: (\n notification: Notifications.Notification,\n ) => Promise<Notifications.NotificationBehavior>;\n children?: React.ReactElement;\n autoRegister?: boolean;\n}\n\nasync function requestPushPermissionIfNeeded(): Promise<string> {\n const { status: existingStatus } = await Notifications.getPermissionsAsync();\n\n if (existingStatus !== \"granted\") {\n const { status } = await Notifications.requestPermissionsAsync();\n return status;\n }\n\n return existingStatus;\n}\n\nasync function getExpoPushToken(): Promise<Notifications.ExpoPushToken | null> {\n try {\n if (\n !Constants.expoConfig ||\n !Constants.expoConfig.extra ||\n !Constants.expoConfig.extra.eas\n ) {\n console.error(\n \"[Knock] Expo Project ID is not defined in the app configuration.\",\n );\n return null;\n }\n const token = await Notifications.getExpoPushTokenAsync({\n projectId: Constants.expoConfig.extra.eas.projectId,\n });\n return token;\n } catch (error) {\n console.error(\"[Knock] Error getting Expo push token:\", error);\n return null;\n }\n}\n\nasync function requestPermissionAndGetPushToken(): Promise<Notifications.ExpoPushToken | null> {\n // Check for device support\n if (!Device.isDevice) {\n console.warn(\"[Knock] Must use physical device for Push Notifications\");\n return null;\n }\n\n const permissionStatus = await requestPushPermissionIfNeeded();\n\n if (permissionStatus !== \"granted\") {\n console.warn(\"[Knock] Push notification permission not granted\");\n return null;\n }\n\n return getExpoPushToken();\n}\n\nconst InternalKnockExpoPushNotificationProvider: React.FC<\n KnockExpoPushNotificationProviderProps\n> = ({\n knockExpoChannelId,\n customNotificationHandler,\n children,\n autoRegister = true,\n}) => {\n const { registerPushTokenToChannel, unregisterPushTokenFromChannel } =\n usePushNotifications();\n const [expoPushToken, setExpoPushToken] = useState<string | null>(null);\n const knockClient = useKnockClient();\n\n const [notificationReceivedHandler, setNotificationReceivedHandler] =\n useState<(notification: Notifications.Notification) => void>(\n () => () => {},\n );\n\n const [notificationTappedHandler, setNotificationTappedHandler] = useState<\n (response: Notifications.NotificationResponse) => void\n >(() => () => {});\n\n const handleNotificationReceived = useCallback(\n (handler: (notification: Notifications.Notification) => void) => {\n setNotificationReceivedHandler(() => handler);\n },\n [],\n );\n\n const handleNotificationTapped = useCallback(\n (handler: (response: Notifications.NotificationResponse) => void) => {\n setNotificationTappedHandler(() => handler);\n },\n [],\n );\n\n const registerForPushNotifications = useCallback(async (): Promise<void> => {\n try {\n knockClient.log(`[Knock] Registering for push notifications`);\n const token = await requestPermissionAndGetPushToken();\n knockClient.log(`[Knock] Token received: ${token?.data}`);\n if (token?.data) {\n knockClient.log(`[Knock] Setting push token: ${token.data}`);\n setExpoPushToken(token.data);\n }\n } catch (error) {\n console.error(`[Knock] Error registering for push notifications:`, error);\n }\n }, [knockClient]);\n\n const updateKnockMessageStatusFromNotification = useCallback(\n async (\n notification: Notifications.Notification,\n status: MessageEngagementStatus,\n ): Promise<Message> => {\n const messageId = notification.request.content.data[\n \"knock_message_id\"\n ] as string;\n return knockClient.messages.updateStatus(messageId, status);\n },\n [knockClient],\n );\n\n useEffect(() => {\n Notifications.setNotificationHandler({\n handleNotification:\n customNotificationHandler ?? defaultNotificationHandler,\n });\n\n if (autoRegister) {\n registerForPushNotifications()\n .then(() => {\n if (expoPushToken) {\n registerPushTokenToChannel(expoPushToken, knockExpoChannelId)\n .then((_result) => {\n knockClient.log(\"[Knock] setChannelData success\");\n })\n .catch((_error) => {\n console.error(\n \"[Knock] Error in setting push token or channel data\",\n _error,\n );\n });\n }\n })\n .catch((_error) => {\n console.error(\n \"[Knock] Error in setting push token or channel data\",\n _error,\n );\n });\n }\n\n const notificationReceivedSubscription =\n Notifications.addNotificationReceivedListener((notification) => {\n knockClient.log(\n \"[Knock] Expo Push Notification received in foreground:\",\n );\n updateKnockMessageStatusFromNotification(notification, \"interacted\");\n notificationReceivedHandler(notification);\n });\n\n const notificationResponseSubscription =\n Notifications.addNotificationResponseReceivedListener((response) => {\n knockClient.log(\"[Knock] Expo Push Notification was interacted with\");\n updateKnockMessageStatusFromNotification(\n response.notification,\n \"interacted\",\n );\n notificationTappedHandler(response);\n });\n\n return () => {\n Notifications.removeNotificationSubscription(\n notificationReceivedSubscription,\n );\n Notifications.removeNotificationSubscription(\n notificationResponseSubscription,\n );\n };\n\n // TODO: Remove when possible and ensure dependency array is correct\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n registerForPushNotifications,\n notificationReceivedHandler,\n notificationTappedHandler,\n customNotificationHandler,\n autoRegister,\n expoPushToken,\n knockExpoChannelId,\n knockClient,\n ]);\n\n return (\n <KnockExpoPushNotificationContext.Provider\n value={{\n expoPushToken,\n registerForPushNotifications,\n registerPushTokenToChannel,\n unregisterPushTokenFromChannel,\n onNotificationReceived: handleNotificationReceived,\n onNotificationTapped: handleNotificationTapped,\n }}\n >\n {children}\n </KnockExpoPushNotificationContext.Provider>\n );\n};\n\nexport const KnockExpoPushNotificationProvider: React.FC<\n KnockExpoPushNotificationProviderProps\n> = (props) => {\n return (\n <KnockPushNotificationProvider>\n <InternalKnockExpoPushNotificationProvider {...props} />\n </KnockPushNotificationProvider>\n );\n};\n\nexport const useExpoPushNotifications =\n (): KnockExpoPushNotificationContextType => {\n const context = useContext(KnockExpoPushNotificationContext);\n if (context === undefined) {\n throw new Error(\n \"[Knock] useExpoPushNotifications must be used within a KnockExpoPushNotificationProvider\",\n );\n }\n return context;\n };\n"],"names":["Notifications","defaultNotificationHandler","_notification","KnockExpoPushNotificationContext","createContext","requestPushPermissionIfNeeded","existingStatus","status","getExpoPushToken","Constants","error","requestPermissionAndGetPushToken","Device","InternalKnockExpoPushNotificationProvider","knockExpoChannelId","customNotificationHandler","children","autoRegister","registerPushTokenToChannel","unregisterPushTokenFromChannel","usePushNotifications","expoPushToken","setExpoPushToken","useState","knockClient","useKnockClient","notificationReceivedHandler","setNotificationReceivedHandler","notificationTappedHandler","setNotificationTappedHandler","handleNotificationReceived","useCallback","handler","handleNotificationTapped","registerForPushNotifications","token","updateKnockMessageStatusFromNotification","notification","messageId","useEffect","_result","_error","notificationReceivedSubscription","notificationResponseSubscription","response","jsx","KnockExpoPushNotificationProvider","props","KnockPushNotificationProvider","useExpoPushNotifications","context","useContext"],"mappings":"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"}
@@ -1,7 +0,0 @@
1
- import { KnockExpoPushNotificationProvider as r, useExpoPushNotifications as t } from "./modules/push/KnockExpoPushNotificationProvider.mjs";
2
- export * from "@knocklabs/react-native";
3
- export {
4
- r as KnockExpoPushNotificationProvider,
5
- t as useExpoPushNotifications
6
- };
7
- //# sourceMappingURL=index.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;"}
@@ -1,151 +0,0 @@
1
- import { jsx as h } from "react/jsx-runtime";
2
- import { useKnockClient as y } from "@knocklabs/react-core";
3
- import { KnockPushNotificationProvider as C, usePushNotifications as T } from "@knocklabs/react-native";
4
- import c from "expo-constants";
5
- import * as R from "expo-device";
6
- import * as i from "expo-notifications";
7
- import { createContext as b, useContext as A, useState as f, useCallback as a, useEffect as H } from "react";
8
- i.setNotificationHandler({
9
- handleNotification: async () => ({
10
- shouldShowAlert: !0,
11
- shouldPlaySound: !0,
12
- shouldSetBadge: !0,
13
- shouldShowBanner: !0,
14
- shouldShowList: !0
15
- })
16
- });
17
- const I = async (t) => ({
18
- shouldShowAlert: !0,
19
- shouldPlaySound: !0,
20
- shouldSetBadge: !0,
21
- shouldShowBanner: !0,
22
- shouldShowList: !0
23
- }), N = b(void 0);
24
- async function j() {
25
- const { status: t } = await i.getPermissionsAsync();
26
- if (t !== "granted") {
27
- const { status: r } = await i.requestPermissionsAsync();
28
- return r;
29
- }
30
- return t;
31
- }
32
- async function q() {
33
- try {
34
- return !c.expoConfig || !c.expoConfig.extra || !c.expoConfig.extra.eas ? (console.error(
35
- "[Knock] Expo Project ID is not defined in the app configuration."
36
- ), null) : await i.getExpoPushTokenAsync({
37
- projectId: c.expoConfig.extra.eas.projectId
38
- });
39
- } catch (t) {
40
- return console.error("[Knock] Error getting Expo push token:", t), null;
41
- }
42
- }
43
- async function B() {
44
- return R.isDevice ? await j() !== "granted" ? (console.warn("[Knock] Push notification permission not granted"), null) : q() : (console.warn("[Knock] Must use physical device for Push Notifications"), null);
45
- }
46
- const D = ({
47
- knockExpoChannelId: t,
48
- customNotificationHandler: r,
49
- children: m,
50
- autoRegister: l = !0
51
- }) => {
52
- const { registerPushTokenToChannel: p, unregisterPushTokenFromChannel: x } = T(), [s, v] = f(null), n = y(), [g, K] = f(
53
- () => () => {
54
- }
55
- ), [k, S] = f(() => () => {
56
- }), w = a(
57
- (o) => {
58
- K(() => o);
59
- },
60
- []
61
- ), E = a(
62
- (o) => {
63
- S(() => o);
64
- },
65
- []
66
- ), u = a(async () => {
67
- try {
68
- n.log("[Knock] Registering for push notifications");
69
- const o = await B();
70
- n.log(`[Knock] Token received: ${o == null ? void 0 : o.data}`), o != null && o.data && (n.log(`[Knock] Setting push token: ${o.data}`), v(o.data));
71
- } catch (o) {
72
- console.error("[Knock] Error registering for push notifications:", o);
73
- }
74
- }, [n]), P = a(
75
- async (o, d) => {
76
- const e = o.request.content.data.knock_message_id;
77
- return n.messages.updateStatus(e, d);
78
- },
79
- [n]
80
- );
81
- return H(() => {
82
- i.setNotificationHandler({
83
- handleNotification: r ?? I
84
- }), l && u().then(() => {
85
- s && p(s, t).then((e) => {
86
- n.log("[Knock] setChannelData success");
87
- }).catch((e) => {
88
- console.error(
89
- "[Knock] Error in setting push token or channel data",
90
- e
91
- );
92
- });
93
- }).catch((e) => {
94
- console.error(
95
- "[Knock] Error in setting push token or channel data",
96
- e
97
- );
98
- });
99
- const o = i.addNotificationReceivedListener((e) => {
100
- n.log(
101
- "[Knock] Expo Push Notification received in foreground:"
102
- ), P(e, "interacted"), g(e);
103
- }), d = i.addNotificationResponseReceivedListener((e) => {
104
- n.log("[Knock] Expo Push Notification was interacted with"), P(
105
- e.notification,
106
- "interacted"
107
- ), k(e);
108
- });
109
- return () => {
110
- i.removeNotificationSubscription(
111
- o
112
- ), i.removeNotificationSubscription(
113
- d
114
- );
115
- };
116
- }, [
117
- u,
118
- g,
119
- k,
120
- r,
121
- l,
122
- s,
123
- t,
124
- n
125
- ]), /* @__PURE__ */ h(
126
- N.Provider,
127
- {
128
- value: {
129
- expoPushToken: s,
130
- registerForPushNotifications: u,
131
- registerPushTokenToChannel: p,
132
- unregisterPushTokenFromChannel: x,
133
- onNotificationReceived: w,
134
- onNotificationTapped: E
135
- },
136
- children: m
137
- }
138
- );
139
- }, G = (t) => /* @__PURE__ */ h(C, { children: /* @__PURE__ */ h(D, { ...t }) }), z = () => {
140
- const t = A(N);
141
- if (t === void 0)
142
- throw new Error(
143
- "[Knock] useExpoPushNotifications must be used within a KnockExpoPushNotificationProvider"
144
- );
145
- return t;
146
- };
147
- export {
148
- G as KnockExpoPushNotificationProvider,
149
- z as useExpoPushNotifications
150
- };
151
- //# sourceMappingURL=KnockExpoPushNotificationProvider.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KnockExpoPushNotificationProvider.mjs","sources":["../../../../src/modules/push/KnockExpoPushNotificationProvider.tsx"],"sourcesContent":["import { Message, MessageEngagementStatus } from \"@knocklabs/client\";\nimport { useKnockClient } from \"@knocklabs/react-core\";\nimport {\n type KnockPushNotificationContextType,\n KnockPushNotificationProvider,\n usePushNotifications,\n} from \"@knocklabs/react-native\";\nimport Constants from \"expo-constants\";\nimport * as Device from \"expo-device\";\nimport * as Notifications from \"expo-notifications\";\nimport React, {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useState,\n} from \"react\";\n\nexport interface KnockExpoPushNotificationContextType\n extends KnockPushNotificationContextType {\n expoPushToken: string | null;\n registerForPushNotifications: () => Promise<void>;\n onNotificationReceived: (\n handler: (notification: Notifications.Notification) => void,\n ) => void;\n onNotificationTapped: (\n handler: (response: Notifications.NotificationResponse) => void,\n ) => void;\n}\n\nNotifications.setNotificationHandler({\n handleNotification: async () => {\n return {\n shouldShowAlert: true,\n shouldPlaySound: true,\n shouldSetBadge: true,\n shouldShowBanner: true,\n shouldShowList: true,\n };\n },\n});\n\nconst defaultNotificationHandler = async (\n _notification: Notifications.Notification,\n): Promise<Notifications.NotificationBehavior> => {\n return {\n shouldShowAlert: true,\n shouldPlaySound: true,\n shouldSetBadge: true,\n shouldShowBanner: true,\n shouldShowList: true,\n };\n};\n\nconst KnockExpoPushNotificationContext = createContext<\n KnockExpoPushNotificationContextType | undefined\n>(undefined);\n\nexport interface KnockExpoPushNotificationProviderProps {\n knockExpoChannelId: string;\n customNotificationHandler?: (\n notification: Notifications.Notification,\n ) => Promise<Notifications.NotificationBehavior>;\n children?: React.ReactElement;\n autoRegister?: boolean;\n}\n\nasync function requestPushPermissionIfNeeded(): Promise<string> {\n const { status: existingStatus } = await Notifications.getPermissionsAsync();\n\n if (existingStatus !== \"granted\") {\n const { status } = await Notifications.requestPermissionsAsync();\n return status;\n }\n\n return existingStatus;\n}\n\nasync function getExpoPushToken(): Promise<Notifications.ExpoPushToken | null> {\n try {\n if (\n !Constants.expoConfig ||\n !Constants.expoConfig.extra ||\n !Constants.expoConfig.extra.eas\n ) {\n console.error(\n \"[Knock] Expo Project ID is not defined in the app configuration.\",\n );\n return null;\n }\n const token = await Notifications.getExpoPushTokenAsync({\n projectId: Constants.expoConfig.extra.eas.projectId,\n });\n return token;\n } catch (error) {\n console.error(\"[Knock] Error getting Expo push token:\", error);\n return null;\n }\n}\n\nasync function requestPermissionAndGetPushToken(): Promise<Notifications.ExpoPushToken | null> {\n // Check for device support\n if (!Device.isDevice) {\n console.warn(\"[Knock] Must use physical device for Push Notifications\");\n return null;\n }\n\n const permissionStatus = await requestPushPermissionIfNeeded();\n\n if (permissionStatus !== \"granted\") {\n console.warn(\"[Knock] Push notification permission not granted\");\n return null;\n }\n\n return getExpoPushToken();\n}\n\nconst InternalKnockExpoPushNotificationProvider: React.FC<\n KnockExpoPushNotificationProviderProps\n> = ({\n knockExpoChannelId,\n customNotificationHandler,\n children,\n autoRegister = true,\n}) => {\n const { registerPushTokenToChannel, unregisterPushTokenFromChannel } =\n usePushNotifications();\n const [expoPushToken, setExpoPushToken] = useState<string | null>(null);\n const knockClient = useKnockClient();\n\n const [notificationReceivedHandler, setNotificationReceivedHandler] =\n useState<(notification: Notifications.Notification) => void>(\n () => () => {},\n );\n\n const [notificationTappedHandler, setNotificationTappedHandler] = useState<\n (response: Notifications.NotificationResponse) => void\n >(() => () => {});\n\n const handleNotificationReceived = useCallback(\n (handler: (notification: Notifications.Notification) => void) => {\n setNotificationReceivedHandler(() => handler);\n },\n [],\n );\n\n const handleNotificationTapped = useCallback(\n (handler: (response: Notifications.NotificationResponse) => void) => {\n setNotificationTappedHandler(() => handler);\n },\n [],\n );\n\n const registerForPushNotifications = useCallback(async (): Promise<void> => {\n try {\n knockClient.log(`[Knock] Registering for push notifications`);\n const token = await requestPermissionAndGetPushToken();\n knockClient.log(`[Knock] Token received: ${token?.data}`);\n if (token?.data) {\n knockClient.log(`[Knock] Setting push token: ${token.data}`);\n setExpoPushToken(token.data);\n }\n } catch (error) {\n console.error(`[Knock] Error registering for push notifications:`, error);\n }\n }, [knockClient]);\n\n const updateKnockMessageStatusFromNotification = useCallback(\n async (\n notification: Notifications.Notification,\n status: MessageEngagementStatus,\n ): Promise<Message> => {\n const messageId = notification.request.content.data[\n \"knock_message_id\"\n ] as string;\n return knockClient.messages.updateStatus(messageId, status);\n },\n [knockClient],\n );\n\n useEffect(() => {\n Notifications.setNotificationHandler({\n handleNotification:\n customNotificationHandler ?? defaultNotificationHandler,\n });\n\n if (autoRegister) {\n registerForPushNotifications()\n .then(() => {\n if (expoPushToken) {\n registerPushTokenToChannel(expoPushToken, knockExpoChannelId)\n .then((_result) => {\n knockClient.log(\"[Knock] setChannelData success\");\n })\n .catch((_error) => {\n console.error(\n \"[Knock] Error in setting push token or channel data\",\n _error,\n );\n });\n }\n })\n .catch((_error) => {\n console.error(\n \"[Knock] Error in setting push token or channel data\",\n _error,\n );\n });\n }\n\n const notificationReceivedSubscription =\n Notifications.addNotificationReceivedListener((notification) => {\n knockClient.log(\n \"[Knock] Expo Push Notification received in foreground:\",\n );\n updateKnockMessageStatusFromNotification(notification, \"interacted\");\n notificationReceivedHandler(notification);\n });\n\n const notificationResponseSubscription =\n Notifications.addNotificationResponseReceivedListener((response) => {\n knockClient.log(\"[Knock] Expo Push Notification was interacted with\");\n updateKnockMessageStatusFromNotification(\n response.notification,\n \"interacted\",\n );\n notificationTappedHandler(response);\n });\n\n return () => {\n Notifications.removeNotificationSubscription(\n notificationReceivedSubscription,\n );\n Notifications.removeNotificationSubscription(\n notificationResponseSubscription,\n );\n };\n\n // TODO: Remove when possible and ensure dependency array is correct\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [\n registerForPushNotifications,\n notificationReceivedHandler,\n notificationTappedHandler,\n customNotificationHandler,\n autoRegister,\n expoPushToken,\n knockExpoChannelId,\n knockClient,\n ]);\n\n return (\n <KnockExpoPushNotificationContext.Provider\n value={{\n expoPushToken,\n registerForPushNotifications,\n registerPushTokenToChannel,\n unregisterPushTokenFromChannel,\n onNotificationReceived: handleNotificationReceived,\n onNotificationTapped: handleNotificationTapped,\n }}\n >\n {children}\n </KnockExpoPushNotificationContext.Provider>\n );\n};\n\nexport const KnockExpoPushNotificationProvider: React.FC<\n KnockExpoPushNotificationProviderProps\n> = (props) => {\n return (\n <KnockPushNotificationProvider>\n <InternalKnockExpoPushNotificationProvider {...props} />\n </KnockPushNotificationProvider>\n );\n};\n\nexport const useExpoPushNotifications =\n (): KnockExpoPushNotificationContextType => {\n const context = useContext(KnockExpoPushNotificationContext);\n if (context === undefined) {\n throw new Error(\n \"[Knock] useExpoPushNotifications must be used within a KnockExpoPushNotificationProvider\",\n );\n }\n return context;\n };\n"],"names":["Notifications","defaultNotificationHandler","_notification","KnockExpoPushNotificationContext","createContext","requestPushPermissionIfNeeded","existingStatus","status","getExpoPushToken","Constants","error","requestPermissionAndGetPushToken","Device","InternalKnockExpoPushNotificationProvider","knockExpoChannelId","customNotificationHandler","children","autoRegister","registerPushTokenToChannel","unregisterPushTokenFromChannel","usePushNotifications","expoPushToken","setExpoPushToken","useState","knockClient","useKnockClient","notificationReceivedHandler","setNotificationReceivedHandler","notificationTappedHandler","setNotificationTappedHandler","handleNotificationReceived","useCallback","handler","handleNotificationTapped","registerForPushNotifications","token","updateKnockMessageStatusFromNotification","notification","messageId","useEffect","_result","_error","notificationReceivedSubscription","notificationResponseSubscription","response","jsx","KnockExpoPushNotificationProvider","props","KnockPushNotificationProvider","useExpoPushNotifications","context","useContext"],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- export * from './modules/push';
2
- export * from '@knocklabs/react-native';
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,yBAAyB,CAAC"}
@@ -1,18 +0,0 @@
1
- import { KnockPushNotificationContextType } from '@knocklabs/react-native';
2
- import { default as React } from 'react';
3
- import * as Notifications from "expo-notifications";
4
- export interface KnockExpoPushNotificationContextType extends KnockPushNotificationContextType {
5
- expoPushToken: string | null;
6
- registerForPushNotifications: () => Promise<void>;
7
- onNotificationReceived: (handler: (notification: Notifications.Notification) => void) => void;
8
- onNotificationTapped: (handler: (response: Notifications.NotificationResponse) => void) => void;
9
- }
10
- export interface KnockExpoPushNotificationProviderProps {
11
- knockExpoChannelId: string;
12
- customNotificationHandler?: (notification: Notifications.Notification) => Promise<Notifications.NotificationBehavior>;
13
- children?: React.ReactElement;
14
- autoRegister?: boolean;
15
- }
16
- export declare const KnockExpoPushNotificationProvider: React.FC<KnockExpoPushNotificationProviderProps>;
17
- export declare const useExpoPushNotifications: () => KnockExpoPushNotificationContextType;
18
- //# sourceMappingURL=KnockExpoPushNotificationProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"KnockExpoPushNotificationProvider.d.ts","sourceRoot":"","sources":["../../../../src/modules/push/KnockExpoPushNotificationProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,gCAAgC,EAGtC,MAAM,yBAAyB,CAAC;AAGjC,OAAO,KAAK,aAAa,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAMN,MAAM,OAAO,CAAC;AAEf,MAAM,WAAW,oCACf,SAAQ,gCAAgC;IACxC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,4BAA4B,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,sBAAsB,EAAE,CACtB,OAAO,EAAE,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,KAAK,IAAI,KACxD,IAAI,CAAC;IACV,oBAAoB,EAAE,CACpB,OAAO,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,oBAAoB,KAAK,IAAI,KAC5D,IAAI,CAAC;CACX;AA8BD,MAAM,WAAW,sCAAsC;IACrD,kBAAkB,EAAE,MAAM,CAAC;IAC3B,yBAAyB,CAAC,EAAE,CAC1B,YAAY,EAAE,aAAa,CAAC,YAAY,KACrC,OAAO,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC;IACjD,QAAQ,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC9B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AA0MD,eAAO,MAAM,iCAAiC,EAAE,KAAK,CAAC,EAAE,CACtD,sCAAsC,CAOvC,CAAC;AAEF,eAAO,MAAM,wBAAwB,QAC/B,oCAQH,CAAC"}
@@ -1,2 +0,0 @@
1
- export * from './KnockExpoPushNotificationProvider';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/modules/push/index.ts"],"names":[],"mappings":"AAAA,cAAc,qCAAqC,CAAC"}