@trycourier/react-provider 6.0.1-internal.dfd8fb3.0 → 6.1.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.
Files changed (39) hide show
  1. package/dist/hooks/use-courier-actions.js +2 -2
  2. package/dist/hooks/use-is-online.js +39 -0
  3. package/dist/hooks/use-listen-for-transport.js +37 -0
  4. package/dist/index.js +14 -32
  5. package/dist/types.js +1 -21
  6. package/package.json +7 -7
  7. package/typings/hooks/use-courier-actions.d.ts.map +1 -1
  8. package/typings/hooks/use-is-online.d.ts +3 -0
  9. package/typings/hooks/use-is-online.d.ts.map +1 -0
  10. package/typings/hooks/use-listen-for-transport.d.ts +6 -0
  11. package/typings/hooks/use-listen-for-transport.d.ts.map +1 -0
  12. package/typings/index.d.ts +2 -5
  13. package/typings/index.d.ts.map +1 -1
  14. package/typings/types.d.ts +12 -95
  15. package/typings/types.d.ts.map +1 -1
  16. package/dist/hooks/use-transport.js +0 -82
  17. package/dist/lib/index.js +0 -19
  18. package/dist/transports/base.js +0 -94
  19. package/dist/transports/courier/index.js +0 -147
  20. package/dist/transports/courier/types.js +0 -1
  21. package/dist/transports/index.js +0 -31
  22. package/dist/transports/types.js +0 -0
  23. package/dist/ws.js +0 -304
  24. package/typings/hooks/use-transport.d.ts +0 -13
  25. package/typings/hooks/use-transport.d.ts.map +0 -1
  26. package/typings/lib/index.d.ts +0 -2
  27. package/typings/lib/index.d.ts.map +0 -1
  28. package/typings/transports/base.d.ts +0 -27
  29. package/typings/transports/base.d.ts.map +0 -1
  30. package/typings/transports/courier/index.d.ts +0 -26
  31. package/typings/transports/courier/index.d.ts.map +0 -1
  32. package/typings/transports/courier/types.d.ts +0 -10
  33. package/typings/transports/courier/types.d.ts.map +0 -1
  34. package/typings/transports/index.d.ts +0 -3
  35. package/typings/transports/index.d.ts.map +0 -1
  36. package/typings/transports/types.d.ts +0 -50
  37. package/typings/transports/types.d.ts.map +0 -1
  38. package/typings/ws.d.ts +0 -46
  39. package/typings/ws.d.ts.map +0 -1
@@ -15,7 +15,7 @@ var _react = require("react");
15
15
 
16
16
  var _clientGraphql = require("@trycourier/client-graphql");
17
17
 
18
- var _ = require("..");
18
+ var _transport = require("@trycourier/transport");
19
19
 
20
20
  var _courierJs = _interopRequireDefault(require("@trycourier/courier-js"));
21
21
 
