@trycourier/react-provider 6.0.1-internal.ce6fc4c.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 +24 -33
  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; }
@@ -119,7 +95,7 @@ var CourierContext = /*#__PURE__*/_react["default"].createContext(undefined);
119
95
 
120
96
  exports.CourierContext = CourierContext;
121
97
 
122
- var CourierProvider = function CourierProvider(_ref2) {
98
+ var CourierProviderInner = function CourierProviderInner(_ref2) {
123
99
  var _window;
124
100
 
125
101
  var apiUrl = _ref2.apiUrl,
@@ -161,11 +137,13 @@ var CourierProvider = function CourierProvider(_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 CourierProvider = function CourierProvider(_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 CourierProvider = function CourierProvider(_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
@@ -293,4 +275,13 @@ var CourierProvider = function CourierProvider(_ref2) {
293
275
  }), children);
294
276
  };
295
277
 
278
+ var CourierProvider = function CourierProvider(props) {
279
+ if (!props.clientKey && !props.authorization) {
280
+ console.warn("Missing ClientKey or Authorization Token");
281
+ return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, props.children);
282
+ }
283
+
284
+ return /*#__PURE__*/_react["default"].createElement(CourierProviderInner, props);
285
+ };
286
+
296
287
  exports.CourierProvider = CourierProvider;
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.ce6fc4c.0+ce6fc4c",
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.ce6fc4c.0+ce6fc4c",
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": "ce6fc4c8fa63c74d22b52ad32d69f03468dc2117"
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;AAE9D,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,iBAAiB,CACnD,iBAAiB,CAAC,qBAAqB,CAAC,CA0NzC,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;