@trycourier/courier-react-native 5.4.3 → 5.5.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 (115) hide show
  1. package/android/build.gradle +2 -2
  2. package/android/gradle.properties +1 -1
  3. package/android/src/main/java/com/courierreactnative/CourierClientModule.kt +298 -303
  4. package/android/src/main/java/com/courierreactnative/CourierSharedModule.kt +194 -165
  5. package/android/src/main/java/com/courierreactnative/Utils.kt +1 -1
  6. package/courier-react-native.podspec +1 -1
  7. package/ios/CourierReactNativeDelegate.m +12 -8
  8. package/ios/CourierReactNativeEventEmitter.swift +1 -1
  9. package/ios/CourierReactNativeModule.m +3 -5
  10. package/ios/CourierSharedModule.swift +88 -112
  11. package/lib/commonjs/index.js +75 -93
  12. package/lib/commonjs/index.js.map +1 -1
  13. package/lib/commonjs/models/CourierInboxListener.js +1 -0
  14. package/lib/commonjs/models/CourierInboxListener.js.map +1 -1
  15. package/lib/commonjs/models/InboxAction.js +22 -0
  16. package/lib/commonjs/models/InboxAction.js.map +1 -1
  17. package/lib/commonjs/models/InboxMessage.js +64 -0
  18. package/lib/commonjs/models/InboxMessage.js.map +1 -1
  19. package/lib/commonjs/models/InboxMessageEvent.js +2 -0
  20. package/lib/commonjs/models/InboxMessageEvent.js.map +1 -0
  21. package/lib/commonjs/views/CourierInboxView.js +6 -4
  22. package/lib/commonjs/views/CourierInboxView.js.map +1 -1
  23. package/lib/example/src/App.js +11 -0
  24. package/lib/example/src/Emitter.js +11 -0
  25. package/lib/example/src/Env.js +6 -0
  26. package/lib/example/src/Home.js +67 -0
  27. package/lib/example/src/Poke.js +75 -0
  28. package/lib/example/src/Tabs.js +36 -0
  29. package/lib/example/src/Utils.js +71 -0
  30. package/lib/example/src/pages/Auth.js +224 -0
  31. package/lib/example/src/pages/Inbox.js +38 -0
  32. package/lib/example/src/pages/Preferences.js +13 -0
  33. package/lib/example/src/pages/PreferencesStack.js +11 -0
  34. package/lib/example/src/pages/Push.js +93 -0
  35. package/lib/example/src/pages/Styles.js +26 -0
  36. package/lib/example/src/pages/Tests.js +1068 -0
  37. package/lib/example/src/pages/inbox/InboxCustom.js +141 -0
  38. package/lib/example/src/pages/inbox/InboxDefault.js +22 -0
  39. package/lib/example/src/pages/inbox/InboxStyled.js +220 -0
  40. package/lib/example/src/pages/preferences/PreferencesCustom.js +91 -0
  41. package/lib/example/src/pages/preferences/PreferencesDefault.js +17 -0
  42. package/lib/example/src/pages/preferences/PreferencesDetail.js +127 -0
  43. package/lib/example/src/pages/preferences/PreferencesStyled.js +110 -0
  44. package/lib/module/index.js +67 -90
  45. package/lib/module/index.js.map +1 -1
  46. package/lib/module/models/CourierInboxListener.js +1 -0
  47. package/lib/module/models/CourierInboxListener.js.map +1 -1
  48. package/lib/module/models/InboxAction.js +16 -1
  49. package/lib/module/models/InboxAction.js.map +1 -1
  50. package/lib/module/models/InboxMessage.js +61 -1
  51. package/lib/module/models/InboxMessage.js.map +1 -1
  52. package/lib/module/models/InboxMessageEvent.js +2 -0
  53. package/lib/module/models/InboxMessageEvent.js.map +1 -0
  54. package/lib/module/views/CourierInboxView.js +6 -4
  55. package/lib/module/views/CourierInboxView.js.map +1 -1
  56. package/lib/package.json +171 -0
  57. package/lib/src/Broadcaster.js +24 -0
  58. package/lib/src/Modules.js +26 -0
  59. package/lib/src/client/BrandClient.js +17 -0
  60. package/lib/src/client/ClientModule.js +14 -0
  61. package/lib/src/client/CourierClient.js +31 -0
  62. package/lib/src/client/InboxClient.js +99 -0
  63. package/lib/src/client/PreferenceClient.js +63 -0
  64. package/lib/src/client/TokenClient.js +27 -0
  65. package/lib/src/client/TrackingClient.js +17 -0
  66. package/lib/src/index.js +567 -0
  67. package/lib/src/models/Android_CourierSheet.js +1 -0
  68. package/lib/src/models/CourierAuthenticationListener.js +14 -0
  69. package/lib/src/models/CourierBrand.js +1 -0
  70. package/lib/src/models/CourierButton.js +1 -0
  71. package/lib/src/models/CourierDevice.js +1 -0
  72. package/lib/src/models/CourierFont.js +1 -0
  73. package/lib/src/models/CourierInboxListener.js +20 -0
  74. package/lib/src/models/CourierInboxMessages.js +1 -0
  75. package/lib/src/models/CourierInboxTheme.js +1 -0
  76. package/lib/src/models/CourierInfoViewStyle.js +1 -0
  77. package/lib/src/models/CourierPaging.js +1 -0
  78. package/lib/src/models/CourierPreferencesTheme.js +1 -0
  79. package/lib/src/models/CourierPushListener.js +14 -0
  80. package/lib/src/models/CourierPushProvider.js +8 -0
  81. package/lib/src/models/CourierTrackingEvent.js +8 -0
  82. package/lib/src/models/CourierUserPreferences.js +51 -0
  83. package/lib/src/models/InboxAction.js +1 -0
  84. package/lib/src/models/InboxMessage.js +1 -0
  85. package/lib/src/models/InboxMessageFeed.js +1 -0
  86. package/lib/src/models/InboxMessageSet.js +1 -0
  87. package/lib/src/models/iOS_CourierCell.js +1 -0
  88. package/lib/src/models/iOS_CourierSheet.js +1 -0
  89. package/lib/src/utils.js +27 -0
  90. package/lib/src/views/CourierInboxView.js +75 -0
  91. package/lib/src/views/CourierPreferencesView.js +33 -0
  92. package/lib/typescript/src/index.d.ts +16 -20
  93. package/lib/typescript/src/index.d.ts.map +1 -1
  94. package/lib/typescript/src/models/CourierInboxListener.d.ts +4 -7
  95. package/lib/typescript/src/models/CourierInboxListener.d.ts.map +1 -1
  96. package/lib/typescript/src/models/InboxAction.d.ts +8 -4
  97. package/lib/typescript/src/models/InboxAction.d.ts.map +1 -1
  98. package/lib/typescript/src/models/InboxMessage.d.ts +28 -14
  99. package/lib/typescript/src/models/InboxMessage.d.ts.map +1 -1
  100. package/lib/typescript/src/models/InboxMessageEvent.d.ts +2 -0
  101. package/lib/typescript/src/models/InboxMessageEvent.d.ts.map +1 -0
  102. package/lib/typescript/src/models/InboxMessageFeed.d.ts +1 -1
  103. package/lib/typescript/src/models/InboxMessageFeed.d.ts.map +1 -1
  104. package/package.json +3 -2
  105. package/src/index.tsx +61 -99
  106. package/src/models/CourierInboxListener.tsx +10 -13
  107. package/src/models/InboxAction.tsx +28 -4
  108. package/src/models/InboxMessage.tsx +102 -14
  109. package/src/models/InboxMessageEvent.tsx +1 -0
  110. package/src/models/InboxMessageFeed.tsx +1 -1
  111. package/src/views/CourierInboxView.tsx +4 -4
  112. package/ios/CourierReactNative.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  113. package/ios/CourierReactNative.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  114. package/ios/CourierReactNative.xcodeproj/project.xcworkspace/xcuserdata/mike.xcuserdatad/UserInterfaceState.xcuserstate +0 -0
  115. package/ios/CourierReactNative.xcodeproj/xcuserdata/mike.xcuserdatad/xcschemes/xcschememanagement.plist +0 -14
