@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.
package/dist/index.js CHANGED
@@ -1,8 +1,8 @@
1
1
  import React, { useState, useRef, useEffect, useCallback } from 'react';
2
2
  import { useRouteMatch, useHistory, useParams, Switch as Switch$1, Route } from 'react-router-dom';
3
3
  import { isNotPresent, isPresent, removeBy, isNotEmpty, removeById, findBy } from '@bigbinary/neeto-cist';
4
- import { DEFAULT_STALE_TIME, SINGULAR, DEFAULT_PAGE_SIZE, PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
5
- import { buildUrl } from '@bigbinary/neeto-commons-frontend/utils';
4
+ import { DEFAULT_STALE_TIME, SINGULAR, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_INDEX, PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
5
+ import { useQueryParams, useMutationWithInvalidation, withT } from '@bigbinary/neeto-commons-frontend/react-utils';
6
6
  import Container from '@bigbinary/neeto-molecules/Container';
7
7
  import Header$2 from '@bigbinary/neeto-molecules/Header';
8
8
  import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
@@ -21,10 +21,10 @@ import Typography from '@bigbinary/neetoui/Typography';
21
21
  import Tab from '@bigbinary/neetoui/Tab';
22
22
  import Tag from '@bigbinary/neetoui/Tag';
23
23
  import { t as t$1 } from 'i18next';
24
+ import { buildUrl } from '@bigbinary/neeto-commons-frontend/utils';
24
25
  import { prop, pluck, assoc } from 'ramda';
25
26
  import Alert from '@bigbinary/neetoui/Alert';
26
- import { useMutationWithInvalidation, withT } from '@bigbinary/neeto-commons-frontend/react-utils';
27
- import { Plus } from '@bigbinary/neeto-icons';
27
+ import Plus from '@bigbinary/neeto-icons/Plus';
28
28
  import HelpPopover from '@bigbinary/neeto-molecules/HelpPopover';
29
29
  import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
30
30
  import Spinner from '@bigbinary/neetoui/Spinner';
@@ -74,46 +74,6 @@ function _toConsumableArray(arr) {
74
74
  return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();
75
75
  }
76
76
 
77
- function _arrayWithHoles(arr) {
78
- if (Array.isArray(arr)) return arr;
79
- }
80
-
81
- function _iterableToArrayLimit(r, l) {
82
- var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
83
- if (null != t) {
84
- var e,
85
- n,
86
- i,
87
- u,
88
- a = [],
89
- f = !0,
90
- o = !1;
91
- try {
92
- if (i = (t = t.call(r)).next, 0 === l) {
93
- if (Object(t) !== t) return;
94
- f = !1;
95
- } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
96
- } catch (r) {
97
- o = !0, n = r;
98
- } finally {
99
- try {
100
- if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
101
- } finally {
102
- if (o) throw n;
103
- }
104
- }
105
- return a;
106
- }
107
- }
108
-
109
- function _nonIterableRest() {
110
- throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
111
- }
112
-
113
- function _slicedToArray(arr, i) {
114
- return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
115
- }
116
-
117
77
  function _typeof$1(o) {
118
78
  "@babel/helpers - typeof";
119
79
 
@@ -627,6 +587,46 @@ try {
627
587
 
628
588
  var _regeneratorRuntime = /*@__PURE__*/getDefaultExportFromCjs(regenerator);
629
589
 
590
+ function _arrayWithHoles(arr) {
591
+ if (Array.isArray(arr)) return arr;
592
+ }
593
+
594
+ function _iterableToArrayLimit(r, l) {
595
+ var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"];
596
+ if (null != t) {
597
+ var e,
598
+ n,
599
+ i,
600
+ u,
601
+ a = [],
602
+ f = !0,
603
+ o = !1;
604
+ try {
605
+ if (i = (t = t.call(r)).next, 0 === l) {
606
+ if (Object(t) !== t) return;
607
+ f = !1;
608
+ } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);
609
+ } catch (r) {
610
+ o = !0, n = r;
611
+ } finally {
612
+ try {
613
+ if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return;
614
+ } finally {
615
+ if (o) throw n;
616
+ }
617
+ }
618
+ return a;
619
+ }
620
+ }
621
+
622
+ function _nonIterableRest() {
623
+ throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
624
+ }
625
+
626
+ function _slicedToArray(arr, i) {
627
+ return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();
628
+ }
629
+
630
630
  var DELIVERY_TAB = {
631
631
  response: "response",
632
632
  request: "request"
@@ -653,7 +653,8 @@ var TransactionDetails = function TransactionDetails(_ref) {
653
653
  t = _useTranslation.t;
654
654
  var status = delivery.status,
655
655
  identifier = delivery.identifier,
656
- responseStatusCode = delivery.responseStatusCode;
656
+ responseStatusCode = delivery.responseStatusCode,
657
+ sid = delivery.sid;
657
658
  var renderPayload = function renderPayload() {
658
659
  try {
659
660
  return JSON.stringify(JSON.parse(delivery.requestBody), null, 2);
@@ -668,7 +669,15 @@ var TransactionDetails = function TransactionDetails(_ref) {
668
669
  className: "flex w-full flex-col space-y-2 pb-4",
669
670
  children: [/*#__PURE__*/jsxs("span", {
670
671
  className: "flex items-center space-x-1",
671
- children: [t("neetoWebhooks.delivery.identifier"), ":", /*#__PURE__*/jsx(Typography, {
672
+ children: [t("neetoWebhooks.delivery.sid"), ":", /*#__PURE__*/jsx(Typography, {
673
+ className: "px-2 font-bold",
674
+ "data-cy": "delivery-sid",
675
+ style: "body2",
676
+ children: sid
677
+ })]
678
+ }), /*#__PURE__*/jsxs("span", {
679
+ className: "flex items-center space-x-1",
680
+ children: [t("neetoWebhooks.delivery.deliveryId"), ":", /*#__PURE__*/jsx(Typography, {
672
681
  className: "px-2 font-bold",
673
682
  "data-cy": "delivery-identifier",
674
683
  style: "body2",
@@ -834,9 +843,9 @@ var Details = function Details(_ref) {
834
843
  };
835
844
 
836
845
  var buildColumns$1 = function buildColumns(_ref) {
837
- var handleDetailsClick = _ref.handleDetailsClick;
846
+ var deliveryDetailsPath = _ref.deliveryDetailsPath;
838
847
  return [{
839
- title: t$1("neetoWebhooks.delivery.identifier", SINGULAR),
848
+ title: t$1("neetoWebhooks.delivery.deliveryId"),
840
849
  key: "identifier",
841
850
  dataIndex: "identifier",
842
851
  width: 390,
@@ -845,10 +854,10 @@ var buildColumns$1 = function buildColumns(_ref) {
845
854
  className: "flex items-center gap-x-3",
846
855
  children: [/*#__PURE__*/jsx(Button, {
847
856
  style: "link",
857
+ to: buildUrl(deliveryDetailsPath, {
858
+ deliveryId: delivery.sid
859
+ }),
848
860
  weight: "semibold",
849
- onClick: function onClick() {
850
- return handleDetailsClick(delivery.sid);
851
- },
852
861
  children: delivery.identifier
853
862
  }), delivery.redelivery && /*#__PURE__*/jsx(Tag, {
854
863
  style: "info",
@@ -902,10 +911,6 @@ var buildColumns$1 = function buildColumns(_ref) {
902
911
  var Deliveries = function Deliveries(_ref) {
903
912
  var webhooksUrl = _ref.webhooksUrl,
904
913
  hostBreadcrumbs = _ref.breadcrumbs;
905
- var _useState = useState(1),
906
- _useState2 = _slicedToArray(_useState, 2),
907
- pageNumber = _useState2[0],
908
- setPageNumber = _useState2[1];
909
914
  var _useRouteMatch = useRouteMatch(),
910
915
  deliveriesUrl = _useRouteMatch.url;
911
916
  var history = useHistory();
@@ -914,10 +919,12 @@ var Deliveries = function Deliveries(_ref) {
914
919
  var _useParams = useParams(),
915
920
  webhookId = _useParams.webhookId,
916
921
  deliveryId = _useParams.deliveryId;
917
- var deliveriesPath = getDeliveriesPath(webhooksUrl);
922
+ var _useQueryParams = useQueryParams(),
923
+ _useQueryParams$page = _useQueryParams.page,
924
+ page = _useQueryParams$page === void 0 ? DEFAULT_PAGE_INDEX : _useQueryParams$page;
918
925
  var deliveryDetailsPath = getDeliveryDetailsPath(deliveriesUrl);
919
926
  var _useFetchDeliveries = useFetchDeliveries(webhookId, {
920
- page: pageNumber,
927
+ page: page,
921
928
  pageSize: DEFAULT_PAGE_SIZE
922
929
  }),
923
930
  isLoading = _useFetchDeliveries.isLoading,
@@ -938,16 +945,6 @@ var Deliveries = function Deliveries(_ref) {
938
945
  link: window.location.pathname,
939
946
  text: endpoint
940
947
  }]);
941
- var handleDetailsClick = function handleDetailsClick(sid) {
942
- return history.push(buildUrl(deliveryDetailsPath, {
943
- deliveryId: sid
944
- }));
945
- };
946
- var handleClose = function handleClose() {
947
- history.push(buildUrl(deliveriesPath, {
948
- webhookId: webhookId
949
- }));
950
- };
951
948
  if (isLoading) return /*#__PURE__*/jsx(PageLoader, {});
952
949
  return /*#__PURE__*/jsxs(Container, {
953
950
  className: "w-full",
@@ -960,11 +957,10 @@ var Deliveries = function Deliveries(_ref) {
960
957
  totalCount: totalCount,
961
958
  fixedHeight: true,
962
959
  columnData: buildColumns$1({
963
- handleDetailsClick: handleDetailsClick
960
+ deliveryDetailsPath: deliveryDetailsPath
964
961
  }),
965
- currentPageNumber: pageNumber,
962
+ currentPageNumber: page,
966
963
  defaultPageSize: DEFAULT_PAGE_SIZE,
967
- handlePageChange: setPageNumber,
968
964
  loading: isFetching,
969
965
  rowData: deliveries
970
966
  })
@@ -977,7 +973,9 @@ var Deliveries = function Deliveries(_ref) {
977
973
  }), /*#__PURE__*/jsx(Details, {
978
974
  deliveryId: deliveryId,
979
975
  webhookSid: webhookId,
980
- onClose: handleClose
976
+ onClose: function onClose() {
977
+ return history.goBack();
978
+ }
981
979
  })]
982
980
  });
983
981
  };
@@ -1024,7 +1022,7 @@ var useFetchWebhooks = function useFetchWebhooks(params) {
1024
1022
  };
1025
1023
  var useCreateWebhook = function useCreateWebhook(options) {
1026
1024
  return useMutationWithInvalidation(webhooksApi.create, {
1027
- keysToInvalidate: [QUERY_KEYS.WEBHOOK_LIST],
1025
+ keysToInvalidate: [[QUERY_KEYS.WEBHOOK_LIST]],
1028
1026
  onSuccess: function onSuccess() {
1029
1027
  var _options$onSuccess;
1030
1028
  options === null || options === void 0 || (_options$onSuccess = options.onSuccess) === null || _options$onSuccess === void 0 || _options$onSuccess.call(options);
@@ -1056,7 +1054,7 @@ var useUpdateWebhook = function useUpdateWebhook(id, options) {
1056
1054
  };
1057
1055
  var useDestroyWebhook = function useDestroyWebhook(options) {
1058
1056
  return useMutationWithInvalidation(webhooksApi.destroy, {
1059
- keysToInvalidate: [QUERY_KEYS.WEBHOOK_LIST],
1057
+ keysToInvalidate: [[QUERY_KEYS.WEBHOOK_LIST]],
1060
1058
  onSuccess: function onSuccess() {
1061
1059
  var _options$onSuccess3;
1062
1060
  options === null || options === void 0 || (_options$onSuccess3 = options.onSuccess) === null || _options$onSuccess3 === void 0 || _options$onSuccess3.call(options);
@@ -1455,10 +1453,13 @@ var AddWebhookPane = function AddWebhookPane(_ref) {
1455
1453
  var Header = withT(function (_ref) {
1456
1454
  var t = _ref.t,
1457
1455
  breadcrumbs = _ref.breadcrumbs,
1458
- setIsAddWebhookPaneOpen = _ref.setIsAddWebhookPaneOpen;
1456
+ title = _ref.title,
1457
+ setIsAddWebhookPaneOpen = _ref.setIsAddWebhookPaneOpen,
1458
+ headerSize = _ref.headerSize;
1459
1459
  return /*#__PURE__*/jsxs(Fragment, {
1460
1460
  children: [/*#__PURE__*/jsx(Header$2, {
1461
1461
  breadcrumbs: breadcrumbs,
1462
+ size: headerSize,
1462
1463
  actionBlock: /*#__PURE__*/jsx(Button, {
1463
1464
  "data-cy": "add-new-webhook-button",
1464
1465
  label: t("neetoWebhooks.webhook.add"),
@@ -1466,7 +1467,7 @@ var Header = withT(function (_ref) {
1466
1467
  return setIsAddWebhookPaneOpen(true);
1467
1468
  }
1468
1469
  }),
1469
- title: /*#__PURE__*/jsxs("div", {
1470
+ title: title || /*#__PURE__*/jsxs("div", {
1470
1471
  className: "flex items-center gap-x-2",
1471
1472
  children: [t("neetoWebhooks.webhook.title"), /*#__PURE__*/jsx(HelpPopover, {
1472
1473
  description: t("neetoWebhooks.webhook.helpDescription"),
@@ -1491,9 +1492,13 @@ var Webhooks = function Webhooks(_ref) {
1491
1492
  var deliveriesPath = _ref.deliveriesPath,
1492
1493
  entityType = _ref.entityType,
1493
1494
  breadcrumbs = _ref.breadcrumbs,
1495
+ title = _ref.title,
1494
1496
  entityId = _ref.entityId,
1495
1497
  onCreate = _ref.onCreate,
1496
- onDelete = _ref.onDelete;
1498
+ onDelete = _ref.onDelete,
1499
+ headerSize = _ref.headerSize,
1500
+ _ref$containerClassNa = _ref.containerClassName,
1501
+ containerClassName = _ref$containerClassNa === void 0 ? "" : _ref$containerClassNa;
1497
1502
  var _useState = useState(null),
1498
1503
  _useState2 = _slicedToArray(_useState, 2),
1499
1504
  editingWebhookId = _useState2[0],
@@ -1510,15 +1515,14 @@ var Webhooks = function Webhooks(_ref) {
1510
1515
  _useState8 = _slicedToArray(_useState7, 2),
1511
1516
  isDeleteAlertOpen = _useState8[0],
1512
1517
  setIsDeleteAlertOpen = _useState8[1];
1513
- var _useState9 = useState(1),
1514
- _useState10 = _slicedToArray(_useState9, 2),
1515
- pageNumber = _useState10[0],
1516
- setPageNumber = _useState10[1];
1517
1518
  var _useTranslation = useTranslation(),
1518
1519
  t = _useTranslation.t;
1520
+ var _useQueryParams = useQueryParams(),
1521
+ _useQueryParams$page = _useQueryParams.page,
1522
+ page = _useQueryParams$page === void 0 ? DEFAULT_PAGE_INDEX : _useQueryParams$page;
1519
1523
  var _useFetchWebhooks = useFetchWebhooks({
1520
1524
  entityId: entityId,
1521
- page: pageNumber,
1525
+ page: page,
1522
1526
  pageSize: DEFAULT_PAGE_SIZE
1523
1527
  }),
1524
1528
  isLoading = _useFetchWebhooks.isLoading,
@@ -1553,18 +1557,19 @@ var Webhooks = function Webhooks(_ref) {
1553
1557
  return /*#__PURE__*/jsx(PageLoader, {});
1554
1558
  }
1555
1559
  return /*#__PURE__*/jsxs(Container, {
1556
- className: "w-full",
1560
+ className: containerClassName,
1557
1561
  children: [/*#__PURE__*/jsx(Header$1, {
1558
1562
  breadcrumbs: breadcrumbs,
1559
- setIsAddWebhookPaneOpen: setIsAddWebhookPaneOpen
1563
+ headerSize: headerSize,
1564
+ setIsAddWebhookPaneOpen: setIsAddWebhookPaneOpen,
1565
+ title: title
1560
1566
  }), isNotEmpty(webhooks) ? /*#__PURE__*/jsx(TableWrapper, {
1561
1567
  hasPagination: totalCount > DEFAULT_PAGE_SIZE,
1562
1568
  children: /*#__PURE__*/jsx(Table, {
1563
1569
  totalCount: totalCount,
1564
1570
  fixedHeight: true,
1565
- currentPageNumber: pageNumber,
1571
+ currentPageNumber: page,
1566
1572
  defaultPageSize: DEFAULT_PAGE_SIZE,
1567
- handlePageChange: setPageNumber,
1568
1573
  loading: isFetching,
1569
1574
  rowData: webhooks,
1570
1575
  columnData: buildColumns({
@@ -1577,12 +1582,12 @@ var Webhooks = function Webhooks(_ref) {
1577
1582
  className: "flex h-full w-full items-center justify-center",
1578
1583
  children: /*#__PURE__*/jsx(NoData, {
1579
1584
  title: t("neetoWebhooks.webhook.empty"),
1580
- helpText: /*#__PURE__*/jsx("a", {
1581
- className: "neeto-ui-text-primary-800 hover:neeto-ui-text-primary-800 visited:neeto-ui-text-primary-600 font-medium",
1585
+ helpText: /*#__PURE__*/jsx(Button, {
1582
1586
  href: WEBHOOK_HELP_URL,
1587
+ label: t("neetoWebhooks.webhook.emptyHelpText"),
1583
1588
  rel: "noreferrer",
1584
- target: "_blank",
1585
- children: t("neetoWebhooks.webhook.emptyHelpText")
1589
+ style: "link",
1590
+ target: "_blank"
1586
1591
  }),
1587
1592
  primaryButtonProps: {
1588
1593
  label: t("neetoWebhooks.webhook.add"),
@@ -1627,8 +1632,11 @@ var NeetoWebhooks = function NeetoWebhooks(_ref) {
1627
1632
  entityId = _ref.entityId,
1628
1633
  _ref$breadcrumbs = _ref.breadcrumbs,
1629
1634
  breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
1635
+ title = _ref.title,
1630
1636
  onCreate = _ref.onCreate,
1631
- onDelete = _ref.onDelete;
1637
+ onDelete = _ref.onDelete,
1638
+ headerSize = _ref.headerSize,
1639
+ containerClassName = _ref.containerClassName;
1632
1640
  var _useRouteMatch = useRouteMatch(),
1633
1641
  webhooksPath = _useRouteMatch.path,
1634
1642
  webhooksUrl = _useRouteMatch.url;
@@ -1641,11 +1649,14 @@ var NeetoWebhooks = function NeetoWebhooks(_ref) {
1641
1649
  component: function component() {
1642
1650
  return /*#__PURE__*/jsx(Webhooks$1, {
1643
1651
  breadcrumbs: breadcrumbs,
1652
+ containerClassName: containerClassName,
1644
1653
  deliveriesPath: deliveriesPath,
1645
1654
  entityId: entityId,
1646
1655
  entityType: entityType,
1656
+ headerSize: headerSize,
1647
1657
  onCreate: onCreate,
1648
- onDelete: onDelete
1658
+ onDelete: onDelete,
1659
+ title: title
1649
1660
  });
1650
1661
  }
1651
1662
  }), /*#__PURE__*/jsx(Route, {