@bigbinary/neeto-webhooks-frontend 1.6.13 → 1.6.15
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/app/javascript/src/translations/en.json +5 -1
- package/dist/index.cjs.js +85 -74
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +89 -79
- package/dist/index.js.map +1 -1
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -1,28 +1,32 @@
|
|
|
1
1
|
import React, { useState, useRef, useEffect, useCallback } from 'react';
|
|
2
|
-
import {
|
|
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 {
|
|
10
|
-
import { useTranslation
|
|
10
|
+
import { Typography, Tag, Tab, Pane, Button, Table, NoData, Spinner, Alert } from '@bigbinary/neetoui';
|
|
11
|
+
import { useTranslation } from 'react-i18next';
|
|
11
12
|
import { QueryClient, QueryCache, QueryClientProvider, useQuery, useQueryClient, useMutation } from 'react-query';
|
|
12
13
|
import { ReactQueryDevtools } from 'react-query/devtools';
|
|
13
14
|
import axios from 'axios';
|
|
14
15
|
import DateFormat from '@bigbinary/neeto-molecules/DateFormat';
|
|
15
16
|
import { t as t$1 } from 'i18next';
|
|
16
17
|
import { prop, pluck, assoc } from 'ramda';
|
|
17
|
-
import {
|
|
18
|
+
import { Plus } from '@bigbinary/neeto-icons';
|
|
19
|
+
import HelpPopover from '@bigbinary/neeto-molecules/HelpPopover';
|
|
18
20
|
import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
|
|
19
21
|
import { Form, Textarea, Select, Input, Switch, ActionBlock } from '@bigbinary/neetoui/formik';
|
|
20
|
-
import { buildUrl } from '@bigbinary/neeto-commons-frontend/utils';
|
|
21
22
|
import * as yup from 'yup';
|
|
22
23
|
|
|
23
24
|
var getDeliveriesPath = function getDeliveriesPath(webhooksPath) {
|
|
24
25
|
return "".concat(webhooksPath, "/:webhookId/deliveries");
|
|
25
26
|
};
|
|
27
|
+
var getDeliveryDetailsPath = function getDeliveryDetailsPath(deliveriesPath) {
|
|
28
|
+
return "".concat(deliveriesPath, "/:deliveryId/");
|
|
29
|
+
};
|
|
26
30
|
|
|
27
31
|
function _arrayLikeToArray(arr, len) {
|
|
28
32
|
if (len == null || len > arr.length) len = arr.length;
|
|
@@ -157,7 +161,8 @@ var useShowDelivery = function useShowDelivery(id) {
|
|
|
157
161
|
return useQuery([QUERY_KEYS.DELIVERY_DETAILS, id], function () {
|
|
158
162
|
return deliveriesApi.show(id);
|
|
159
163
|
}, {
|
|
160
|
-
staleTime: DELIVERY_STALE_TIME
|
|
164
|
+
staleTime: DELIVERY_STALE_TIME,
|
|
165
|
+
enabled: !!id
|
|
161
166
|
});
|
|
162
167
|
};
|
|
163
168
|
var useRedeliverWebhook = function useRedeliverWebhook() {
|
|
@@ -572,30 +577,18 @@ var Snippet = function Snippet(_ref) {
|
|
|
572
577
|
|
|
573
578
|
var TransactionDetails = function TransactionDetails(_ref) {
|
|
574
579
|
var delivery = _ref.delivery;
|
|
575
|
-
var deliveryId = delivery.id,
|
|
576
|
-
status = delivery.status,
|
|
577
|
-
identifier = delivery.identifier,
|
|
578
|
-
responseStatusCode = delivery.responseStatusCode;
|
|
579
580
|
var _useState = useState(DELIVERY_TAB.request),
|
|
580
581
|
_useState2 = _slicedToArray(_useState, 2),
|
|
581
582
|
activeHeader = _useState2[0],
|
|
582
583
|
setActiveHeader = _useState2[1];
|
|
583
584
|
var _useTranslation = useTranslation(),
|
|
584
585
|
t = _useTranslation.t;
|
|
585
|
-
var
|
|
586
|
-
|
|
587
|
-
|
|
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
|
-
}
|
|
586
|
+
var status = delivery.status,
|
|
587
|
+
identifier = delivery.identifier,
|
|
588
|
+
responseStatusCode = delivery.responseStatusCode;
|
|
596
589
|
var renderPayload = function renderPayload() {
|
|
597
590
|
try {
|
|
598
|
-
return JSON.stringify(JSON.parse(
|
|
591
|
+
return JSON.stringify(JSON.parse(delivery.requestBody), null, 2);
|
|
599
592
|
} catch (_unused) {
|
|
600
593
|
return "";
|
|
601
594
|
}
|
|
@@ -636,7 +629,7 @@ var TransactionDetails = function TransactionDetails(_ref) {
|
|
|
636
629
|
style: "h5"
|
|
637
630
|
}, t("neetoWebhooks.delivery.header")), /*#__PURE__*/React.createElement(Snippet, {
|
|
638
631
|
dataCy: "delivery-request-header"
|
|
639
|
-
},
|
|
632
|
+
}, delivery.requestHeader)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Typography, {
|
|
640
633
|
style: "h5"
|
|
641
634
|
}, t("neetoWebhooks.delivery.payload")), /*#__PURE__*/React.createElement(Snippet, {
|
|
642
635
|
dataCy: "delivery-request-payload"
|
|
@@ -646,31 +639,33 @@ var TransactionDetails = function TransactionDetails(_ref) {
|
|
|
646
639
|
style: "h5"
|
|
647
640
|
}, t("neetoWebhooks.delivery.header")), /*#__PURE__*/React.createElement(Snippet, {
|
|
648
641
|
dataCy: "delivery-response-header"
|
|
649
|
-
},
|
|
642
|
+
}, delivery.responseHeader)), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(Typography, {
|
|
650
643
|
style: "h5"
|
|
651
644
|
}, t("neetoWebhooks.delivery.body")), /*#__PURE__*/React.createElement(Snippet, {
|
|
652
645
|
dataCy: "delivery-response-body"
|
|
653
|
-
},
|
|
646
|
+
}, delivery.responseBody)))));
|
|
654
647
|
};
|
|
655
648
|
|
|
656
649
|
var Details = function Details(_ref) {
|
|
657
|
-
var
|
|
658
|
-
|
|
659
|
-
var createdAt = delivery.createdAt,
|
|
660
|
-
id = delivery.id,
|
|
661
|
-
event = delivery.event;
|
|
650
|
+
var onClose = _ref.onClose,
|
|
651
|
+
deliveryId = _ref.deliveryId;
|
|
662
652
|
var _useTranslation = useTranslation(),
|
|
663
653
|
t = _useTranslation.t;
|
|
664
654
|
var _useRedeliverWebhook = useRedeliverWebhook(),
|
|
665
655
|
isRedelivering = _useRedeliverWebhook.isLoading,
|
|
666
656
|
redeliverWebhook = _useRedeliverWebhook.mutateAsync;
|
|
657
|
+
var _useShowDelivery = useShowDelivery(deliveryId),
|
|
658
|
+
isLoading = _useShowDelivery.isLoading,
|
|
659
|
+
_useShowDelivery$data = _useShowDelivery.data,
|
|
660
|
+
_useShowDelivery$data2 = _useShowDelivery$data === void 0 ? {} : _useShowDelivery$data,
|
|
661
|
+
delivery = _useShowDelivery$data2.delivery;
|
|
667
662
|
var handleRedeliverClick = /*#__PURE__*/function () {
|
|
668
663
|
var _ref2 = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
669
664
|
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
670
665
|
while (1) switch (_context.prev = _context.next) {
|
|
671
666
|
case 0:
|
|
672
667
|
_context.next = 2;
|
|
673
|
-
return redeliverWebhook(
|
|
668
|
+
return redeliverWebhook(deliveryId);
|
|
674
669
|
case 2:
|
|
675
670
|
case "end":
|
|
676
671
|
return _context.stop();
|
|
@@ -681,12 +676,15 @@ var Details = function Details(_ref) {
|
|
|
681
676
|
return _ref2.apply(this, arguments);
|
|
682
677
|
};
|
|
683
678
|
}();
|
|
679
|
+
if (isNotPresent(delivery)) {
|
|
680
|
+
return null;
|
|
681
|
+
}
|
|
684
682
|
return /*#__PURE__*/React.createElement(Pane, {
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
}, /*#__PURE__*/React.createElement(Pane.Header, null, /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(DateFormat.Date, {
|
|
689
|
-
date: createdAt,
|
|
683
|
+
onClose: onClose,
|
|
684
|
+
isOpen: isPresent(deliveryId),
|
|
685
|
+
size: "large"
|
|
686
|
+
}, /*#__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, {
|
|
687
|
+
date: delivery.createdAt,
|
|
690
688
|
tooltipProps: {
|
|
691
689
|
disabled: true
|
|
692
690
|
},
|
|
@@ -695,7 +693,7 @@ var Details = function Details(_ref) {
|
|
|
695
693
|
weight: "semibold"
|
|
696
694
|
}
|
|
697
695
|
}), /*#__PURE__*/React.createElement("span", null, " \u2022 "), /*#__PURE__*/React.createElement(DateFormat.Time, {
|
|
698
|
-
date: createdAt,
|
|
696
|
+
date: delivery.createdAt,
|
|
699
697
|
tooltipProps: {
|
|
700
698
|
disabled: true
|
|
701
699
|
},
|
|
@@ -717,7 +715,7 @@ var Details = function Details(_ref) {
|
|
|
717
715
|
label: t("neetoWebhooks.buttons.cancel"),
|
|
718
716
|
style: "text",
|
|
719
717
|
onClick: onClose
|
|
720
|
-
})));
|
|
718
|
+
})))));
|
|
721
719
|
};
|
|
722
720
|
|
|
723
721
|
var buildColumns$1 = function buildColumns(_ref) {
|
|
@@ -734,7 +732,7 @@ var buildColumns$1 = function buildColumns(_ref) {
|
|
|
734
732
|
style: "link",
|
|
735
733
|
weight: "semibold",
|
|
736
734
|
onClick: function onClick() {
|
|
737
|
-
return handleDetailsClick(delivery);
|
|
735
|
+
return handleDetailsClick(delivery.sid);
|
|
738
736
|
}
|
|
739
737
|
}, delivery.identifier), delivery.redelivery && /*#__PURE__*/React.createElement(Tag, {
|
|
740
738
|
style: "info"
|
|
@@ -784,14 +782,16 @@ var Deliveries = function Deliveries(_ref) {
|
|
|
784
782
|
_useState2 = _slicedToArray(_useState, 2),
|
|
785
783
|
pageNumber = _useState2[0],
|
|
786
784
|
setPageNumber = _useState2[1];
|
|
787
|
-
var
|
|
788
|
-
|
|
789
|
-
|
|
790
|
-
setSelectedDelivery = _useState4[1];
|
|
785
|
+
var _useRouteMatch = useRouteMatch(),
|
|
786
|
+
deliveriesUrl = _useRouteMatch.url;
|
|
787
|
+
var history = useHistory();
|
|
791
788
|
var _useTranslation = useTranslation(),
|
|
792
789
|
t = _useTranslation.t;
|
|
793
790
|
var _useParams = useParams(),
|
|
794
|
-
webhookId = _useParams.webhookId
|
|
791
|
+
webhookId = _useParams.webhookId,
|
|
792
|
+
deliveryId = _useParams.deliveryId;
|
|
793
|
+
var deliveriesPath = getDeliveriesPath(webhooksUrl);
|
|
794
|
+
var deliveryDetailsPath = getDeliveryDetailsPath(deliveriesUrl);
|
|
795
795
|
var _useFetchDeliveries = useFetchDeliveries({
|
|
796
796
|
sid: webhookId,
|
|
797
797
|
page: pageNumber,
|
|
@@ -815,6 +815,16 @@ var Deliveries = function Deliveries(_ref) {
|
|
|
815
815
|
link: window.location.pathname,
|
|
816
816
|
text: endpoint
|
|
817
817
|
}]);
|
|
818
|
+
var handleDetailsClick = function handleDetailsClick(sid) {
|
|
819
|
+
return history.push(buildUrl(deliveryDetailsPath, {
|
|
820
|
+
deliveryId: sid
|
|
821
|
+
}));
|
|
822
|
+
};
|
|
823
|
+
var handleClose = function handleClose() {
|
|
824
|
+
history.push(buildUrl(deliveriesPath, {
|
|
825
|
+
webhookId: webhookId
|
|
826
|
+
}));
|
|
827
|
+
};
|
|
818
828
|
if (isLoading) return /*#__PURE__*/React.createElement(PageLoader, null);
|
|
819
829
|
return /*#__PURE__*/React.createElement(Container, {
|
|
820
830
|
className: "w-full"
|
|
@@ -826,26 +836,22 @@ var Deliveries = function Deliveries(_ref) {
|
|
|
826
836
|
}, /*#__PURE__*/React.createElement(Table, {
|
|
827
837
|
totalCount: totalCount,
|
|
828
838
|
fixedHeight: true,
|
|
839
|
+
columnData: buildColumns$1({
|
|
840
|
+
handleDetailsClick: handleDetailsClick
|
|
841
|
+
}),
|
|
829
842
|
currentPageNumber: pageNumber,
|
|
830
843
|
defaultPageSize: DEFAULT_PAGE_SIZE,
|
|
831
|
-
handlePageChange:
|
|
832
|
-
return setPageNumber(page);
|
|
833
|
-
},
|
|
844
|
+
handlePageChange: setPageNumber,
|
|
834
845
|
loading: isFetching,
|
|
835
|
-
rowData: deliveries
|
|
836
|
-
columnData: buildColumns$1({
|
|
837
|
-
handleDetailsClick: setSelectedDelivery
|
|
838
|
-
})
|
|
846
|
+
rowData: deliveries
|
|
839
847
|
})) : /*#__PURE__*/React.createElement("div", {
|
|
840
848
|
className: "flex h-full w-full items-center justify-center"
|
|
841
849
|
}, /*#__PURE__*/React.createElement(NoData, {
|
|
842
850
|
description: t("neetoWebhooks.delivery.empty.description"),
|
|
843
851
|
title: t("neetoWebhooks.delivery.empty.title")
|
|
844
852
|
})), /*#__PURE__*/React.createElement(Details, {
|
|
845
|
-
|
|
846
|
-
onClose:
|
|
847
|
-
return setSelectedDelivery({});
|
|
848
|
-
}
|
|
853
|
+
deliveryId: deliveryId,
|
|
854
|
+
onClose: handleClose
|
|
849
855
|
}));
|
|
850
856
|
};
|
|
851
857
|
var Deliveries$1 = withReactQuery(Deliveries);
|
|
@@ -1246,19 +1252,18 @@ var AddWebhookPane = function AddWebhookPane(_ref) {
|
|
|
1246
1252
|
onClose: onClose,
|
|
1247
1253
|
initialFocusRef: endpointRef
|
|
1248
1254
|
}, /*#__PURE__*/React.createElement(Pane.Header, {
|
|
1249
|
-
className: "flex items-center
|
|
1255
|
+
className: "flex items-center gap-x-2"
|
|
1250
1256
|
}, /*#__PURE__*/React.createElement(Typography, {
|
|
1251
1257
|
"data-cy": "add-new-webhook-pane-header",
|
|
1252
1258
|
style: "h2",
|
|
1253
1259
|
weight: "semibold"
|
|
1254
|
-
}, editingWebhookId ? t("neetoWebhooks.webhook.edit") : t("neetoWebhooks.webhook.add")), /*#__PURE__*/React.createElement(
|
|
1255
|
-
|
|
1256
|
-
|
|
1257
|
-
|
|
1258
|
-
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
}))), /*#__PURE__*/React.createElement(Form, {
|
|
1260
|
+
}, editingWebhookId ? t("neetoWebhooks.webhook.edit") : t("neetoWebhooks.webhook.add")), /*#__PURE__*/React.createElement(HelpPopover, {
|
|
1261
|
+
description: t("neetoWebhooks.webhook.helpDescription"),
|
|
1262
|
+
helpLinkProps: {
|
|
1263
|
+
href: WEBHOOK_HELP_URL
|
|
1264
|
+
},
|
|
1265
|
+
title: t("neetoWebhooks.webhook.title")
|
|
1266
|
+
})), /*#__PURE__*/React.createElement(Form, {
|
|
1262
1267
|
formikProps: {
|
|
1263
1268
|
enableReinitialize: true,
|
|
1264
1269
|
validationSchema: getValidationSchema(webhooks),
|
|
@@ -1298,20 +1303,15 @@ var AddWebhookPane = function AddWebhookPane(_ref) {
|
|
|
1298
1303
|
}, /*#__PURE__*/React.createElement(Input, {
|
|
1299
1304
|
"data-cy": "secret-key-input-field",
|
|
1300
1305
|
name: "secret",
|
|
1301
|
-
label: /*#__PURE__*/React.createElement(
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
|
|
1305
|
-
|
|
1306
|
-
|
|
1307
|
-
|
|
1308
|
-
|
|
1309
|
-
|
|
1310
|
-
className: "neeto-ui-text-primary-800 mt-0.5 cursor-pointer",
|
|
1311
|
-
size: 20
|
|
1312
|
-
})
|
|
1313
|
-
}
|
|
1314
|
-
}),
|
|
1306
|
+
label: /*#__PURE__*/React.createElement("span", {
|
|
1307
|
+
className: "flex items-center gap-x-2"
|
|
1308
|
+
}, t("neetoWebhooks.webhook.secret"), /*#__PURE__*/React.createElement(HelpPopover, {
|
|
1309
|
+
helpLinkProps: {
|
|
1310
|
+
href: WEBHOOK_SECRETS_HELP_URL
|
|
1311
|
+
},
|
|
1312
|
+
description: t("neetoWebhooks.webhook.secretkeyHelpDescription"),
|
|
1313
|
+
title: t("neetoWebhooks.webhook.secretkeyHelpTitle")
|
|
1314
|
+
})),
|
|
1315
1315
|
placeholder: t("neetoWebhooks.webhook.secretPlaceholder")
|
|
1316
1316
|
}), /*#__PURE__*/React.createElement("div", {
|
|
1317
1317
|
className: "mt-6"
|
|
@@ -1514,6 +1514,7 @@ var NeetoWebhooks = function NeetoWebhooks(_ref) {
|
|
|
1514
1514
|
webhooksPath = _useRouteMatch.path,
|
|
1515
1515
|
webhooksUrl = _useRouteMatch.url;
|
|
1516
1516
|
var deliveriesPath = getDeliveriesPath(webhooksUrl);
|
|
1517
|
+
var deliveryDetailsPath = getDeliveryDetailsPath(deliveriesPath);
|
|
1517
1518
|
return /*#__PURE__*/React.createElement(Switch$1, null, /*#__PURE__*/React.createElement(Route, {
|
|
1518
1519
|
exact: true,
|
|
1519
1520
|
path: webhooksPath,
|
|
@@ -1527,6 +1528,15 @@ var NeetoWebhooks = function NeetoWebhooks(_ref) {
|
|
|
1527
1528
|
onDelete: onDelete
|
|
1528
1529
|
});
|
|
1529
1530
|
}
|
|
1531
|
+
}), /*#__PURE__*/React.createElement(Route, {
|
|
1532
|
+
exact: true,
|
|
1533
|
+
path: deliveryDetailsPath,
|
|
1534
|
+
render: function render() {
|
|
1535
|
+
return /*#__PURE__*/React.createElement(Deliveries$1, {
|
|
1536
|
+
breadcrumbs: breadcrumbs,
|
|
1537
|
+
webhooksUrl: webhooksUrl
|
|
1538
|
+
});
|
|
1539
|
+
}
|
|
1530
1540
|
}), /*#__PURE__*/React.createElement(Route, {
|
|
1531
1541
|
component: function component() {
|
|
1532
1542
|
return /*#__PURE__*/React.createElement(Deliveries$1, {
|