@@ -1,2 +1,24 @@
1
1
  "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.InboxAction = void 0;
7
+ class InboxAction {
8
+ constructor(content = null, href = null, data = null) {
9
+ this.content = content;
10
+ this.href = href;
11
+ this.data = data;
12
+ }
13
+ static fromJson(jsonString) {
14
+ try {
15
+ const parsed = JSON.parse(jsonString);
16
+ return new InboxAction(parsed.content, parsed.href, parsed.data);
17
+ } catch (error) {
18
+ console.log(`Error parsing action: ${error}`);
19
+ throw error;
20
+ }
21
+ }
22
+ }
23
+ exports.InboxAction = InboxAction;
2
24
  //# sourceMappingURL=InboxAction.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../src","sources":["models/InboxAction.tsx"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":["InboxAction","constructor","content","href","data","fromJson","jsonString","parsed","JSON","parse","error","console","log","exports"],"sourceRoot":"../../../src","sources":["models/InboxAction.tsx"],"mappings":";;;;;;AAAO,MAAMA,WAAW,CAAC;EAKvBC,WAAWA,CACTC,OAAsB,GAAG,IAAI,EAC7BC,IAAmB,GAAG,IAAI,EAC1BC,IAAmC,GAAG,IAAI,EAC1C;IACA,IAAI,CAACF,OAAO,GAAGA,OAAO;IACtB,IAAI,CAACC,IAAI,GAAGA,IAAI;IAChB,IAAI,CAACC,IAAI,GAAGA,IAAI;EAClB;EAEA,OAAOC,QAAQA,CAACC,UAAkB,EAAe;IAC/C,IAAI;MACF,MAAMC,MAAM,GAAGC,IAAI,CAACC,KAAK,CAACH,UAAU,CAAC;MACrC,OAAO,IAAIN,WAAW,CACpBO,MAAM,CAACL,OAAO,EACdK,MAAM,CAACJ,IAAI,EACXI,MAAM,CAACH,IACT,CAAC;IACH,CAAC,CAAC,OAAOM,KAAK,EAAE;MACdC,OAAO,CAACC,GAAG,CAAC,yBAAyBF,KAAK,EAAE,CAAC;MAC7C,MAAMA,KAAK;IACb;EACF;AACF;AAACG,OAAA,CAAAb,WAAA,GAAAA,WAAA","ignoreList":[]}
