@bigbinary/neeto-webhooks-frontend 1.6.13 → 1.6.14

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,12 +1,13 @@
1
1
  import React, { useState, useRef, useEffect, useCallback } from 'react';
2
- import { useParams, useRouteMatch, Switch as Switch$1, Route } from 'react-router-dom';
3
- import { isPresent, removeBy, isNotEmpty, removeById, findBy } from '@bigbinary/neeto-cist';
2
+ import { useRouteMatch, useHistory, useParams, Switch as Switch$1, Route } from 'react-router-dom';
3
+ import { isNotPresent, isPresent, removeBy, isNotEmpty, removeById, findBy } from '@bigbinary/neeto-cist';
4
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';
5
6
  import Container from '@bigbinary/neeto-molecules/Container';
6
7
  import Header$2 from '@bigbinary/neeto-molecules/Header';
7
8
  import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
8
9
  import TableWrapper from '@bigbinary/neeto-molecules/TableWrapper';
9
- import { Spinner, Typography, Tag, Tab, Pane, Button, Table, NoData, Alert } from '@bigbinary/neetoui';
10
+ import { Typography, Tag, Tab, Pane, Button, Table, NoData, Spinner, Alert } from '@bigbinary/neetoui';
10
11
  import { useTranslation, Trans } from 'react-i18next';
11
12
  import { QueryClient, QueryCache, QueryClientProvider, useQuery, useQueryClient, useMutation } from 'react-query';
12
13
  import { ReactQueryDevtools } from 'react-query/devtools';
@@ -17,12 +18,14 @@ import { prop, pluck, assoc } from 'ramda';
17
18
  import { Info, Plus } from '@bigbinary/neeto-icons';
18
19
  import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
19
20
  import { Form, Textarea, Select, Input, Switch, ActionBlock } from '@bigbinary/neetoui/formik';
20
- import { buildUrl } from '@bigbinary/neeto-commons-frontend/utils';
21
21
  import * as yup from 'yup';
22
22
 
23
23
  var getDeliveriesPath = function getDeliveriesPath(webhooksPath) {
24
24
  return "".concat(webhooksPath, "/:webhookId/deliveries");
25
25
  };
26
+ var getDeliveryDetailsPath = function getDeliveryDetailsPath(deliveriesPath) {
27
+ return "".concat(deliveriesPath, "/:deliveryId/");
28
+ };
26
29
 
27
30
  function _arrayLikeToArray(arr, len) {
28
31
  if (len == null || len > arr.length) len = arr.length;
@@ -157,7 +160,8 @@ var useShowDelivery = function useShowDelivery(id) {
157
160
  return useQuery([QUERY_KEYS.DELIVERY_DETAILS, id], function () {
158
161
  return deliveriesApi.show(id);
159
162
  }, {
160
- staleTime: DELIVERY_STALE_TIME
163
+ staleTime: DELIVERY_STALE_TIME,
164
+ enabled: !!id
161
165
  });
162
166
  };
163
167
  var useRedeliverWebhook = function useRedeliverWebhook() {
@@ -572,30 +576,18 @@ var Snippet = function Snippet(_ref) {
572
576
 
573
577
  var TransactionDetails = function TransactionDetails(_ref) {
574
578
  var delivery = _ref.delivery;
575
- var deliveryId = delivery.id,
576
- status = delivery.status,
577
- identifier = delivery.identifier,
578
- responseStatusCode = delivery.responseStatusCode;
579
579
  var _useState = useState(DELIVERY_TAB.request),
580
580
  _useState2 = _slicedToArray(_useState, 2),
581
581
  activeHeader = _useState2[0],
582
582
  setActiveHeader = _useState2[1];
583
583
  var _useTranslation = useTranslation(),
584
584
  t = _useTranslation.t;
585
- var _useShowDelivery = useShowDelivery(deliveryId),
586
- isLoading = _useShowDelivery.isLoading,
587
- _useShowDelivery$data = _useShowDelivery.data,
588
- _useShowDelivery$data2 = _useShowDelivery$data === void 0 ? {} : _useShowDelivery$data,
589
- _useShowDelivery$data3 = _useShowDelivery$data2.delivery,
590
- deliveryDetails = _useShowDelivery$data3 === void 0 ? {} : _useShowDelivery$data3;
591
- if (isLoading) {
592
- return /*#__PURE__*/React.createElement("div", {
593
- className: "flex w-full items-center justify-center py-6"
594
- }, /*#__PURE__*/React.createElement(Spinner, null));
595
- }
585
+ var status = delivery.status,
586
+ identifier = delivery.identifier,
587
+ responseStatusCode = delivery.responseStatusCode;
596
588
  var renderPayload = function renderPayload() {
597
589
  try {
598
- return JSON.stringify(JSON.parse(deliveryDetails.requestBody), null, 2);
590
+ return JSON.stringify(JSON.parse(delivery.requestBody), null, 2);
599
591
  } catch (_unused) {
600
592
  return "";
601
593
  }
@@ -636,7 +628,7 @@ var TransactionDetails = function TransactionDetails(_ref) {
636
628
  style: "h5"
637
629
  }, t("neetoWebhooks.delivery.header")), /*#__PURE__*/React.createElement(Snippet, {
638
630
  dataCy: "delivery-request-header"
639
- }, deliveryDetails.requestHeader)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Typography, {
631
+ }, delivery.requestHeader)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Typography, {
640
632
  style: "h5"
641
633
  }, t("neetoWebhooks.delivery.payload")), /*#__PURE__*/React.createElement(Snippet, {
642
634
  dataCy: "delivery-request-payload"
@@ -646,31 +638,33 @@ var TransactionDetails = function TransactionDetails(_ref) {
646
638
  style: "h5"
647
639
  }, t("neetoWebhooks.delivery.header")), /*#__PURE__*/React.createElement(Snippet, {
648
640
  dataCy: "delivery-response-header"
649
- }, deliveryDetails.responseHeader)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Typography, {
641
+ }, delivery.responseHeader)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Typography, {
650
642
  style: "h5"
651
643
  }, t("neetoWebhooks.delivery.body")), /*#__PURE__*/React.createElement(Snippet, {
652
644
  dataCy: "delivery-response-body"
653
- }, deliveryDetails.responseBody)))));
645
+ }, delivery.responseBody)))));
654
646
  };