@@ -202,7 +202,7 @@ var useCourierActions = function useCourierActions(state, dispatch) {
202
202
  while (1) {
203
203
  switch (_context6.prev = _context6.next) {
204
204
  case 0:
205
- if (state.transport instanceof _.CourierTransport) {
205
+ if (state.transport instanceof _transport.CourierTransport) {
206
206
  state.transport.renewSession(token);
207
207
  }
208
208
 
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.useIsOnline = void 0;
9
+
10
+ var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
11
+
12
+ var _react = require("react");
13
+
14
+ var useIsOnline = function useIsOnline() {
15
+ if (typeof window === "undefined" || typeof navigator === "undefined") {
16
+ return;
17
+ }
18
+
19
+ var _useState = (0, _react.useState)(window.navigator.onLine),
20
+ _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
21
+ isOnline = _useState2[0],
22
+ setOnlineStatus = _useState2[1];
23
+
24
+ (0, _react.useEffect)(function () {
25
+ var toggleOnlineStatus = function toggleOnlineStatus() {
26
+ return setOnlineStatus(window.navigator.onLine);
27
+ };
28
+
29
+ window.addEventListener("online", toggleOnlineStatus);
30
+ window.addEventListener("offline", toggleOnlineStatus);
31
+ return function () {
32
+ window.removeEventListener("online", toggleOnlineStatus);
33
+ window.removeEventListener("offline", toggleOnlineStatus);
34
+ };
35
+ }, [isOnline]);
36
+ return isOnline;
37
+ };
38
+
39
+ exports.useIsOnline = useIsOnline;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useListenForTransportEvent = void 0;
7
+
8
+ var _react = require("react");
9
+
10
+ var useListenForTransportEvent = function useListenForTransportEvent(_ref) {
11
+ var transport = _ref.transport,
12
+ createTrackEvent = _ref.createTrackEvent;
13
+ (0, _react.useEffect)(function () {
14
+ if (!transport) {
15
+ return;
16
+ }
17
+
18
+ transport.listen({
19
+ id: "websocket-delivery-listener",
20
+ type: "message",
21
+ listener: function listener(courierEvent) {
22
+ var _courierData$tracking;
23
+
24
+ var courierMessage = courierEvent === null || courierEvent === void 0 ? void 0 : courierEvent.data;
25
+ var courierData = courierMessage === null || courierMessage === void 0 ? void 0 : courierMessage.data;
26
+
27
+ if (courierData !== null && courierData !== void 0 && (_courierData$tracking = courierData.trackingIds) !== null && _courierData$tracking !== void 0 && _courierData$tracking.deliverTrackingId) {
28
+ var _courierData$tracking2;
29
+
30
+ createTrackEvent(courierData === null || courierData === void 0 ? void 0 : (_courierData$tracking2 = courierData.trackingIds) === null || _courierData$tracking2 === void 0 ? void 0 : _courierData$tracking2.deliverTrackingId);
31
+ }
32
+ }
33
+ });
34
+ }, [createTrackEvent, transport]);
35
+ };
36
+
37
+ exports.useListenForTransportEvent = useListenForTransportEvent;
package/dist/index.js CHANGED
@@ -25,6 +25,8 @@ var _react = _interopRequireWildcard(require("react"));
25
25
 
26
26
  var _createReducer = _interopRequireDefault(require("react-use/lib/factory/createReducer"));
27
27
 
28
+ var _reactHooks = require("@trycourier/react-hooks");
29
+
28
30
  var _reducer = _interopRequireWildcard(require("./reducer"));
29
31
 
30
32
  var _middleware = _interopRequireWildcard(require("./middleware"));
@@ -33,8 +35,6 @@ var _useCourierActions = _interopRequireDefault(require("./hooks/use-courier-act
33
35
 
34
36
  var _usePageVisible = require("./hooks/use-page-visible");
35
37
 
36
- var _useTransport = _interopRequireDefault(require("./hooks/use-transport"));
37
-
38
38
  var _useClientSourceId = _interopRequireDefault(require("./hooks/use-client-source-id"));
39
39
 
40
40
  var _deepExtend = _interopRequireDefault(require("deep-extend"));
@@ -43,19 +43,9 @@ var _theme2 = require("./theme");
43
43
 
44
44
  var _styledComponents = require("styled-components");
45
45
 
46
- var _transports = require("./transports");
46
+ var _useIsOnline = require("./hooks/use-is-online");
47
47
 
48
- Object.keys(_transports).forEach(function (key) {
49
- if (key === "default" || key === "__esModule") return;
50
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
51
- if (key in exports && exports[key] === _transports[key]) return;
52
- Object.defineProperty(exports, key, {
53
- enumerable: true,
54
- get: function get() {
55
- return _transports[key];
56
- }
57
- });
58
- });
48
+ var _useListenForTransport = require("./hooks/use-listen-for-transport");
59
49
 
60
50
  var _hooks = require("./hooks");
61
51
 
@@ -71,20 +61,6 @@ Object.keys(_hooks).forEach(function (key) {
71
61
  });
72
62
  });
73
63
 
74
- var _lib = require("./lib");
75
-
76
- Object.keys(_lib).forEach(function (key) {
77
- if (key === "default" || key === "__esModule") return;
78
- if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
79
- if (key in exports && exports[key] === _lib[key]) return;
80
- Object.defineProperty(exports, key, {
81
- enumerable: true,
82
- get: function get() {
83
- return _lib[key];
84
- }
85
- });
86
- });
87
-
88
64
  function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }
89
65
 
90
66
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }
@@ -161,11 +137,13 @@ var CourierProviderInner = function CourierProviderInner(_ref2) {
161
137
  return applyMiddleware(_middleware["default"]);
162
138
  }, [applyMiddleware]);
163
139
  var useReducer = (0, _react.useCallback)(_createReducer["default"].apply(void 0, (0, _toConsumableArray2["default"])(middleware)), [middleware]);
164
- var transport = typeof window === "undefined" ? undefined : (0, _useTransport["default"])({
165
- tenantId: tenantId,
140
+ var isOnline = (0, _useIsOnline.useIsOnline)();
141
+ var transport = typeof window === "undefined" ? undefined : (0, _reactHooks.useTransport)({
166
142
  authorization: authorization,
167
- clientSourceId: clientSourceId,
168
143
  clientKey: clientKey,
144
+ clientSourceId: clientSourceId,
145
+ isOnline: isOnline,
146
+ tenantId: tenantId,
169
147
  transport: _transport,
170
148
  userSignature: userSignature,
171
149
  wsOptions: wsOptions
@@ -257,7 +235,7 @@ var CourierProviderInner = function CourierProviderInner(_ref2) {
257
235
  try {
258
236
  parsedLocalStorageState = JSON.parse(localStorageState);
259
237
  } catch (ex) {
260
- console.log("error", ex);
238
+ console.error(ex);
261
239
  }
262
240
  }
263
241
  }
@@ -284,6 +262,10 @@ var CourierProviderInner = function CourierProviderInner(_ref2) {
284
262
  brand: state.brand
285
263
  }));
286
264
  }, [state.brand, clientKey, userId, state.localStorage]);