@@ -3,4 +3,68 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
+ exports.InboxMessage = void 0;
7
+ var _ = _interopRequireDefault(require(".."));
8
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
9
+ class InboxMessage {
10
+ constructor(messageId, title = null, body = null, preview = null, created = null, actions = null, data = null, read = null, opened = null, archived = null, subtitle = null, time = '', trackingIds = null) {
11
+ this.messageId = messageId;
12
+ this.title = title;
13
+ this.body = body;
14
+ this.preview = preview;
15
+ this.created = created;
16
+ this.actions = actions;
17
+ this.data = data;
18
+ this.read = read;
19
+ this.opened = opened;
20
+ this.archived = archived;
21
+ this.subtitle = subtitle;
22
+ this.time = time;
23
+ this.trackingIds = trackingIds;
24
+ }
25
+ get isRead() {
26
+ return this.read !== null;
27
+ }
28
+ get isOpened() {
29
+ return this.opened !== null;
30
+ }
31
+ get isArchived() {
32
+ return this.archived !== null;
33
+ }
34
+ static fromJson(jsonString) {
35
+ try {
36
+ const parsed = JSON.parse(jsonString);
37
+ return new InboxMessage(parsed.messageId, parsed.title, parsed.body, parsed.preview, parsed.created, parsed.actions, parsed.data, parsed.read, parsed.opened, parsed.archived, parsed.subtitle, parsed.time, parsed.trackingIds);
38
+ } catch (error) {
39
+ console.log(`Error parsing message: ${error}`);
40
+ throw error;
41
+ }
42
+ }
43
+ async markAsRead() {
44
+ await _.default.shared.readMessage({
45
+ messageId: this.messageId
46
+ });
47
+ }
48
+ async markAsUnread() {
49
+ await _.default.shared.unreadMessage({
50
+ messageId: this.messageId
51
+ });
52
+ }
53
+ async markAsArchived() {
54
+ await _.default.shared.archiveMessage({
55
+ messageId: this.messageId
56
+ });
57
+ }
58
+ async markAsOpened() {
59
+ await _.default.shared.openMessage({
60
+ messageId: this.messageId
61
+ });
62
+ }
63
+ async markAsClicked() {
64
+ await _.default.shared.clickMessage({
65
+ messageId: this.messageId
66
+ });
67
+ }
68
+ }
69
+ exports.InboxMessage = InboxMessage;
6
70
  //# sourceMappingURL=InboxMessage.js.map
