@bigbinary/neeto-webhooks-frontend 1.7.0-beta1 → 2.0.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.
@@ -39,7 +39,8 @@
39
39
  "header": "Header",
40
40
  "body": "Body",
41
41
  "payload": "Payload",
42
- "identifier": "Identifier",
42
+ "deliveryId": "Delivery ID",
43
+ "sid": "ID",
43
44
  "empty": {
44
45
  "title": "There are no deliveries to show.",
45
46
  "description": "No events have been sent to this webhook"
package/dist/index.cjs.js CHANGED
@@ -6,7 +6,7 @@ var React = require('react');
6
6
  var reactRouterDom = require('react-router-dom');
7
7
  var neetoCist = require('@bigbinary/neeto-cist');
8
8
  var constants = require('@bigbinary/neeto-commons-frontend/constants');
9
- var utils = require('@bigbinary/neeto-commons-frontend/utils');
9
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
10
10
  var Container = require('@bigbinary/neeto-molecules/Container');
11
11
  var Header$2 = require('@bigbinary/neeto-molecules/Header');
12
12
  var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
@@ -25,10 +25,10 @@ var Typography = require('@bigbinary/neetoui/Typography');
25
25
  var Tab = require('@bigbinary/neetoui/Tab');
26
26
  var Tag = require('@bigbinary/neetoui/Tag');
27
27
  var i18next = require('i18next');
28
+ var utils = require('@bigbinary/neeto-commons-frontend/utils');
28
29
  var ramda = require('ramda');
29
30
  var Alert = require('@bigbinary/neetoui/Alert');
30
- var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
31
- var neetoIcons = require('@bigbinary/neeto-icons');
31
+ var Plus = require('@bigbinary/neeto-icons/Plus');
32
32
  var HelpPopover = require('@bigbinary/neeto-molecules/HelpPopover');
33
33
  var MoreDropdown = require('@bigbinary/neeto-molecules/MoreDropdown');
34
34
  var Spinner = require('@bigbinary/neetoui/Spinner');
@@ -75,6 +75,7 @@ var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
75
75
  var Tab__default = /*#__PURE__*/_interopDefaultLegacy(Tab);
76
76
  var Tag__default = /*#__PURE__*/_interopDefaultLegacy(Tag);
77
77
  var Alert__default = /*#__PURE__*/_interopDefaultLegacy(Alert);
78
+ var Plus__default = /*#__PURE__*/_interopDefaultLegacy(Plus);
78
79
  var HelpPopover__default = /*#__PURE__*/_interopDefaultLegacy(HelpPopover);
79
80
  var MoreDropdown__default = /*#__PURE__*/_interopDefaultLegacy(MoreDropdown);
80
81
  var Spinner__default = /*#__PURE__*/_interopDefaultLegacy(Spinner);
@@ -124,46 +125,6 @@ function _toConsumableArray(arr) {
124
125
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
125
126
  }
126
127
 
127
- function _arrayWithHoles(arr) {
128
- if (Array.isArray(arr)) return arr;
129
- }
130
-
131
- function _iterableToArrayLimit(r, l) {
132
- var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
133
- if (null != t) {
134
- var e,
135
- n,
136
- i,
137
- u,
138
- a = [],
139
- f = !0,
140
- o = !1;
141
- try {
142
- if (i = (t = t.call(r)).next, 0 === l) {
143
- if (Object(t) !== t) return;
144
- f = !1;
145
- } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
146
- } catch (r) {
147
- o = !0, n = r;
148
- } finally {
149
- try {
150
- if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
151
- } finally {
152
- if (o) throw n;
153
- }
154
- }
155
- return a;
156
- }
157
- }
158
-
159
- function _nonIterableRest() {
160
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
161
- }
162
-
163
- function _slicedToArray(arr, i) {
164
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
165
- }
166
-
167
128
  function _typeof$1(o) {
168
129
  "@babel/helpers - typeof";
169
130
 
@@ -677,6 +638,46 @@ try {
677
638
 
678
639
  var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regenerator);
679
640
 
641
+ function _arrayWithHoles(arr) {
642
+ if (Array.isArray(arr)) return arr;
643
+ }
644
+
645
+ function _iterableToArrayLimit(r, l) {
646
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
647
+ if (null != t) {
648
+ var e,
649
+ n,
650
+ i,
651
+ u,
652
+ a = [],
653
+ f = !0,
654
+ o = !1;
655
+ try {
656
+ if (i = (t = t.call(r)).next, 0 === l) {
657
+ if (Object(t) !== t) return;
658
+ f = !1;
659
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
660
+ } catch (r) {
661
+ o = !0, n = r;
662
+ } finally {
663
+ try {
664
+ if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
665
+ } finally {
666
+ if (o) throw n;
667
+ }
668
+ }
669
+ return a;
670
+ }
671
+ }
672
+
673
+ function _nonIterableRest() {
674
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
675
+ }
676
+
677
+ function _slicedToArray(arr, i) {
678
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
679
+ }
680
+
680
681
  var DELIVERY_TAB = {
681
682
  response: "response",
682
683
  request: "request"
@@ -703,7 +704,8 @@ var TransactionDetails = function TransactionDetails(_ref) {
703
704
  t = _useTranslation.t;
704
705
  var status = delivery.status,
705
706
  identifier = delivery.identifier,
706
- responseStatusCode = delivery.responseStatusCode;
707
+ responseStatusCode = delivery.responseStatusCode,
708
+ sid = delivery.sid;
707
709
  var renderPayload = function renderPayload() {
708
710
  try {
709
711
  return JSON.stringify(JSON.parse(delivery.requestBody), null, 2);
@@ -718,7 +720,15 @@ var TransactionDetails = function TransactionDetails(_ref) {
718
720
  className: "flex w-full flex-col space-y-2 pb-4",
719
721
  children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
720
722
  className: "flex items-center space-x-1",
721
- children: [t("neetoWebhooks.delivery.identifier"), ":", /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
723
+ children: [t("neetoWebhooks.delivery.sid"), ":", /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
724
+ className: "px-2 font-bold",
725
+ "data-cy": "delivery-sid",
726
+ style: "body2",
727
+ children: sid
728
+ })]
729
+ }), /*#__PURE__*/jsxRuntime.jsxs("span", {
730
+ className: "flex items-center space-x-1",
731
+ children: [t("neetoWebhooks.delivery.deliveryId"), ":", /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
722
732
  className: "px-2 font-bold",
723
733
  "data-cy": "delivery-identifier",
724
734
  style: "body2",
@@ -884,9 +894,9 @@ var Details = function Details(_ref) {
884
894
  };
885
895
 
886
896
  var buildColumns$1 = function buildColumns(_ref) {
887
- var handleDetailsClick = _ref.handleDetailsClick;
897
+ var deliveryDetailsPath = _ref.deliveryDetailsPath;
888
898
  return [{
889
- title: i18next.t("neetoWebhooks.delivery.identifier", constants.SINGULAR),
899
+ title: i18next.t("neetoWebhooks.delivery.deliveryId"),
890
900
  key: "identifier",
891
901
  dataIndex: "identifier",
892
902
  width: 390,
@@ -895,10 +905,10 @@ var buildColumns$1 = function buildColumns(_ref) {
895
905
  className: "flex items-center gap-x-3",
896
906
  children: [/*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
897
907
  style: "link",
908
+ to: utils.buildUrl(deliveryDetailsPath, {
909
+ deliveryId: delivery.sid
910
+ }),
898
911
  weight: "semibold",
899
- onClick: function onClick() {
900
- return handleDetailsClick(delivery.sid);
901
- },
902
912
  children: delivery.identifier
903
913
  }), delivery.redelivery && /*#__PURE__*/jsxRuntime.jsx(Tag__default["default"], {
904
914
  style: "info",
@@ -952,10 +962,6 @@ var buildColumns$1 = function buildColumns(_ref) {
952
962
  var Deliveries = function Deliveries(_ref) {
953
963
  var webhooksUrl = _ref.webhooksUrl,
954
964
  hostBreadcrumbs = _ref.breadcrumbs;
955
- var _useState = React.useState(1),
956
- _useState2 = _slicedToArray(_useState, 2),
957
- pageNumber = _useState2[0],
958
- setPageNumber = _useState2[1];
959
965
  var _useRouteMatch = reactRouterDom.useRouteMatch(),
960
966
  deliveriesUrl = _useRouteMatch.url;
961
967
  var history = reactRouterDom.useHistory();
@@ -964,10 +970,12 @@ var Deliveries = function Deliveries(_ref) {
964
970
  var _useParams = reactRouterDom.useParams(),
965
971
  webhookId = _useParams.webhookId,
966
972
  deliveryId = _useParams.deliveryId;
967
- var deliveriesPath = getDeliveriesPath(webhooksUrl);
973
+ var _useQueryParams = reactUtils.useQueryParams(),
974
+ _useQueryParams$page = _useQueryParams.page,
975
+ page = _useQueryParams$page === void 0 ? constants.DEFAULT_PAGE_INDEX : _useQueryParams$page;
968
976
  var deliveryDetailsPath = getDeliveryDetailsPath(deliveriesUrl);
969
977
  var _useFetchDeliveries = useFetchDeliveries(webhookId, {
970
- page: pageNumber,
978
+ page: page,
971
979
  pageSize: constants.DEFAULT_PAGE_SIZE
972
980
  }),
973
981
  isLoading = _useFetchDeliveries.isLoading,
@@ -988,16 +996,6 @@ var Deliveries = function Deliveries(_ref) {
988
996
  link: window.location.pathname,
989
997
  text: endpoint
990
998
  }]);
991
- var handleDetailsClick = function handleDetailsClick(sid) {
992
- return history.push(utils.buildUrl(deliveryDetailsPath, {
993
- deliveryId: sid
994
- }));
995
- };
996
- var handleClose = function handleClose() {
997
- history.push(utils.buildUrl(deliveriesPath, {
998
- webhookId: webhookId
999
- }));
1000
- };
1001
999
  if (isLoading) return /*#__PURE__*/jsxRuntime.jsx(PageLoader__default["default"], {});
1002
1000
  return /*#__PURE__*/jsxRuntime.jsxs(Container__default["default"], {
1003
1001
  className: "w-full",
@@ -1010,11 +1008,10 @@ var Deliveries = function Deliveries(_ref) {
1010
1008
  totalCount: totalCount,
1011
1009
  fixedHeight: true,
1012
1010
  columnData: buildColumns$1({
1013
- handleDetailsClick: handleDetailsClick
1011
+ deliveryDetailsPath: deliveryDetailsPath
1014
1012
  }),
1015
- currentPageNumber: pageNumber,
1013
+ currentPageNumber: page,
1016
1014
  defaultPageSize: constants.DEFAULT_PAGE_SIZE,
1017
- handlePageChange: setPageNumber,
1018
1015
  loading: isFetching,
1019
1016
  rowData: deliveries
1020
1017
  })
@@ -1027,7 +1024,9 @@ var Deliveries = function Deliveries(_ref) {
1027
1024
  }), /*#__PURE__*/jsxRuntime.jsx(Details, {
1028
1025
  deliveryId: deliveryId,
1029
1026
  webhookSid: webhookId,
1030
- onClose: handleClose
1027
+ onClose: function onClose() {
1028
+ return history.goBack();
1029
+ }
1031
1030
  })]
1032
1031
  });
1033
1032
  };
@@ -1074,7 +1073,7 @@ var useFetchWebhooks = function useFetchWebhooks(params) {
1074
1073
  };
1075
1074
  var useCreateWebhook = function useCreateWebhook(options) {
1076
1075
  return reactUtils.useMutationWithInvalidation(webhooksApi.create, {
1077
- keysToInvalidate: [QUERY_KEYS.WEBHOOK_LIST],
1076
+ keysToInvalidate: [[QUERY_KEYS.WEBHOOK_LIST]],
1078
1077
  onSuccess: function onSuccess() {
1079
1078
  var _options$onSuccess;
1080
1079
  options === null || options === void 0 || (_options$onSuccess = options.onSuccess) === null || _options$onSuccess === void 0 || _options$onSuccess.call(options);
@@ -1106,7 +1105,7 @@ var useUpdateWebhook = function useUpdateWebhook(id, options) {
1106
1105
  };
1107
1106
  var useDestroyWebhook = function useDestroyWebhook(options) {
1108
1107
  return reactUtils.useMutationWithInvalidation(webhooksApi.destroy, {
1109
- keysToInvalidate: [QUERY_KEYS.WEBHOOK_LIST],
1108
+ keysToInvalidate: [[QUERY_KEYS.WEBHOOK_LIST]],
1110
1109
  onSuccess: function onSuccess() {
1111
1110
  var _options$onSuccess3;
1112
1111
  options === null || options === void 0 || (_options$onSuccess3 = options.onSuccess) === null || _options$onSuccess3 === void 0 || _options$onSuccess3.call(options);
@@ -1481,7 +1480,7 @@ var AddWebhookPane = function AddWebhookPane(_ref) {
1481
1480
  name: "isActive"
1482
1481
  }), !isSecretInputFieldVisible && /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
1483
1482
  "data-cy": "add-secret-key",
1484
- icon: neetoIcons.Plus,
1483
+ icon: Plus__default["default"],
1485
1484
  label: t("neetoWebhooks.buttons.addSecretKey"),
1486
1485
  style: "text",
1487
1486
  onClick: function onClick() {
@@ -1505,10 +1504,13 @@ var AddWebhookPane = function AddWebhookPane(_ref) {
1505
1504
  var Header = reactUtils.withT(function (_ref) {
1506
1505
  var t = _ref.t,
1507
1506
  breadcrumbs = _ref.breadcrumbs,
1508
- setIsAddWebhookPaneOpen = _ref.setIsAddWebhookPaneOpen;
1507
+ title = _ref.title,
1508
+ setIsAddWebhookPaneOpen = _ref.setIsAddWebhookPaneOpen,
1509
+ headerSize = _ref.headerSize;
1509
1510
  return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
1510
1511
  children: [/*#__PURE__*/jsxRuntime.jsx(Header__default["default"], {
1511
1512
  breadcrumbs: breadcrumbs,
1513
+ size: headerSize,
1512
1514
  actionBlock: /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
1513
1515
  "data-cy": "add-new-webhook-button",
1514
1516
  label: t("neetoWebhooks.webhook.add"),
@@ -1516,7 +1518,7 @@ var Header = reactUtils.withT(function (_ref) {
1516
1518
  return setIsAddWebhookPaneOpen(true);
1517
1519
  }
1518
1520
  }),
1519
- title: /*#__PURE__*/jsxRuntime.jsxs("div", {
1521
+ title: title || /*#__PURE__*/jsxRuntime.jsxs("div", {
1520
1522
  className: "flex items-center gap-x-2",
1521
1523
  children: [t("neetoWebhooks.webhook.title"), /*#__PURE__*/jsxRuntime.jsx(HelpPopover__default["default"], {
1522
1524
  description: t("neetoWebhooks.webhook.helpDescription"),
@@ -1541,9 +1543,13 @@ var Webhooks = function Webhooks(_ref) {
1541
1543
  var deliveriesPath = _ref.deliveriesPath,
1542
1544
  entityType = _ref.entityType,
1543
1545
  breadcrumbs = _ref.breadcrumbs,
1546
+ title = _ref.title,
1544
1547
  entityId = _ref.entityId,
1545
1548
  onCreate = _ref.onCreate,
1546
- onDelete = _ref.onDelete;
1549
+ onDelete = _ref.onDelete,
1550
+ headerSize = _ref.headerSize,
1551
+ _ref$containerClassNa = _ref.containerClassName,
1552
+ containerClassName = _ref$containerClassNa === void 0 ? "" : _ref$containerClassNa;
1547
1553
  var _useState = React.useState(null),
1548
1554
  _useState2 = _slicedToArray(_useState, 2),
1549
1555
  editingWebhookId = _useState2[0],
@@ -1560,15 +1566,14 @@ var Webhooks = function Webhooks(_ref) {
1560
1566
  _useState8 = _slicedToArray(_useState7, 2),
1561
1567
  isDeleteAlertOpen = _useState8[0],
1562
1568
  setIsDeleteAlertOpen = _useState8[1];
1563
- var _useState9 = React.useState(1),
1564
- _useState10 = _slicedToArray(_useState9, 2),
1565
- pageNumber = _useState10[0],
1566
- setPageNumber = _useState10[1];
1567
1569
  var _useTranslation = reactI18next.useTranslation(),
1568
1570
  t = _useTranslation.t;
1571
+ var _useQueryParams = reactUtils.useQueryParams(),
1572
+ _useQueryParams$page = _useQueryParams.page,
1573
+ page = _useQueryParams$page === void 0 ? constants.DEFAULT_PAGE_INDEX : _useQueryParams$page;
1569
1574
  var _useFetchWebhooks = useFetchWebhooks({
1570
1575
  entityId: entityId,
1571
- page: pageNumber,
1576
+ page: page,
1572
1577
  pageSize: constants.DEFAULT_PAGE_SIZE
1573
1578
  }),
1574
1579
  isLoading = _useFetchWebhooks.isLoading,
@@ -1603,18 +1608,19 @@ var Webhooks = function Webhooks(_ref) {
1603
1608
  return /*#__PURE__*/jsxRuntime.jsx(PageLoader__default["default"], {});
1604
1609
  }
1605
1610
  return /*#__PURE__*/jsxRuntime.jsxs(Container__default["default"], {
1606
- className: "w-full",
1611
+ className: containerClassName,
1607
1612
  children: [/*#__PURE__*/jsxRuntime.jsx(Header$1, {
1608
1613
  breadcrumbs: breadcrumbs,
1609
- setIsAddWebhookPaneOpen: setIsAddWebhookPaneOpen
1614
+ headerSize: headerSize,
1615
+ setIsAddWebhookPaneOpen: setIsAddWebhookPaneOpen,
1616
+ title: title
1610
1617
  }), neetoCist.isNotEmpty(webhooks) ? /*#__PURE__*/jsxRuntime.jsx(TableWrapper__default["default"], {
1611
1618
  hasPagination: totalCount > constants.DEFAULT_PAGE_SIZE,
1612
1619
  children: /*#__PURE__*/jsxRuntime.jsx(Table__default["default"], {
1613
1620
  totalCount: totalCount,
1614
1621
  fixedHeight: true,
1615
- currentPageNumber: pageNumber,
1622
+ currentPageNumber: page,
1616
1623
  defaultPageSize: constants.DEFAULT_PAGE_SIZE,
1617
- handlePageChange: setPageNumber,
1618
1624
  loading: isFetching,
1619
1625
  rowData: webhooks,
1620
1626
  columnData: buildColumns({
@@ -1627,12 +1633,12 @@ var Webhooks = function Webhooks(_ref) {
1627
1633
  className: "flex h-full w-full items-center justify-center",
1628
1634
  children: /*#__PURE__*/jsxRuntime.jsx(NoData__default["default"], {
1629
1635
  title: t("neetoWebhooks.webhook.empty"),
1630
- helpText: /*#__PURE__*/jsxRuntime.jsx("a", {
1631
- className: "neeto-ui-text-primary-800 hover:neeto-ui-text-primary-800 visited:neeto-ui-text-primary-600 font-medium",
1636
+ helpText: /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
1632
1637
  href: WEBHOOK_HELP_URL,
1638
+ label: t("neetoWebhooks.webhook.emptyHelpText"),
1633
1639
  rel: "noreferrer",
1634
- target: "_blank",
1635
- children: t("neetoWebhooks.webhook.emptyHelpText")
1640
+ style: "link",
1641
+ target: "_blank"
1636
1642
  }),
1637
1643
  primaryButtonProps: {
1638
1644
  label: t("neetoWebhooks.webhook.add"),
@@ -1677,8 +1683,11 @@ var NeetoWebhooks = function NeetoWebhooks(_ref) {
1677
1683
  entityId = _ref.entityId,
1678
1684
  _ref$breadcrumbs = _ref.breadcrumbs,
1679
1685
  breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
1686
+ title = _ref.title,
1680
1687
  onCreate = _ref.onCreate,
1681
- onDelete = _ref.onDelete;
1688
+ onDelete = _ref.onDelete,
1689
+ headerSize = _ref.headerSize,
1690
+ containerClassName = _ref.containerClassName;
1682
1691
  var _useRouteMatch = reactRouterDom.useRouteMatch(),
1683
1692
  webhooksPath = _useRouteMatch.path,
1684
1693
  webhooksUrl = _useRouteMatch.url;
@@ -1691,11 +1700,14 @@ var NeetoWebhooks = function NeetoWebhooks(_ref) {
1691
1700
  component: function component() {
1692
1701
  return /*#__PURE__*/jsxRuntime.jsx(Webhooks$1, {
1693
1702
  breadcrumbs: breadcrumbs,
1703
+ containerClassName: containerClassName,
1694
1704
  deliveriesPath: deliveriesPath,
1695
1705
  entityId: entityId,
1696
1706
  entityType: entityType,
1707
+ headerSize: headerSize,
1697
1708
  onCreate: onCreate,
1698
- onDelete: onDelete
1709
+ onDelete: onDelete,
1710
+ title: title
1699
1711
  });
1700
1712
  }
1701
1713
  }), /*#__PURE__*/jsxRuntime.jsx(reactRouterDom.Route, {