265
+ (0, _useListenForTransport.useListenForTransportEvent)({
266
+ transport: transport,
267
+ createTrackEvent: actions.createTrackEvent
268
+ });
287
269
  return /*#__PURE__*/_react["default"].createElement(CourierContext.Provider, {
288
270
  value: _objectSpread(_objectSpread(_objectSpread({}, state), actions), {}, {
289
271
  clientSourceId: clientSourceId
package/dist/types.js CHANGED
@@ -1,21 +1 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "IInboxMessagePreview", {
7
- enumerable: true,
8
- get: function get() {
9
- return _clientGraphql.IInboxMessagePreview;
10
- }
11
- });
12
- Object.defineProperty(exports, "Interceptor", {
13
- enumerable: true,
14
- get: function get() {
15
- return _types.Interceptor;
16
- }
17
- });
18
-
19
- var _clientGraphql = require("@trycourier/client-graphql");
20
-
21
- var _types = require("./transports/types");
1
+ "use strict";
package/package.json CHANGED
@@ -1,27 +1,27 @@
1
1
  {
2
2
  "name": "@trycourier/react-provider",
3
- "version": "6.0.1-internal.dfd8fb3.0+dfd8fb3",
3
+ "version": "6.1.0",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "typings/index.d.ts",
7
7
  "scripts": {
8
- "test": "jest -c jest.config.js --runInBand",
9
8
  "babel": "babel src -d dist --extensions \".ts,.tsx\" --ignore \"src/**/__tests__/**\" --ignore \"src/**/__mocks__/**\"",
10
9
  "build:watch": "yarn babel --watch",
11
10
  "build": "rimraf dist && yarn babel",
12
11
  "clean": "rimraf dist && rimraf typings",
13
- "type-check": "tsc --noEmit",
14
12
  "readme": "concat-md --toc --decrease-title-levels --dir-name-as-title docs > README.md",
15
- "types": "tsc --emitDeclarationOnly"
13
+ "type-check": "tsc --noEmit",
14
+ "types": "rimraf typings && tsc --emitDeclarationOnly"
16
15
  },
17
16
  "license": "ISC",
18
17
  "dependencies": {
19
- "@trycourier/client-graphql": "^6.0.1-internal.dfd8fb3.0+dfd8fb3",
18
+ "@trycourier/client-graphql": "^6.1.0",
19
+ "@trycourier/core": "^6.1.0",
20
20
  "@trycourier/courier-js": "^1.4.2",
21
+ "@trycourier/transport": "^6.1.0",
21
22
  "buffer": "^6.0.3",
22
23
  "jwt-decode": "^3.1.2",
23
24
  "react-use": "^17.2.1",
24
- "reconnecting-websocket": "^4.4.0",
25
25
  "rimraf": "^3.0.2",
26
26
  "urql": "^2.0.1",
27
27
  "uuid": "^9.0.0"
@@ -34,5 +34,5 @@
34
34
  "dist/",
35
35
  "typings/"
36
36
  ],
37
- "gitHead": "dfd8fb39b79e886b207a2a1f485eb1cbb4f1a066"
37
+ "gitHead": "4dcefdb0870a9915baf86eda3d729aaff242bfa5"
38
38
  }
@@ -1 +1 @@
1
- {"version":3,"file":"use-courier-actions.d.ts","sourceRoot":"","sources":["../../src/hooks/use-courier-actions.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAE1C,QAAA,MAAM,iBAAiB,iCAAsB,eAmH5C,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
1
+ {"version":3,"file":"use-courier-actions.d.ts","sourceRoot":"","sources":["../../src/hooks/use-courier-actions.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,QAAA,MAAM,iBAAiB,iCAAsB,eAmH5C,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -0,0 +1,3 @@
1
+ declare const useIsOnline: () => boolean | undefined;
2
+ export { useIsOnline };
3
+ //# sourceMappingURL=use-is-online.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-is-online.d.ts","sourceRoot":"","sources":["../../src/hooks/use-is-online.ts"],"names":[],"mappings":"AAEA,QAAA,MAAM,WAAW,QAAO,OAAO,GAAG,SAoBjC,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { ICourierContext } from "..";
2
+ export declare const useListenForTransportEvent: ({ transport, createTrackEvent, }: {
3
+ transport: ICourierContext["transport"];
4
+ createTrackEvent: (trackingId: string) => void;
5
+ }) => void;
6
+ //# sourceMappingURL=use-listen-for-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-listen-for-transport.d.ts","sourceRoot":"","sources":["../../src/hooks/use-listen-for-transport.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AAGrC,eAAO,MAAM,0BAA0B;eAI1B,eAAe,CAAC,WAAW,CAAC;mCACR,MAAM,KAAK,IAAI;UAoB/C,CAAC"}
@@ -1,13 +1,10 @@
1
1
  import React, { PropsWithChildren } from "react";
2
- import { Brand, DigestSchedule, EventType, ICourierContext, ICourierProviderProps, IPreferenceTemplate, OnEvent, PinDetails, PreferenceStatus, ProviderTheme, RepeatOn, WSOptions } from "./types";
3
- import { IActionElemental, ICourierEventMessage, IInboxMessagePreview, ITextElemental, Interceptor } from "./transports/types";
2
+ import { ICourierContext, ICourierProviderProps, OnEvent, ProviderTheme } from "./types";
4
3
  import { Middleware } from "./middleware";
5
- export * from "./transports";
6
4
  export * from "./hooks";
7
- export * from "./lib";
8
5
  export declare const registerReducer: (scope: any, reducer: any) => void;
9
6
  export declare const registerMiddleware: (id: string, middleware: Middleware) => void;
10
- export type { Brand, DigestSchedule, EventType, IActionElemental, ICourierContext, ICourierEventMessage, IInboxMessagePreview, Interceptor, IPreferenceTemplate, ITextElemental, Middleware, OnEvent, PinDetails, PreferenceStatus, ProviderTheme, RepeatOn, WSOptions, };
7
+ export type { Middleware, OnEvent, ProviderTheme, ICourierContext };
11
8
  export declare const CourierContext: React.Context<ICourierContext | undefined>;
12
9
  export declare const CourierProvider: React.FunctionComponent<PropsWithChildren<ICourierProviderProps>>;
13
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,EAIZ,iBAAiB,EAClB,MAAM,OAAO,CAAC;AAGf,OAAO,EACL,KAAK,EACL,cAAc,EACd,SAAS,EACT,eAAe,EACf,qBAAqB,EACrB,mBAAmB,EACnB,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,QAAQ,EAER,SAAS,EACV,MAAM,SAAS,CAAC;AAEjB,OAAO,EACL,gBAAgB,EAChB,oBAAoB,EACpB,oBAAoB,EACpB,cAAc,EACd,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAE5B,OAA0B,EACxB,UAAU,EAEX,MAAM,cAAc,CAAC;AAStB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,OAAO,CAAC;AAEtB,eAAO,MAAM,eAAe,oCAAmB,CAAC;AAChD,eAAO,MAAM,kBAAkB,8CAAsB,CAAC;AAEtD,YAAY,EACV,KAAK,EACL,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,cAAc,EACd,UAAU,EACV,OAAO,EACP,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,QAAQ,EACR,SAAS,GACV,CAAC;AAkBF,eAAO,MAAM,cAAc,4CACkC,CAAC;AA+N9D,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,iBAAiB,CACnD,iBAAiB,CAAC,qBAAqB,CAAC,CAQzC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,EAIZ,iBAAiB,EAClB,MAAM,OAAO,CAAC;AAGf,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,OAAO,EACP,aAAa,EAEd,MAAM,SAAS,CAAC;AAMjB,OAA0B,EACxB,UAAU,EAEX,MAAM,cAAc,CAAC;AAUtB,cAAc,SAAS,CAAC;AAExB,eAAO,MAAM,eAAe,oCAAmB,CAAC;AAChD,eAAO,MAAM,kBAAkB,8CAAsB,CAAC;AAEtD,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;AAkBpE,eAAO,MAAM,cAAc,4CACkC,CAAC;AAsO9D,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,iBAAiB,CACnD,iBAAiB,CAAC,qBAAqB,CAAC,CAQzC,CAAC"}
@@ -1,96 +1,7 @@
1
- import { ErrorEvent } from "reconnecting-websocket";
2
- import { CourierTransport, Transport } from "./transports";
3
- import { IInboxMessagePreview, Interceptor } from "./transports/types";
4
- export { IInboxMessagePreview } from "@trycourier/client-graphql";
5
- export { Interceptor } from "./transports/types";
6
- export declare type ErrorEventHandler = (event: ErrorEvent) => void;
7
- export declare type PreferenceStatus = "OPTED_IN" | "OPTED_OUT" | "REQUIRED";
8
- export declare type RepeatOn = {
9
- sunday?: boolean;
10
- monday?: boolean;
11
- tuesday?: boolean;
12
- wednesday?: boolean;
13
- thursday?: boolean;
14
- friday?: boolean;
15
- saturday?: boolean;
16
- };
17
- export interface DigestSchedule {
18
- period: string;
19
- repetition: string;
20
- scheduleId: string;
21
- default?: boolean;
22
- start: string;
23
- recurrence: string;
24
- repeat?: {
25
- frequency: number;
26
- interval: "day" | "week" | "month" | "year";
27
- on?: string | RepeatOn;
28
- };
29
- end?: number | string;
30
- }
31
- export interface IPreferenceTemplate {
32
- templateName: string;
33
- templateId: string;
34
- defaultStatus: PreferenceStatus;
35
- digestSchedules?: DigestSchedule[];
36
- }
37
- export declare type WSOptions = {
38
- url?: string;
39
- onError?: ErrorEventHandler;
40
- onClose?: () => void;
41
- onReconnect?: () => void;
42
- connectionTimeout?: number;
43
- };
44
- export declare type OnEvent = (eventParams: {
45
- messageId?: string;
46
- message?: IInboxMessagePreview;
47
- event: EventType;
48
- data?: Record<string, unknown>;
49
- }) => void;
50
- export interface PinDetails {
51
- id: string;
52
- label: {
53
- value: string;
54
- color: string;
55
- };
56
- icon: {
57
- value: string;
58
- color: string;
59
- };
60
- }
61
- export interface Brand {
62
- inapp?: {
63
- disableCourierFooter?: boolean;
64
- borderRadius?: string;
65
- disableMessageIcon?: boolean;
66
- placement?: "top" | "bottom" | "left" | "right";
67
- emptyState?: {
68
- textColor?: string;
69
- text?: string;
70
- };
71
- widgetBackground?: {
72
- topColor?: string;
73
- bottomColor?: string;
74
- };
75
- icons?: {
76
- bell?: string;
77
- message?: string;
78
- };
79
- slots?: Array<PinDetails>;
80
- toast?: {
81
- borderRadius?: string;
82
- timerAutoClose?: number;
83
- };
84
- renderActionsAsButtons?: boolean;
85
- };
86
- preferenceTemplates?: Array<IPreferenceTemplate>;
87
- colors?: {
88
- primary?: string;
89
- secondary?: string;
90
- tertiary?: string;
91
- };
92
- }
93
- export declare type EventType = "add-tag" | "archive" | "click" | "mark-all-read" | "opened" | "read" | "remove-tag" | "unpin" | "unread";
1
+ import { CourierTransport, WSOptions } from "@trycourier/transport";
2
+ import { Interceptor } from "@trycourier/core";
3
+ import { Brand } from "@trycourier/core";
4
+ import { IInboxMessagePreview } from "@trycourier/core";
94
5
  export interface ThemeVariables {
95
6
  background?: string;
96
7
  textColor?: string;
@@ -99,6 +10,12 @@ export interface ThemeVariables {
99
10
  structure?: string;
100
11
  icon?: string;
101
12
  }
13
+ export declare type OnEvent = (eventParams: {
14
+ messageId?: string;
15
+ message?: IInboxMessagePreview;
16
+ event: string;
17
+ data?: Record<string, unknown>;
18
+ }) => void;
102
19
  export interface ProviderTheme {
103
20
  colorMode?: "dark" | "light";
104
21
  variables?: ThemeVariables;
@@ -114,10 +31,10 @@ export interface ICourierProviderProps {
114
31
  inboxApiUrl?: string;
115
32
  localStorage?: Storage;
116
33
  onMessage?: Interceptor;
117
- onRouteChange?: (route: string) => void;
34
+ onRouteChange?: (route: string, message: IInboxMessagePreview) => void;
118
35
  tenantId?: string;
119
36
  theme?: ProviderTheme;
120
- transport?: CourierTransport | Transport;
37
+ transport?: CourierTransport;
121
38
  userId?: string;
122
39
  userSignature?: string;
123
40
  wsOptions?: WSOptions;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
@@ -1,82 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
-
10
- var _react = require("react");
11
-
12
- var _transports = require("../transports");
13
-
14
- var _jwtDecode = _interopRequireDefault(require("jwt-decode"));
15
-
16
- var useTransport = function useTransport(_ref) {
17
- var tenantId = _ref.tenantId,
18
- authorization = _ref.authorization,
19
- clientSourceId = _ref.clientSourceId,
20
- clientKey = _ref.clientKey,
21
- transport = _ref.transport,
22
- userSignature = _ref.userSignature,
23
- wsOptions = _ref.wsOptions;
24
- var transportRef = (0, _react.useRef)();
25
- var newTransport = (0, _react.useMemo)(function () {
26
- var _transportRef$current;
27
-
28
- if (transport) {
29
- return transport;
30
- }
31
-
32
- if (authorization && transportRef !== null && transportRef !== void 0 && (_transportRef$current = transportRef.current) !== null && _transportRef$current !== void 0 && _transportRef$current.authorization && transportRef !== null && transportRef !== void 0 && transportRef.current.transport) {
33
- var _transportRef$current2;
34
-
35
- var oldDecodedAuth = (0, _jwtDecode["default"])(transportRef === null || transportRef === void 0 ? void 0 : (_transportRef$current2 = transportRef.current) === null || _transportRef$current2 === void 0 ? void 0 : _transportRef$current2.authorization);
36
- var newDecodedAuth = (0, _jwtDecode["default"])(authorization);
37
-
38
- if (oldDecodedAuth.scope === newDecodedAuth.scope && oldDecodedAuth.tenantId === newDecodedAuth.tenantId) {
39
- transportRef.current.transport.renewSession(authorization);
40
- return transportRef.current.transport;
41
- }
42
- }
43
-
44
- if (!clientKey && !authorization) {
45
- if (undefined !== "production") {
46
- console.warn("Courier: Missing ClientKey or Authorization");
47
- }
48
-
49
- return;
50
- }
51
-
52
- if (!clientSourceId) {
53
- if (undefined !== "production") {
54
- console.warn("Courier: Missing ClientSourceId");
55
- }
56
-
57
- return;
58
- }
59
-
60
- var newTransport = new _transports.CourierTransport({
61
- tenantId: tenantId,
62
- authorization: authorization,
63
- clientSourceId: clientSourceId,
64
- clientKey: clientKey,
65
- userSignature: userSignature,
66
- wsOptions: wsOptions
67
- }); // keep track of the transport so we don't reconnect when we don't have to
68
-
69
- if (authorization) {
70
- transportRef.current = {
71
- authorization: authorization,
72
- transport: newTransport
73
- };
74
- }
75
-
76
- return newTransport;
77
- }, [tenantId, authorization, clientKey, transport, userSignature, wsOptions]);
78
- return newTransport;
79
- };
80
-
81
- var _default = useTransport;
82
- exports["default"] = _default;
package/dist/lib/index.js DELETED
@@ -1,19 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.getDateDiff = void 0;
7
-
8
- var getDateDiff = function getDateDiff(date) {
9
- if (!date) {
10
- return;
11
- }
12
-
13
- var now = new Date().getTime();
14
- var dateDiff = now - date; // if datediff is 0, return 1 so we can do "!datediff"
15
-
16
- return Math.max(dateDiff, 1);
17
- };
18
-
19
- exports.getDateDiff = getDateDiff;
@@ -1,94 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.Transport = void 0;
9
-
10
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
11
-
12
- var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
13
-
14
- function _createForOfIteratorHelper(o, allowArrayLike) { var it; if (typeof Symbol === "undefined" || o[Symbol.iterator] == null) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = o[Symbol.iterator](); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
15
-
16
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
17
-
18
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
19
-
20
- var ListenerType;
21
-
22
- (function (ListenerType) {
23
- ListenerType["message"] = "message";
24
- ListenerType["event"] = "event";
25
- })(ListenerType || (ListenerType = {}));
26
-
27
- var Transport = function Transport() {
28
- var _this = this;
29
-
30
- (0, _classCallCheck2["default"])(this, Transport);
31
-
32
- this.emit = function (courierEvent) {
33
- var _courierEvent$type;
34
-
35
- var eventType = (_courierEvent$type = courierEvent.type) !== null && _courierEvent$type !== void 0 ? _courierEvent$type : "message";
36
- var listeners = _this.listeners[eventType];
37
-
38
- if (!listeners.length) {
39
- console.warn("No Listeners Registered");
40
- return;
41
- }
42
-
43
- var _iterator = _createForOfIteratorHelper(listeners),
44
- _step;
45
-
46
- try {
47
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
48
- var listener = _step.value.listener;
49
- listener(courierEvent);
50
- }
51
- } catch (err) {
52
- _iterator.e(err);
53
- } finally {
54
- _iterator.f();
55
- }
56
- };
57
-
58
- this.listen = function (listener) {
59
- var _listener$type;
60
-
61
- var didReplaceListener = false;
62
- var eventType = (_listener$type = listener.type) !== null && _listener$type !== void 0 ? _listener$type : "message";
63
- var listeners = _this.listeners[eventType];
64
- listeners = listeners.map(function (l) {
65
- if (l.id === listener.id) {
66
- didReplaceListener = true;
67
- return listener;
68
- }
69
-
70
- return l;
71
- });
72
-
73
- if (didReplaceListener) {
74
- _this.listeners[eventType] = listeners;
75
- return;
76
- }
77
-
78
- _this.listeners[eventType] = [].concat((0, _toConsumableArray2["default"])(_this.listeners[eventType]), [listener]);
79
- };
80
-
81
- this.intercept = function (cb) {
82
- _this.interceptor = cb;
83
- };
84
-
85
- this.listeners = {
86
- message: [],
87
- event: []
88
- };
89
- this.interceptor = undefined;
90
- }
91
- /** Callback for emitted events */
92
- ;
93
-
94
- exports.Transport = Transport;