@grupalia/rn-ui-kit 0.119.0 → 0.120.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/commonjs/hooks/useNotifications.js +24 -7
- package/lib/commonjs/hooks/useNotifications.js.map +1 -1
- package/lib/module/hooks/useNotifications.js +25 -9
- package/lib/module/hooks/useNotifications.js.map +1 -1
- package/lib/typescript/commonjs/hooks/useNotifications.d.ts +15 -6
- package/lib/typescript/commonjs/hooks/useNotifications.d.ts.map +1 -1
- package/lib/typescript/module/hooks/useNotifications.d.ts +15 -6
- package/lib/typescript/module/hooks/useNotifications.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.default = void 0;
|
|
7
7
|
exports.deleteAllChannels = deleteAllChannels;
|
|
8
8
|
exports.getDeviceToken = getDeviceToken;
|
|
9
|
+
exports.registerBackgroundFcmHandler = registerBackgroundFcmHandler;
|
|
9
10
|
exports.registerChannels = registerChannels;
|
|
10
11
|
exports.requestUserPermission = requestUserPermission;
|
|
11
12
|
exports.subscribeToTopics = subscribeToTopics;
|
|
@@ -34,10 +35,11 @@ function extractNotificationData(message) {
|
|
|
34
35
|
return message.data ?? {};
|
|
35
36
|
}
|
|
36
37
|
async function displayForegroundNotification(message, config) {
|
|
38
|
+
if (!message.notification) return;
|
|
37
39
|
const data = extractNotificationData(message);
|
|
38
40
|
await _reactNative.default.displayNotification({
|
|
39
|
-
title: message.notification
|
|
40
|
-
body: message.notification
|
|
41
|
+
title: message.notification.title ?? undefined,
|
|
42
|
+
body: message.notification.body ?? undefined,
|
|
41
43
|
data: message.data,
|
|
42
44
|
android: {
|
|
43
45
|
channelId: data.channelId || config.defaultChannelId || 'default',
|
|
@@ -58,23 +60,28 @@ function useNotifications(config) {
|
|
|
58
60
|
registerChannels(config.androidChannels);
|
|
59
61
|
}
|
|
60
62
|
|
|
61
|
-
// Cold start: app was killed, user tapped OS notification
|
|
63
|
+
// Cold start: app was killed, user tapped OS notification.
|
|
64
|
+
// We only fire `onNotificationOpened` (for deep linking). The data-event
|
|
65
|
+
// dispatch is the consumer's responsibility. See the bg-handler queue
|
|
66
|
+
// pattern for catching killed-state events regardless of tap.
|
|
62
67
|
(0, _messaging.getInitialNotification)(messaging).then(message => {
|
|
63
|
-
if (message)
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
}
|
|
68
|
+
if (!message) return;
|
|
69
|
+
const data = extractNotificationData(message);
|
|
70
|
+
config.onNotificationOpened?.(data, message.messageId);
|
|
67
71
|
});
|
|
68
72
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
69
73
|
}, []);
|
|
70
74
|
(0, _react.useEffect)(() => {
|
|
71
75
|
const unsubscribeOnMessage = (0, _messaging.onMessage)(messaging, message => {
|
|
76
|
+
const data = extractNotificationData(message);
|
|
77
|
+
config.onMessageData?.(data);
|
|
72
78
|
displayForegroundNotification(message, config);
|
|
73
79
|
});
|
|
74
80
|
|
|
75
81
|
// Background → foreground: user tapped OS notification
|
|
76
82
|
const unsubscribeOnOpened = (0, _messaging.onNotificationOpenedApp)(messaging, message => {
|
|
77
83
|
const data = extractNotificationData(message);
|
|
84
|
+
config.onMessageData?.(data);
|
|
78
85
|
config.onNotificationOpened?.(data, message.messageId);
|
|
79
86
|
});
|
|
80
87
|
const unsubscribeOnForegroundTap = _reactNative.default.onForegroundEvent(event => {
|
|
@@ -118,6 +125,16 @@ async function subscribeToTopics(topics) {
|
|
|
118
125
|
const messaging = (0, _messaging.getMessaging)();
|
|
119
126
|
await Promise.all(topics.map(topic => (0, _messaging.subscribeToTopic)(messaging, topic)));
|
|
120
127
|
}
|
|
128
|
+
|
|
129
|
+
// `setBackgroundMessageHandler` must be registered at module top-level on the
|
|
130
|
+
// consumer side, before the JS runtime is suspended. Calling it from inside a
|
|
131
|
+
// React component is too late. Consumers invoke this from their entry file
|
|
132
|
+
function registerBackgroundFcmHandler(handler) {
|
|
133
|
+
(0, _messaging.setBackgroundMessageHandler)((0, _messaging.getMessaging)(), async message => {
|
|
134
|
+
const data = extractNotificationData(message);
|
|
135
|
+
await handler(data);
|
|
136
|
+
});
|
|
137
|
+
}
|
|
121
138
|
async function unsubscribeFromTopics(topics) {
|
|
122
139
|
const messaging = (0, _messaging.getMessaging)();
|
|
123
140
|
await Promise.all(topics.map(topic => (0, _messaging.unsubscribeFromTopic)(messaging, topic)));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","_interopRequireWildcard","require","_messaging","_react","_reactNative2","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","requestUserPermission","settings","notifee","requestPermission","authorizationStatus","AuthorizationStatus","AUTHORIZED","getDeviceToken","enabled","getToken","getMessaging","registerChannels","channels","registered","getChannels","registeredIds","Set","map","channel","id","Promise","all","filter","createChannel","extractNotificationData","message","data","displayForegroundNotification","config","
|
|
1
|
+
{"version":3,"names":["_reactNative","_interopRequireWildcard","require","_messaging","_react","_reactNative2","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","requestUserPermission","settings","notifee","requestPermission","authorizationStatus","AuthorizationStatus","AUTHORIZED","getDeviceToken","enabled","getToken","getMessaging","registerChannels","channels","registered","getChannels","registeredIds","Set","map","channel","id","Promise","all","filter","createChannel","extractNotificationData","message","data","displayForegroundNotification","config","notification","displayNotification","title","undefined","body","android","channelId","defaultChannelId","smallIcon","androidSmallIcon","pressAction","useNotifications","isSignedIn","messaging","useEffect","androidChannels","length","Platform","OS","getInitialNotification","then","onNotificationOpened","messageId","unsubscribeOnMessage","onMessage","onMessageData","unsubscribeOnOpened","onNotificationOpenedApp","unsubscribeOnForegroundTap","onForegroundEvent","event","type","EventType","PRESS","detail","acquireAndRegisterToken","token","onTokenAcquired","error","console","deleteAllChannels","deleteChannel","subscribeToTopics","topics","topic","subscribeToTopic","registerBackgroundFcmHandler","handler","setBackgroundMessageHandler","unsubscribeFromTopics","unsubscribeFromTopic","_default","exports"],"sourceRoot":"../../../src","sources":["hooks/useNotifications.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
3
|
import notifee, { EventType } from '@notifee/react-native';
|
|
4
|
-
import { getMessaging, getToken, AuthorizationStatus, getInitialNotification, onMessage, onNotificationOpenedApp, subscribeToTopic, unsubscribeFromTopic } from '@react-native-firebase/messaging';
|
|
4
|
+
import { getMessaging, getToken, AuthorizationStatus, getInitialNotification, onMessage, onNotificationOpenedApp, setBackgroundMessageHandler, subscribeToTopic, unsubscribeFromTopic } from '@react-native-firebase/messaging';
|
|
5
5
|
import { useEffect } from 'react';
|
|
6
6
|
import { Platform } from 'react-native';
|
|
7
7
|
async function requestUserPermission() {
|
|
@@ -22,10 +22,11 @@ function extractNotificationData(message) {
|
|
|
22
22
|
return message.data ?? {};
|
|
23
23
|
}
|
|
24
24
|
async function displayForegroundNotification(message, config) {
|
|
25
|
+
if (!message.notification) return;
|
|
25
26
|
const data = extractNotificationData(message);
|
|
26
27
|
await notifee.displayNotification({
|
|
27
|
-
title: message.notification
|
|
28
|
-
body: message.notification
|
|
28
|
+
title: message.notification.title ?? undefined,
|
|
29
|
+
body: message.notification.body ?? undefined,
|
|
29
30
|
data: message.data,
|
|
30
31
|
android: {
|
|
31
32
|
channelId: data.channelId || config.defaultChannelId || 'default',
|
|
@@ -46,23 +47,28 @@ function useNotifications(config) {
|
|
|
46
47
|
registerChannels(config.androidChannels);
|
|
47
48
|
}
|
|
48
49
|
|
|
49
|
-
// Cold start: app was killed, user tapped OS notification
|
|
50
|
+
// Cold start: app was killed, user tapped OS notification.
|
|
51
|
+
// We only fire `onNotificationOpened` (for deep linking). The data-event
|
|
52
|
+
// dispatch is the consumer's responsibility. See the bg-handler queue
|
|
53
|
+
// pattern for catching killed-state events regardless of tap.
|
|
50
54
|
getInitialNotification(messaging).then(message => {
|
|
51
|
-
if (message)
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
}
|
|
55
|
+
if (!message) return;
|
|
56
|
+
const data = extractNotificationData(message);
|
|
57
|
+
config.onNotificationOpened?.(data, message.messageId);
|
|
55
58
|
});
|
|
56
59
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
57
60
|
}, []);
|
|
58
61
|
useEffect(() => {
|
|
59
62
|
const unsubscribeOnMessage = onMessage(messaging, message => {
|
|
63
|
+
const data = extractNotificationData(message);
|
|
64
|
+
config.onMessageData?.(data);
|
|
60
65
|
displayForegroundNotification(message, config);
|
|
61
66
|
});
|
|
62
67
|
|
|
63
68
|
// Background → foreground: user tapped OS notification
|
|
64
69
|
const unsubscribeOnOpened = onNotificationOpenedApp(messaging, message => {
|
|
65
70
|
const data = extractNotificationData(message);
|
|
71
|
+
config.onMessageData?.(data);
|
|
66
72
|
config.onNotificationOpened?.(data, message.messageId);
|
|
67
73
|
});
|
|
68
74
|
const unsubscribeOnForegroundTap = notifee.onForegroundEvent(event => {
|
|
@@ -106,10 +112,20 @@ async function subscribeToTopics(topics) {
|
|
|
106
112
|
const messaging = getMessaging();
|
|
107
113
|
await Promise.all(topics.map(topic => subscribeToTopic(messaging, topic)));
|
|
108
114
|
}
|
|
115
|
+
|
|
116
|
+
// `setBackgroundMessageHandler` must be registered at module top-level on the
|
|
117
|
+
// consumer side, before the JS runtime is suspended. Calling it from inside a
|
|
118
|
+
// React component is too late. Consumers invoke this from their entry file
|
|
119
|
+
function registerBackgroundFcmHandler(handler) {
|
|
120
|
+
setBackgroundMessageHandler(getMessaging(), async message => {
|
|
121
|
+
const data = extractNotificationData(message);
|
|
122
|
+
await handler(data);
|
|
123
|
+
});
|
|
124
|
+
}
|
|
109
125
|
async function unsubscribeFromTopics(topics) {
|
|
110
126
|
const messaging = getMessaging();
|
|
111
127
|
await Promise.all(topics.map(topic => unsubscribeFromTopic(messaging, topic)));
|
|
112
128
|
}
|
|
113
|
-
export { deleteAllChannels, getDeviceToken, registerChannels, requestUserPermission, subscribeToTopics, unsubscribeFromTopics, useNotifications };
|
|
129
|
+
export { deleteAllChannels, getDeviceToken, registerBackgroundFcmHandler, registerChannels, requestUserPermission, subscribeToTopics, unsubscribeFromTopics, useNotifications };
|
|
114
130
|
export default useNotifications;
|
|
115
131
|
//# sourceMappingURL=useNotifications.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["notifee","EventType","getMessaging","getToken","AuthorizationStatus","getInitialNotification","onMessage","onNotificationOpenedApp","subscribeToTopic","unsubscribeFromTopic","useEffect","Platform","requestUserPermission","settings","requestPermission","authorizationStatus","AUTHORIZED","getDeviceToken","enabled","registerChannels","channels","registered","getChannels","registeredIds","Set","map","channel","id","Promise","all","filter","has","createChannel","extractNotificationData","message","data","displayForegroundNotification","config","
|
|
1
|
+
{"version":3,"names":["notifee","EventType","getMessaging","getToken","AuthorizationStatus","getInitialNotification","onMessage","onNotificationOpenedApp","setBackgroundMessageHandler","subscribeToTopic","unsubscribeFromTopic","useEffect","Platform","requestUserPermission","settings","requestPermission","authorizationStatus","AUTHORIZED","getDeviceToken","enabled","registerChannels","channels","registered","getChannels","registeredIds","Set","map","channel","id","Promise","all","filter","has","createChannel","extractNotificationData","message","data","displayForegroundNotification","config","notification","displayNotification","title","undefined","body","android","channelId","defaultChannelId","smallIcon","androidSmallIcon","pressAction","useNotifications","isSignedIn","messaging","androidChannels","length","OS","then","onNotificationOpened","messageId","unsubscribeOnMessage","onMessageData","unsubscribeOnOpened","unsubscribeOnForegroundTap","onForegroundEvent","event","type","PRESS","detail","acquireAndRegisterToken","token","onTokenAcquired","error","console","deleteAllChannels","deleteChannel","subscribeToTopics","topics","topic","registerBackgroundFcmHandler","handler","unsubscribeFromTopics"],"sourceRoot":"../../../src","sources":["hooks/useNotifications.ts"],"mappings":";;AAAA,OAAOA,OAAO,IACZC,SAAS,QAGJ,uBAAuB;AAC9B,SACEC,YAAY,EACZC,QAAQ,EACRC,mBAAmB,EACnBC,sBAAsB,EACtBC,SAAS,EACTC,uBAAuB,EACvBC,2BAA2B,EAC3BC,gBAAgB,EAChBC,oBAAoB,QAEf,kCAAkC;AACzC,SAASC,SAAS,QAAQ,OAAO;AACjC,SAASC,QAAQ,QAAQ,cAAc;AA0BvC,eAAeC,qBAAqBA,CAAA,EAAG;EACrC,MAAMC,QAAQ,GAAG,MAAMd,OAAO,CAACe,iBAAiB,CAAC,CAAC;EAElD,OAAOD,QAAQ,CAACE,mBAAmB,IAAIZ,mBAAmB,CAACa,UAAU;AACvE;AAEA,eAAeC,cAAcA,CAAA,EAA2B;EACtD,MAAMC,OAAO,GAAG,MAAMN,qBAAqB,CAAC,CAAC;EAC7C,IAAI,CAACM,OAAO,EAAE,OAAO,IAAI;EAEzB,OAAOhB,QAAQ,CAACD,YAAY,CAAC,CAAC,CAAC;AACjC;AAEA,eAAekB,gBAAgBA,CAACC,QAA0B,EAAiB;EACzE,MAAMC,UAAU,GAAG,MAAMtB,OAAO,CAACuB,WAAW,CAAC,CAAC;EAC9C,MAAMC,aAAa,GAAG,IAAIC,GAAG,CAACH,UAAU,CAACI,GAAG,CAAEC,OAAO,IAAKA,OAAO,CAACC,EAAE,CAAC,CAAC;EAEtE,MAAMC,OAAO,CAACC,GAAG,CACfT,QAAQ,CACLU,MAAM,CAAEJ,OAAO,IAAK,CAACH,aAAa,CAACQ,GAAG,CAACL,OAAO,CAACC,EAAE,CAAC,CAAC,CACnDF,GAAG,CAAEC,OAAO,IAAK3B,OAAO,CAACiC,aAAa,CAACN,OAAO,CAAC,CACpD,CAAC;AACH;AAEA,SAASO,uBAAuBA,CAE9BC,OAA6C,EAAoC;EACjF,OAAQA,OAAO,CAACC,IAAI,IAAI,CAAC,CAAC;AAC5B;AAEA,eAAeC,6BAA6BA,CAC1CF,OAA6C,EAC7CG,MAA0E,EAC3D;EACf,IAAI,CAACH,OAAO,CAACI,YAAY,EAAE;EAE3B,MAAMH,IAAI,GAAGF,uBAAuB,CAACC,OAAO,CAAC;EAE7C,MAAMnC,OAAO,CAACwC,mBAAmB,CAAC;IAChCC,KAAK,EAAEN,OAAO,CAACI,YAAY,CAACE,KAAK,IAAIC,SAAS;IAC9CC,IAAI,EAAER,OAAO,CAACI,YAAY,CAACI,IAAI,IAAID,SAAS;IAC5CN,IAAI,EAAED,OAAO,CAACC,IAAI;IAClBQ,OAAO,EAAE;MACPC,SAAS,EAAET,IAAI,CAACS,SAAS,IAAIP,MAAM,CAACQ,gBAAgB,IAAI,SAAS;MACjEC,SAAS,EAAET,MAAM,CAACU,gBAAgB;MAClCC,WAAW,EAAE;QAAErB,EAAE,EAAE;MAAU;IAC/B;EACF,CAAC,CAAC;AACJ;AAEA,SAASsB,gBAAgBA,CAEvBZ,MAA2C,EAAQ;EACnD,MAAM;IAAEa;EAAW,CAAC,GAAGb,MAAM;EAC7B,MAAMc,SAAS,GAAGlD,YAAY,CAAC,CAAC;EAEhCS,SAAS,CAAC,MAAM;IACd,IAAI2B,MAAM,CAACe,eAAe,EAAEC,MAAM,IAAI1C,QAAQ,CAAC2C,EAAE,KAAK,SAAS,EAAE;MAC/DnC,gBAAgB,CAACkB,MAAM,CAACe,eAAe,CAAC;IAC1C;;IAEA;IACA;IACA;IACA;IACAhD,sBAAsB,CAAC+C,SAAS,CAAC,CAACI,IAAI,CAAErB,OAAO,IAAK;MAClD,IAAI,CAACA,OAAO,EAAE;MACd,MAAMC,IAAI,GAAGF,uBAAuB,CAAiBC,OAAO,CAAC;MAC7DG,MAAM,CAACmB,oBAAoB,GAAGrB,IAAI,EAAED,OAAO,CAACuB,SAAS,CAAC;IACxD,CAAC,CAAC;IACF;EACF,CAAC,EAAE,EAAE,CAAC;EAEN/C,SAAS,CAAC,MAAM;IACd,MAAMgD,oBAAoB,GAAGrD,SAAS,CAAC8C,SAAS,EAAGjB,OAAO,IAAK;MAC7D,MAAMC,IAAI,GAAGF,uBAAuB,CAAiBC,OAAO,CAAC;MAC7DG,MAAM,CAACsB,aAAa,GAAGxB,IAAI,CAAC;MAC5BC,6BAA6B,CAACF,OAAO,EAAEG,MAAM,CAAC;IAChD,CAAC,CAAC;;IAEF;IACA,MAAMuB,mBAAmB,GAAGtD,uBAAuB,CAAC6C,SAAS,EAAGjB,OAAO,IAAK;MAC1E,MAAMC,IAAI,GAAGF,uBAAuB,CAAiBC,OAAO,CAAC;MAC7DG,MAAM,CAACsB,aAAa,GAAGxB,IAAI,CAAC;MAC5BE,MAAM,CAACmB,oBAAoB,GAAGrB,IAAI,EAAED,OAAO,CAACuB,SAAS,CAAC;IACxD,CAAC,CAAC;IAEF,MAAMI,0BAA0B,GAAG9D,OAAO,CAAC+D,iBAAiB,CAAEC,KAAY,IAAK;MAC7E,IAAIA,KAAK,CAACC,IAAI,KAAKhE,SAAS,CAACiE,KAAK,IAAIF,KAAK,CAACG,MAAM,CAAC5B,YAAY,EAAE;QAC/D,MAAMH,IAAI,GAAI4B,KAAK,CAACG,MAAM,CAAC5B,YAAY,CAACH,IAAI,IAAI,CAAC,CAAsC;QACvFE,MAAM,CAACmB,oBAAoB,GAAGrB,IAAI,EAAE4B,KAAK,CAACG,MAAM,CAAC5B,YAAY,CAACX,EAAE,CAAC;MACnE;IACF,CAAC,CAAC;IAEF,OAAO,MAAM;MACX+B,oBAAoB,CAAC,CAAC;MACtBE,mBAAmB,CAAC,CAAC;MACrBC,0BAA0B,CAAC,CAAC;IAC9B,CAAC;IACD;EACF,CAAC,EAAE,CAACxB,MAAM,CAAC,CAAC;EAEZ3B,SAAS,CAAC,MAAM;IACd,IAAI,CAACwC,UAAU,EAAE;IAEjB,MAAMiB,uBAAuB,GAAG,MAAAA,CAAA,KAAY;MAC1C,IAAI;QACF,MAAMC,KAAK,GAAG,MAAMnD,cAAc,CAAC,CAAC;QACpC,IAAImD,KAAK,EAAE;UACT,IAAI;YACF,MAAM/B,MAAM,CAACgC,eAAe,CAACD,KAAK,CAAC;UACrC,CAAC,CAAC,OAAOE,KAAK,EAAE;YACdC,OAAO,CAACD,KAAK,CAAC,wBAAwB,EAAEA,KAAK,CAAC;UAChD;QACF;MACF,CAAC,CAAC,OAAOA,KAAK,EAAE;QACdC,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;MACtB;IACF,CAAC;IAEDH,uBAAuB,CAAC,CAAC;IACzB;EACF,CAAC,EAAE,CAACjB,UAAU,CAAC,CAAC;AAClB;AAEA,eAAesB,iBAAiBA,CAAA,EAAkB;EAChD,MAAMpD,QAAQ,GAAG,MAAMrB,OAAO,CAACuB,WAAW,CAAC,CAAC;EAC5C,MAAMM,OAAO,CAACC,GAAG,CAACT,QAAQ,CAACK,GAAG,CAAEC,OAAO,IAAK3B,OAAO,CAAC0E,aAAa,CAAC/C,OAAO,CAACC,EAAE,CAAC,CAAC,CAAC;AACjF;AAEA,eAAe+C,iBAAiBA,CAACC,MAAgB,EAAiB;EAChE,MAAMxB,SAAS,GAAGlD,YAAY,CAAC,CAAC;EAChC,MAAM2B,OAAO,CAACC,GAAG,CAAC8C,MAAM,CAAClD,GAAG,CAAEmD,KAAK,IAAKpE,gBAAgB,CAAC2C,SAAS,EAAEyB,KAAK,CAAC,CAAC,CAAC;AAC9E;;AAEA;AACA;AACA;AACA,SAASC,4BAA4BA,CAGnCC,OAAyE,EACnE;EACNvE,2BAA2B,CAACN,YAAY,CAAC,CAAC,EAAE,MAAOiC,OAAO,IAAK;IAC7D,MAAMC,IAAI,GAAGF,uBAAuB,CAAiBC,OAAO,CAAC;IAC7D,MAAM4C,OAAO,CAAC3C,IAAI,CAAC;EACrB,CAAC,CAAC;AACJ;AAEA,eAAe4C,qBAAqBA,CAACJ,MAAgB,EAAiB;EACpE,MAAMxB,SAAS,GAAGlD,YAAY,CAAC,CAAC;EAChC,MAAM2B,OAAO,CAACC,GAAG,CAAC8C,MAAM,CAAClD,GAAG,CAAEmD,KAAK,IAAKnE,oBAAoB,CAAC0C,SAAS,EAAEyB,KAAK,CAAC,CAAC,CAAC;AAClF;AAEA,SACEJ,iBAAiB,EACjBvD,cAAc,EACd4D,4BAA4B,EAC5B1D,gBAAgB,EAChBP,qBAAqB,EACrB8D,iBAAiB,EACjBK,qBAAqB,EACrB9B,gBAAgB;AAElB,eAAeA,gBAAgB","ignoreList":[]}
|
|
@@ -1,25 +1,34 @@
|
|
|
1
1
|
import { AndroidChannel } from '@notifee/react-native';
|
|
2
2
|
export type { AndroidChannel };
|
|
3
|
-
export
|
|
3
|
+
export type NotificationResourceEvent = {
|
|
4
|
+
resource_type: string;
|
|
5
|
+
action: string;
|
|
6
|
+
};
|
|
7
|
+
export type NotificationData<TResourceEvent extends NotificationResourceEvent = NotificationResourceEvent> = (TResourceEvent | {
|
|
8
|
+
resource_type: undefined;
|
|
9
|
+
action: undefined;
|
|
10
|
+
}) & {
|
|
4
11
|
url?: string;
|
|
5
12
|
channelId?: string;
|
|
6
13
|
[key: string]: string | undefined;
|
|
7
|
-
}
|
|
8
|
-
export interface NotificationsConfig {
|
|
14
|
+
};
|
|
15
|
+
export interface NotificationsConfig<TResourceEvent extends NotificationResourceEvent = NotificationResourceEvent> {
|
|
9
16
|
onTokenAcquired: (token: string) => Promise<void>;
|
|
10
17
|
isSignedIn: boolean;
|
|
11
18
|
androidChannels?: AndroidChannel[];
|
|
12
19
|
androidSmallIcon?: string;
|
|
13
20
|
defaultChannelId?: string;
|
|
14
|
-
onNotificationOpened?: (data: NotificationData
|
|
21
|
+
onNotificationOpened?: (data: NotificationData<TResourceEvent>, messageId?: string) => void;
|
|
22
|
+
onMessageData?: (data: NotificationData<TResourceEvent>) => void;
|
|
15
23
|
}
|
|
16
24
|
declare function requestUserPermission(): Promise<boolean>;
|
|
17
25
|
declare function getDeviceToken(): Promise<string | null>;
|
|
18
26
|
declare function registerChannels(channels: AndroidChannel[]): Promise<void>;
|
|
19
|
-
declare function useNotifications(config: NotificationsConfig): void;
|
|
27
|
+
declare function useNotifications<TResourceEvent extends NotificationResourceEvent = NotificationResourceEvent>(config: NotificationsConfig<TResourceEvent>): void;
|
|
20
28
|
declare function deleteAllChannels(): Promise<void>;
|
|
21
29
|
declare function subscribeToTopics(topics: string[]): Promise<void>;
|
|
30
|
+
declare function registerBackgroundFcmHandler<TResourceEvent extends NotificationResourceEvent = NotificationResourceEvent>(handler: (data: NotificationData<TResourceEvent>) => void | Promise<void>): void;
|
|
22
31
|
declare function unsubscribeFromTopics(topics: string[]): Promise<void>;
|
|
23
|
-
export { deleteAllChannels, getDeviceToken, registerChannels, requestUserPermission, subscribeToTopics, unsubscribeFromTopics, useNotifications, };
|
|
32
|
+
export { deleteAllChannels, getDeviceToken, registerBackgroundFcmHandler, registerChannels, requestUserPermission, subscribeToTopics, unsubscribeFromTopics, useNotifications, };
|
|
24
33
|
export default useNotifications;
|
|
25
34
|
//# sourceMappingURL=useNotifications.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNotifications.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useNotifications.ts"],"names":[],"mappings":"AAAA,OAAgB,EAGd,cAAc,EACf,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"useNotifications.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useNotifications.ts"],"names":[],"mappings":"AAAA,OAAgB,EAGd,cAAc,EACf,MAAM,uBAAuB,CAAC;AAgB/B,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,MAAM,MAAM,yBAAyB,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElF,MAAM,MAAM,gBAAgB,CAC1B,cAAc,SAAS,yBAAyB,GAAG,yBAAyB,IAC1E,CAAC,cAAc,GAAG;IAAE,aAAa,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,GAAG;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,MAAM,WAAW,mBAAmB,CAClC,cAAc,SAAS,yBAAyB,GAAG,yBAAyB;IAE5E,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5F,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;CAClE;AAED,iBAAe,qBAAqB,qBAInC;AAED,iBAAe,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKtD;AAED,iBAAe,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CASzE;AA4BD,iBAAS,gBAAgB,CACvB,cAAc,SAAS,yBAAyB,GAAG,yBAAyB,EAC5E,MAAM,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,IAAI,CAuEnD;AAED,iBAAe,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGhD;AAED,iBAAe,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhE;AAKD,iBAAS,4BAA4B,CACnC,cAAc,SAAS,yBAAyB,GAAG,yBAAyB,EAE5E,OAAO,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,cAAc,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACxE,IAAI,CAKN;AAED,iBAAe,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpE;AAED,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,4BAA4B,EAC5B,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,GACjB,CAAC;AACF,eAAe,gBAAgB,CAAC"}
|
|
@@ -1,25 +1,34 @@
|
|
|
1
1
|
import { AndroidChannel } from '@notifee/react-native';
|
|
2
2
|
export type { AndroidChannel };
|
|
3
|
-
export
|
|
3
|
+
export type NotificationResourceEvent = {
|
|
4
|
+
resource_type: string;
|
|
5
|
+
action: string;
|
|
6
|
+
};
|
|
7
|
+
export type NotificationData<TResourceEvent extends NotificationResourceEvent = NotificationResourceEvent> = (TResourceEvent | {
|
|
8
|
+
resource_type: undefined;
|
|
9
|
+
action: undefined;
|
|
10
|
+
}) & {
|
|
4
11
|
url?: string;
|
|
5
12
|
channelId?: string;
|
|
6
13
|
[key: string]: string | undefined;
|
|
7
|
-
}
|
|
8
|
-
export interface NotificationsConfig {
|
|
14
|
+
};
|
|
15
|
+
export interface NotificationsConfig<TResourceEvent extends NotificationResourceEvent = NotificationResourceEvent> {
|
|
9
16
|
onTokenAcquired: (token: string) => Promise<void>;
|
|
10
17
|
isSignedIn: boolean;
|
|
11
18
|
androidChannels?: AndroidChannel[];
|
|
12
19
|
androidSmallIcon?: string;
|
|
13
20
|
defaultChannelId?: string;
|
|
14
|
-
onNotificationOpened?: (data: NotificationData
|
|
21
|
+
onNotificationOpened?: (data: NotificationData<TResourceEvent>, messageId?: string) => void;
|
|
22
|
+
onMessageData?: (data: NotificationData<TResourceEvent>) => void;
|
|
15
23
|
}
|
|
16
24
|
declare function requestUserPermission(): Promise<boolean>;
|
|
17
25
|
declare function getDeviceToken(): Promise<string | null>;
|
|
18
26
|
declare function registerChannels(channels: AndroidChannel[]): Promise<void>;
|
|
19
|
-
declare function useNotifications(config: NotificationsConfig): void;
|
|
27
|
+
declare function useNotifications<TResourceEvent extends NotificationResourceEvent = NotificationResourceEvent>(config: NotificationsConfig<TResourceEvent>): void;
|
|
20
28
|
declare function deleteAllChannels(): Promise<void>;
|
|
21
29
|
declare function subscribeToTopics(topics: string[]): Promise<void>;
|
|
30
|
+
declare function registerBackgroundFcmHandler<TResourceEvent extends NotificationResourceEvent = NotificationResourceEvent>(handler: (data: NotificationData<TResourceEvent>) => void | Promise<void>): void;
|
|
22
31
|
declare function unsubscribeFromTopics(topics: string[]): Promise<void>;
|
|
23
|
-
export { deleteAllChannels, getDeviceToken, registerChannels, requestUserPermission, subscribeToTopics, unsubscribeFromTopics, useNotifications, };
|
|
32
|
+
export { deleteAllChannels, getDeviceToken, registerBackgroundFcmHandler, registerChannels, requestUserPermission, subscribeToTopics, unsubscribeFromTopics, useNotifications, };
|
|
24
33
|
export default useNotifications;
|
|
25
34
|
//# sourceMappingURL=useNotifications.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useNotifications.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useNotifications.ts"],"names":[],"mappings":"AAAA,OAAgB,EAGd,cAAc,EACf,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"useNotifications.d.ts","sourceRoot":"","sources":["../../../../src/hooks/useNotifications.ts"],"names":[],"mappings":"AAAA,OAAgB,EAGd,cAAc,EACf,MAAM,uBAAuB,CAAC;AAgB/B,YAAY,EAAE,cAAc,EAAE,CAAC;AAE/B,MAAM,MAAM,yBAAyB,GAAG;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAElF,MAAM,MAAM,gBAAgB,CAC1B,cAAc,SAAS,yBAAyB,GAAG,yBAAyB,IAC1E,CAAC,cAAc,GAAG;IAAE,aAAa,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,SAAS,CAAA;CAAE,CAAC,GAAG;IACvE,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC,CAAC;AAEF,MAAM,WAAW,mBAAmB,CAClC,cAAc,SAAS,yBAAyB,GAAG,yBAAyB;IAE5E,eAAe,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAClD,UAAU,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,cAAc,EAAE,CAAC;IACnC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,oBAAoB,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,cAAc,CAAC,EAAE,SAAS,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5F,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,cAAc,CAAC,KAAK,IAAI,CAAC;CAClE;AAED,iBAAe,qBAAqB,qBAInC;AAED,iBAAe,cAAc,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKtD;AAED,iBAAe,gBAAgB,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CASzE;AA4BD,iBAAS,gBAAgB,CACvB,cAAc,SAAS,yBAAyB,GAAG,yBAAyB,EAC5E,MAAM,EAAE,mBAAmB,CAAC,cAAc,CAAC,GAAG,IAAI,CAuEnD;AAED,iBAAe,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC,CAGhD;AAED,iBAAe,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhE;AAKD,iBAAS,4BAA4B,CACnC,cAAc,SAAS,yBAAyB,GAAG,yBAAyB,EAE5E,OAAO,EAAE,CAAC,IAAI,EAAE,gBAAgB,CAAC,cAAc,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,GACxE,IAAI,CAKN;AAED,iBAAe,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpE;AAED,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,4BAA4B,EAC5B,gBAAgB,EAChB,qBAAqB,EACrB,iBAAiB,EACjB,qBAAqB,EACrB,gBAAgB,GACjB,CAAC;AACF,eAAe,gBAAgB,CAAC"}
|