655
647
 
656
648
  var Details = function Details(_ref) {
657
- var delivery = _ref.delivery,
658
- onClose = _ref.onClose;
659
- var createdAt = delivery.createdAt,
660
- id = delivery.id,
661
- event = delivery.event;
649
+ var onClose = _ref.onClose,
650
+ deliveryId = _ref.deliveryId;
662
651
  var _useTranslation = useTranslation(),
663
652
  t = _useTranslation.t;
664
653
  var _useRedeliverWebhook = useRedeliverWebhook(),
665
654
  isRedelivering = _useRedeliverWebhook.isLoading,
666
655
  redeliverWebhook = _useRedeliverWebhook.mutateAsync;
656
+ var _useShowDelivery = useShowDelivery(deliveryId),
657
+ isLoading = _useShowDelivery.isLoading,
658
+ _useShowDelivery$data = _useShowDelivery.data,
659
+ _useShowDelivery$data2 = _useShowDelivery$data === void 0 ? {} : _useShowDelivery$data,
660
+ delivery = _useShowDelivery$data2.delivery;
667
661
  var handleRedeliverClick = /*#__PURE__*/function () {
668
662
  var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
669
663
  return _regeneratorRuntime.wrap(function _callee$(_context) {
670
664
  while (1) switch (_context.prev = _context.next) {
671
665
  case 0:
672
666
  _context.next = 2;
673
- return redeliverWebhook(id);
667
+ return redeliverWebhook(deliveryId);
674
668
  case 2:
675
669
  case "end":
676
670
  return _context.stop();
@@ -681,12 +675,15 @@ var Details = function Details(_ref) {
681
675
  return _ref2.apply(this, arguments);
682
676
  };
683
677
  }();
678
+ if (isNotPresent(delivery)) {
679
+ return null;
680
+ }
684
681
  return /*#__PURE__*/React.createElement(Pane, {
685
- isOpen: isPresent(delivery),
686
- size: "large",
687
- onClose: onClose
688
- }, /*#__PURE__*/React.createElement(Pane.Header, null, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DateFormat.Date, {
689
- date: createdAt,
682
+ onClose: onClose,
683
+ isOpen: isPresent(deliveryId),
684
+ size: "large"
685
+ }, /*#__PURE__*/React.createElement(React.Fragment, null, isLoading ? /*#__PURE__*/React.createElement(PageLoader, null) : /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Pane.Header, null, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DateFormat.Date, {
686
+ date: delivery.createdAt,
690
687
  tooltipProps: {
691
688
  disabled: true
692
689
  },
@@ -695,7 +692,7 @@ var Details = function Details(_ref) {
695
692
  weight: "semibold"
696
693
  }
697
694
  }), /*#__PURE__*/React.createElement("span", null, " \u2022 "), /*#__PURE__*/React.createElement(DateFormat.Time, {
698
- date: createdAt,
695
+ date: delivery.createdAt,
699
696
  tooltipProps: {
700
697
  disabled: true
701
698
  },
@@ -717,7 +714,7 @@ var Details = function Details(_ref) {
717
714
  label: t("neetoWebhooks.buttons.cancel"),
718
715
  style: "text",
719
716
  onClick: onClose
720
- })));
717
+ })))));
721
718
  };
722
719
 