@@ -1 +1 @@
1
- {"version":3,"names":[],"sourceRoot":"../../../src","sources":["models/InboxMessage.tsx"],"mappings":"","ignoreList":[]}
1
+ {"version":3,"names":["_","_interopRequireDefault","require","obj","__esModule","default","InboxMessage","constructor","messageId","title","body","preview","created","actions","data","read","opened","archived","subtitle","time","trackingIds","isRead","isOpened","isArchived","fromJson","jsonString","parsed","JSON","parse","error","console","log","markAsRead","Courier","shared","readMessage","markAsUnread","unreadMessage","markAsArchived","archiveMessage","markAsOpened","openMessage","markAsClicked","clickMessage","exports"],"sourceRoot":"../../../src","sources":["models/InboxMessage.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ //# sourceMappingURL=InboxMessageEvent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":[],"sourceRoot":"../../../src","sources":["models/InboxMessageEvent.tsx"],"mappings":"","ignoreList":[]}
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.CourierInboxView = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _reactNative = require("react-native");
9
+ var _InboxAction = require("../models/InboxAction");
10
+ var _InboxMessage = require("../models/InboxMessage");
9
11
  var _Modules = require("../Modules");
10
12
  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
13
  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; }
@@ -35,7 +37,7 @@ const CourierInboxView = props => {
35
37
  // Parse the native event data
36
38
  if (props.onClickInboxMessageAtIndex) {
37
39
  const index = event["index"];
38
- const message = JSON.parse(event["message"]);
40
+ const message = _InboxMessage.InboxMessage.fromJson(event["message"]);
39
41
  props.onClickInboxMessageAtIndex(message, index);
40
42
  }
41
43
  };
@@ -50,7 +52,7 @@ const CourierInboxView = props => {
50
52
  // Parse the native event data
51
53
  if (props.onLongPressInboxMessageAtIndex) {
52
54
  const index = event["index"];
53
- const message = JSON.parse(event["message"]);
55
+ const message = _InboxMessage.InboxMessage.fromJson(event["message"]);
54
56
  props.onLongPressInboxMessageAtIndex(message, index);
55
57
  }
56
58
  };