723
720
  var buildColumns$1 = function buildColumns(_ref) {
@@ -734,7 +731,7 @@ var buildColumns$1 = function buildColumns(_ref) {
734
731
  style: "link",
735
732
  weight: "semibold",
736
733
  onClick: function onClick() {
737
- return handleDetailsClick(delivery);
734
+ return handleDetailsClick(delivery.sid);
738
735
  }
739
736
  }, delivery.identifier), delivery.redelivery && /*#__PURE__*/React.createElement(Tag, {
740
737
  style: "info"
@@ -784,14 +781,16 @@ var Deliveries = function Deliveries(_ref) {
784
781
  _useState2 = _slicedToArray(_useState, 2),
785
782
  pageNumber = _useState2[0],
786
783
  setPageNumber = _useState2[1];
787
- var _useState3 = useState({}),
788
- _useState4 = _slicedToArray(_useState3, 2),
789
- selectedDelivery = _useState4[0],
790
- setSelectedDelivery = _useState4[1];
784
+ var _useRouteMatch = useRouteMatch(),
785
+ deliveriesUrl = _useRouteMatch.url;
786
+ var history = useHistory();
791
787
  var _useTranslation = useTranslation(),
792
788
  t = _useTranslation.t;
793
789
  var _useParams = useParams(),
794
- webhookId = _useParams.webhookId;
790
+ webhookId = _useParams.webhookId,
791
+ deliveryId = _useParams.deliveryId;
792
+ var deliveriesPath = getDeliveriesPath(webhooksUrl);
793
+ var deliveryDetailsPath = getDeliveryDetailsPath(deliveriesUrl);
795
794
  var _useFetchDeliveries = useFetchDeliveries({
796
795
  sid: webhookId,
797
796
  page: pageNumber,
@@ -815,6 +814,16 @@ var Deliveries = function Deliveries(_ref) {
815
814
  link: window.location.pathname,
816
815
  text: endpoint
817
816
  }]);
817
+ var handleDetailsClick = function handleDetailsClick(sid) {
818
+ return history.push(buildUrl(deliveryDetailsPath, {
819
+ deliveryId: sid
820
+ }));
821
+ };
822
+ var handleClose = function handleClose() {
823
+ history.push(buildUrl(deliveriesPath, {
824
+ webhookId: webhookId
825
+ }));
826
+ };
818
827
  if (isLoading) return /*#__PURE__*/React.createElement(PageLoader, null);
819
828
  return /*#__PURE__*/React.createElement(Container, {
820
829
  className: "w-full"
@@ -826,26 +835,22 @@ var Deliveries = function Deliveries(_ref) {
826
835
  }, /*#__PURE__*/React.createElement(Table, {
827
836
  totalCount: totalCount,
828
837
  fixedHeight: true,
838
+ columnData: buildColumns$1({
839
+ handleDetailsClick: handleDetailsClick
840
+ }),
829
841
  currentPageNumber: pageNumber,
830
842
  defaultPageSize: DEFAULT_PAGE_SIZE,
831
- handlePageChange: function handlePageChange(page) {
832
- return setPageNumber(page);
833
- },
843
+ handlePageChange: setPageNumber,
834
844
  loading: isFetching,
835
- rowData: deliveries,
836
- columnData: buildColumns$1({
837
- handleDetailsClick: setSelectedDelivery
838
- })
845
+ rowData: deliveries
839
846
  })) : /*#__PURE__*/React.createElement("div", {
840
847
  className: "flex h-full w-full items-center justify-center"
841
848
  }, /*#__PURE__*/React.createElement(NoData, {
842
849
  description: t("neetoWebhooks.delivery.empty.description"),
843
850
  title: t("neetoWebhooks.delivery.empty.title")
844
851
  })), /*#__PURE__*/React.createElement(Details, {
845
- delivery: selectedDelivery,
846
- onClose: function onClose() {
847
- return setSelectedDelivery({});
848
- }
852
+ deliveryId: deliveryId,
853
+ onClose: handleClose
849
854
  }));
850
855
  };
851
856
  var Deliveries$1 = withReactQuery(Deliveries);
@@ -1514,6 +1519,7 @@ var NeetoWebhooks = function NeetoWebhooks(_ref) {
1514
1519
  webhooksPath = _useRouteMatch.path,
1515
1520
  webhooksUrl = _useRouteMatch.url;
1516
1521
  var deliveriesPath = getDeliveriesPath(webhooksUrl);
1522
+ var deliveryDetailsPath = getDeliveryDetailsPath(deliveriesPath);
1517
1523
  return /*#__PURE__*/React.createElement(Switch$1, null, /*#__PURE__*/React.createElement(Route, {
1518
1524
  exact: true,
1519
1525
  path: webhooksPath,
@@ -1527,6 +1533,15 @@ var NeetoWebhooks = function NeetoWebhooks(_ref) {
1527
1533
  onDelete: onDelete
1528
1534
  });
1529
1535
  }
1536
+ }), /*#__PURE__*/React.createElement(Route, {
1537
+ exact: true,
1538
+ path: deliveryDetailsPath,
1539
+ render: function render() {
1540
+ return /*#__PURE__*/React.createElement(Deliveries$1, {
1541
+ breadcrumbs: breadcrumbs,
1542
+ webhooksUrl: webhooksUrl
1543
+ });
1544
+ }
1530
1545
  }), /*#__PURE__*/React.createElement(Route, {
1531
1546
  component: function component() {
1532
1547
  return /*#__PURE__*/React.createElement(Deliveries$1, {