@@ -65,8 +67,8 @@ const CourierInboxView = props => {
65
67
  // Parse the native event data
66
68
  if (props.onClickInboxActionForMessageAtIndex) {
67
69
  const index = event["index"];
68
- const action = JSON.parse(event["action"]);
69
- const message = JSON.parse(event["message"]);
70
+ const action = _InboxAction.InboxAction.fromJson(event["action"]);
71
+ const message = _InboxMessage.InboxMessage.fromJson(event["message"]);
70
72
  props.onClickInboxActionForMessageAtIndex(action, message, index);
71
73
  }
72
74
  };
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_Modules","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","CourierInbox","Modules","getNativeComponent","CourierInboxView","props","onClickInboxMessageAtIndexListener","undefined","onLongPressInboxMessageAtIndexListener","onClickInboxActionForMessageAtIndexListener","onScrollInboxListener","useEffect","_onClickInboxMessageA","_onLongPressInboxMess","_onClickInboxActionFo","_onScrollInboxListene","remove","_onClickInboxMessageA2","Platform","OS","onClickInboxMessageAtIndex","DeviceEventEmitter","addListener","event","index","message","JSON","parse","_onLongPressInboxMess2","onLongPressInboxMessageAtIndex","_onClickInboxActionFo2","onClickInboxActionForMessageAtIndex","action","_onScrollInboxListene2","onScrollInbox","contentOffset","createElement","canSwipePages","theme","light","dark","nativeEvent","style","exports"],"sourceRoot":"../../../src","sources":["views/CourierInboxView.tsx"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_reactNative","_InboxAction","_InboxMessage","_Modules","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","CourierInbox","Modules","getNativeComponent","CourierInboxView","props","onClickInboxMessageAtIndexListener","undefined","onLongPressInboxMessageAtIndexListener","onClickInboxActionForMessageAtIndexListener","onScrollInboxListener","useEffect","_onClickInboxMessageA","_onLongPressInboxMess","_onClickInboxActionFo","_onScrollInboxListene","remove","_onClickInboxMessageA2","Platform","OS","onClickInboxMessageAtIndex","DeviceEventEmitter","addListener","event","index","message","InboxMessage","fromJson","_onLongPressInboxMess2","onLongPressInboxMessageAtIndex","_onClickInboxActionFo2","onClickInboxActionForMessageAtIndex","action","InboxAction","_onScrollInboxListene2","onScrollInbox","contentOffset","createElement","canSwipePages","theme","light","dark","nativeEvent","style","exports"],"sourceRoot":"../../../src","sources":["views/CourierInboxView.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,11 @@
1
+ import { NavigationContainer } from '@react-navigation/native';
2
+ import React from 'react';
3
+ import Home from './Home';
4
+ import Toast from 'react-native-toast-message';
5
+ import { Poke } from './Poke';
6
+ export default function App() {
7
+ return (React.createElement(Poke, { initialEnabled: false },
8
+ React.createElement(NavigationContainer, null,
9
+ React.createElement(Home, null),
10
+ React.createElement(Toast, null))));
11
+ }
@@ -0,0 +1,11 @@
1
+ import EventEmitter from 'eventemitter3';
2
+ const eventEmitter = new EventEmitter();
3
+ export function emitEvent(eventName, eventData) {
4
+ eventEmitter.emit(eventName, eventData);
5
+ }
6
+ export function addListener(eventName, listener) {
7
+ eventEmitter.on(eventName, listener);
8
+ }
9
+ export function removeListener(eventName, listener) {
10
+ eventEmitter.off(eventName, listener);
11
+ }
@@ -0,0 +1,6 @@
1
+ export default class Env {
2
+ static brandId = 'MX9K96KBP84ZF8JAVKN5F45Q1EVE';
3
+ static authKey = 'pk_prod_NGYE57FM5M4P3MKPTVQDQD9KPPN2';
4
+ static clientKey = 'YzM1YmFiYjUtZjA2My00NGU3LWEyODYtODU3ODUyNDNmYTcw';
5
+ static topicId = '35K24W99WCME21MRG7X2BPDF6CK7';
6
+ }
@@ -0,0 +1,67 @@
1
+ import React, { useEffect, useState } from 'react';
2
+ import { createBottomTabNavigator } from '@react-navigation/bottom-tabs';
3
+ import { Alert, Button } from 'react-native';
4
+ import MaterialCommunityIcons from 'react-native-vector-icons/MaterialCommunityIcons';
5
+ import Auth from './pages/Auth';
6
+ import Push from './pages/Push';
7
+ import Inbox from './pages/Inbox';
8
+ import Courier from '@trycourier/courier-react-native';
9
+ import PreferencesStack from './pages/PreferencesStack';
10
+ import Tests from './pages/Tests';
11
+ const Tab = createBottomTabNavigator();
12
+ const Home = () => {
13
+ const [unreadCount, setUnreadCount] = useState(0);
14
+ useEffect(() => {
15
+ const setupInbox = async () => {
16
+ // Setup Push
17
+ Courier.setIOSForegroundPresentationOptions({ options: ['sound', 'badge', 'list', 'banner'] });
18
+ const pushListener = Courier.shared.addPushNotificationListener({
19
+ onPushNotificationClicked(push) {
20
+ console.log(push);
21
+ Alert.alert('👆 Push Notification Clicked', JSON.stringify(push));
22
+ },
23
+ onPushNotificationDelivered(push) {
24
+ console.log(push);
25
+ Alert.alert('📬 Push Notification Delivered', JSON.stringify(push));
26
+ }
27
+ });
28
+ // Setup Inbox
29
+ await Courier.shared.setInboxPaginationLimit(100);
30
+ const inboxListener = await Courier.shared.addInboxListener({
31
+ onUnreadCountChanged(unreadCount) {
32
+ setUnreadCount(unreadCount);
33
+ },
34
+ });
35
+ return { pushListener, inboxListener };
36
+ };
37
+ const listeners = setupInbox();
38
+ return () => {
39
+ listeners.then(({ pushListener, inboxListener }) => {
40
+ pushListener.remove();
41
+ inboxListener.remove();
42
+ });
43
+ };
44
+ }, []);
45
+ const inboxOptions = () => {
46
+ const badgeCount = () => {
47
+ return unreadCount > 0 ? unreadCount : undefined;
48
+ };
49
+ return {
50
+ headerRight: () => (React.createElement(Button, { onPress: () => Courier.shared.readAllInboxMessages(), title: "Read All" })),
51
+ tabBarBadge: badgeCount(),
52
+ tabBarIcon: ({ color, size }) => (React.createElement(MaterialCommunityIcons, { name: 'bell', color: color, size: size }))
53
+ };
54
+ };
55
+ const icon = (icon) => {
56
+ return {
57
+ tabBarIcon: ({ color, size }) => (React.createElement(MaterialCommunityIcons, { name: icon, color: color, size: size }))
58
+ };
59
+ };
60
+ return (React.createElement(Tab.Navigator, null,
61
+ React.createElement(Tab.Screen, { name: "Auth", component: Auth, options: icon('account-circle') }),
62
+ React.createElement(Tab.Screen, { name: "Push", component: Push, options: icon('message-badge') }),
63
+ React.createElement(Tab.Screen, { name: "Inbox", component: Inbox, options: inboxOptions() }),
64
+ React.createElement(Tab.Screen, { name: "Preferences", component: PreferencesStack, options: { ...icon('wrench'), headerShown: false } }),
65
+ React.createElement(Tab.Screen, { name: "Tests", component: Tests, options: icon('test-tube') })));
66
+ };
67
+ export default Home;
@@ -0,0 +1,75 @@
1
+ import React, { useState, useEffect, useMemo, createContext, useContext } from 'react';
2
+ import { View, StyleSheet, Animated, Easing } from 'react-native';
3
+ const PokeContext = createContext(undefined);
4
+ export const usePoke = () => {
5
+ const context = useContext(PokeContext);
6
+ if (!context) {
7
+ throw new Error('usePoke must be used within a PokeProvider');
8
+ }
9
+ return context;
10
+ };
11
+ export const Poke = ({ children, initialEnabled = true, initialIndicatorStyle, initialTouchTimeout = 150, }) => {
12
+ const [enabled, setEnabled] = useState(initialEnabled);
13
+ const [indicatorStyle, setIndicatorStyle] = useState(initialIndicatorStyle || {});
14
+ const [touchTimeout, setTouchTimeout] = useState(initialTouchTimeout);
15
+ const contextValue = useMemo(() => ({
16
+ setEnabled,
17
+ setIndicatorStyle,
18
+ setTouchTimeout,
19
+ }), []);
20
+ return (React.createElement(PokeContext.Provider, { value: contextValue },
21
+ React.createElement(TouchIndicator, { enabled: enabled, indicatorStyle: indicatorStyle, touchTimeout: touchTimeout }, children)));
22
+ };
23
+ const TouchIndicator = ({ children, indicatorStyle, enabled, touchTimeout }) => {
24
+ const [latestTouch, setLatestTouch] = useState(null);
25
+ const indicatorSize = indicatorStyle?.size || 50;
26
+ const indicatorColor = indicatorStyle?.color || 'rgba(0, 122, 255, 0.4)'; // Default blue color
27
+ useEffect(() => {
28
+ if (latestTouch) {
29
+ const timer = setTimeout(() => {
30
+ setLatestTouch(null);
31
+ }, touchTimeout);
32
+ return () => clearTimeout(timer);
33
+ }
34
+ return () => { }; // Add this line
35
+ }, [latestTouch, touchTimeout]);
36
+ const handleTouch = (event) => {
37
+ if (!enabled)
38
+ return;
39
+ const touch = event.nativeEvent.touches[0]; // Get only the latest touch
40
+ if (touch) {
41
+ const newTouch = {
42
+ id: `${touch.identifier}-${Date.now()}`,
43
+ x: touch.pageX,
44
+ y: touch.pageY,
45
+ timestamp: Date.now(),
46
+ animation: new Animated.Value(1),
47
+ };
48
+ Animated.timing(newTouch.animation, {
49
+ toValue: 0,
50
+ duration: touchTimeout,
51
+ useNativeDriver: true,
52
+ easing: Easing.out(Easing.cubic),
53
+ }).start();
54
+ setLatestTouch(newTouch);
55
+ }
56
+ };
57
+ const touchIndicatorStyle = useMemo(() => ({
58
+ position: 'absolute',
59
+ width: indicatorSize,
60
+ height: indicatorSize,
61
+ borderRadius: indicatorSize / 2,
62
+ backgroundColor: indicatorColor,
63
+ zIndex: 9999,
64
+ }), [indicatorSize, indicatorColor]);
65
+ return (React.createElement(View, { style: StyleSheet.absoluteFill, onTouchStart: handleTouch, onTouchMove: handleTouch, onTouchEnd: handleTouch },
66
+ children,
67
+ enabled && latestTouch && (React.createElement(Animated.View, { key: latestTouch.id, style: [
68
+ touchIndicatorStyle,
69
+ {
70
+ left: latestTouch.x - indicatorSize / 2,
71
+ top: latestTouch.y - indicatorSize / 2,
72
+ opacity: latestTouch.animation,
73
+ },
74
+ ] }))));
75
+ };
@@ -0,0 +1,36 @@
1
+ import React from "react";
2
+ import { StyleSheet, Text, TouchableOpacity, View } from "react-native";
3
+ export const Tab = ({ title, isSelected, onPress }) => (React.createElement(TouchableOpacity, { onPress: onPress, style: [styles.tabButton, isSelected && styles.selectedTabButton] },
4
+ React.createElement(Text, { style: [styles.tabText, isSelected && styles.selectedTabText] }, title)));
5
+ export const TabControl = ({ tabs, selectedTab, setSelectedTab }) => (React.createElement(View, { style: styles.segmentedControl }, tabs.map((tab) => (React.createElement(Tab, { key: tab.key, title: tab.title, isSelected: selectedTab === tab.key, onPress: () => setSelectedTab(tab.key) })))));
6
+ const styles = StyleSheet.create({
7
+ container: {
8
+ flex: 1,
9
+ },
10
+ segmentedControl: {
11
+ flexDirection: 'row',
12
+ justifyContent: 'space-around',
13
+ width: '100%',
14
+ },
15
+ content: {
16
+ flex: 1,
17
+ width: '100%',
18
+ height: '100%',
19
+ },
20
+ tabButton: {
21
+ padding: 16,
22
+ flex: 1,
23
+ alignItems: 'center',
24
+ borderBottomWidth: 2,
25
+ borderBottomColor: 'transparent',
26
+ },
27
+ selectedTabButton: {
28
+ borderBottomColor: 'blue',
29
+ },
30
+ tabText: {
31
+ color: 'black',
32
+ },
33
+ selectedTabText: {
34
+ fontWeight: 'bold',
35
+ },
36
+ });
@@ -0,0 +1,71 @@
1
+ export class ExampleServer {
2
+ static async generateJwt(props) {
3
+ return new Promise((resolve, reject) => {
4
+ const url = 'https://api.courier.com/auth/issue-token';
5
+ const request = {
6
+ method: 'POST',
7
+ headers: {
8
+ 'Content-Type': 'application/json',
9
+ 'Authorization': `Bearer ${props.authKey}`
10
+ },
11
+ body: JSON.stringify({
12
+ scope: `user_id:${props.userId} write:user-tokens inbox:read:messages inbox:write:events read:preferences write:preferences read:brands`,
13
+ expires_in: '2 days'
14
+ })
15
+ };
16
+ fetch(url, request)
17
+ .then(response => response.json())
18
+ .then((data) => {
19
+ resolve(data.token);
20
+ })
21
+ .catch(error => {
22
+ reject(error);
23
+ });
24
+ });
25
+ }
26
+ static async sendTest(props) {
27
+ const url = 'https://api.courier.com/send';
28
+ const headers = {
29
+ 'Content-Type': 'application/json',
30
+ 'Authorization': `Bearer ${props.authKey}`,
31
+ };
32
+ const body = JSON.stringify({
33
+ 'message': {
34
+ 'to': {
35
+ 'user_id': props.userId
36
+ },
37
+ 'content': {
38
+ 'title': props.title ?? 'Test',
39
+ 'body': props.body ?? 'Body',
40
+ },
41
+ 'routing': {
42
+ 'method': 'all',
43
+ 'channels': [props.channel],
44
+ },
45
+ },
46
+ });
47
+ const response = await fetch(url, {
48
+ method: 'POST',
49
+ headers: headers,
50
+ body: body,
51
+ });
52
+ if (response.status === 202) {
53
+ const json = await response.json();
54
+ return json['requestId'] ?? 'Error';
55
+ }
56
+ else {
57
+ throw new Error('Failed to send test message');
58
+ }
59
+ }
60
+ }
61
+ export class Utils {
62
+ static generateUUID() {
63
+ let uuid = '';
64
+ const characters = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
65
+ const charactersLength = characters.length;
66
+ for (let i = 0; i < 16; i++) {
67
+ uuid += characters.charAt(Math.floor(Math.random() * charactersLength));
68
+ }
69
+ return uuid;
70
+ }
71
+ }