@bigbinary/neeto-webhooks-frontend 3.0.11 → 3.0.13
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/README.md +0 -1
- package/dist/.ready +1 -0
- package/dist/NeetoWebhooks.js +40 -294
- package/dist/NeetoWebhooks.js.map +1 -1
- package/dist/cjs/NeetoWebhooks.js +26 -280
- package/dist/cjs/NeetoWebhooks.js.map +1 -1
- package/dist/cjs/index.js +5 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/v2/NeetoWebhooks.js +1207 -0
- package/dist/cjs/v2/NeetoWebhooks.js.map +1 -0
- package/dist/cjs/v2/index.js +42 -0
- package/dist/cjs/v2/index.js.map +1 -0
- package/dist/index.js +5 -4
- package/dist/index.js.map +1 -1
- package/dist/main-B8V9tERH.js +279 -0
- package/dist/main-B8V9tERH.js.map +1 -0
- package/dist/main-CfvmjDDj.js +264 -0
- package/dist/main-CfvmjDDj.js.map +1 -0
- package/dist/v2/NeetoWebhooks.js +1186 -0
- package/dist/v2/NeetoWebhooks.js.map +1 -0
- package/dist/v2/index.js +36 -0
- package/dist/v2/index.js.map +1 -0
- package/package.json +43 -32
|
@@ -0,0 +1,1207 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var ramda = require('ramda');
|
|
4
|
+
var reactRouterDom = require('react-router-dom');
|
|
5
|
+
var main = require('../../main-B8V9tERH.js');
|
|
6
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
7
|
+
var neetoAtoms = require('@bigbinary/neeto-atoms');
|
|
8
|
+
var lucideReact = require('lucide-react');
|
|
9
|
+
var neetoCist = require('@bigbinary/neeto-cist');
|
|
10
|
+
var constants = require('@bigbinary/neeto-commons-frontend/v2/constants');
|
|
11
|
+
var reactUtils = require('@bigbinary/neeto-commons-frontend/v2/react-utils');
|
|
12
|
+
var utils = require('@bigbinary/neeto-commons-frontend/v2/utils');
|
|
13
|
+
var Container = require('@bigbinary/neeto-molecules/v2/Container');
|
|
14
|
+
var Header$2 = require('@bigbinary/neeto-molecules/v2/Header');
|
|
15
|
+
var TableWrapper = require('@bigbinary/neeto-molecules/v2/TableWrapper');
|
|
16
|
+
var reactI18next = require('react-i18next');
|
|
17
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
18
|
+
var reactQuery = require('@tanstack/react-query');
|
|
19
|
+
var reactQueryDevtools = require('@tanstack/react-query-devtools');
|
|
20
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
21
|
+
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
22
|
+
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
23
|
+
var DateFormat = require('@bigbinary/neeto-molecules/v2/DateFormat');
|
|
24
|
+
var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
|
|
25
|
+
var react = require('react');
|
|
26
|
+
var i18next = require('i18next');
|
|
27
|
+
var formik = require('@bigbinary/neeto-atoms/formik');
|
|
28
|
+
var formik$1 = require('formik');
|
|
29
|
+
var HelpPopover = require('@bigbinary/neeto-molecules/v2/HelpPopover');
|
|
30
|
+
var MoreDropdown = require('@bigbinary/neeto-molecules/v2/MoreDropdown');
|
|
31
|
+
var yup = require('yup');
|
|
32
|
+
var SubHeader = require('@bigbinary/neeto-molecules/v2/SubHeader');
|
|
33
|
+
require('@bigbinary/neeto-commons-frontend/initializers');
|
|
34
|
+
require('@bigbinary/neeto-commons-frontend/constants');
|
|
35
|
+
require('axios');
|
|
36
|
+
require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
37
|
+
|
|
38
|
+
function _interopNamespaceDefault(e) {
|
|
39
|
+
var n = Object.create(null);
|
|
40
|
+
if (e) {
|
|
41
|
+
Object.keys(e).forEach(function (k) {
|
|
42
|
+
if (k !== 'default') {
|
|
43
|
+
var d = Object.getOwnPropertyDescriptor(e, k);
|
|
44
|
+
Object.defineProperty(n, k, d.get ? d : {
|
|
45
|
+
enumerable: true,
|
|
46
|
+
get: function () { return e[k]; }
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
n.default = e;
|
|
52
|
+
return Object.freeze(n);
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
var yup__namespace = /*#__PURE__*/_interopNamespaceDefault(yup);
|
|
56
|
+
|
|
57
|
+
function ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
58
|
+
function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
59
|
+
var withReactQuery = function withReactQuery(Component) {
|
|
60
|
+
var QueryWrapper = function QueryWrapper(props) {
|
|
61
|
+
return /*#__PURE__*/jsxRuntime.jsxs(reactQuery.QueryClientProvider, {
|
|
62
|
+
client: main.queryClient,
|
|
63
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Component, _objectSpread$3({}, props)), /*#__PURE__*/jsxRuntime.jsx(reactQueryDevtools.ReactQueryDevtools, {
|
|
64
|
+
initialIsOpen: false,
|
|
65
|
+
position: "bottom"
|
|
66
|
+
})]
|
|
67
|
+
});
|
|
68
|
+
};
|
|
69
|
+
return QueryWrapper;
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
var DELIVERY_TAB = {
|
|
73
|
+
response: "response",
|
|
74
|
+
request: "request"
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
var Snippet = function Snippet(_ref) {
|
|
78
|
+
var children = _ref.children,
|
|
79
|
+
_ref$dataTestid = _ref.dataTestid,
|
|
80
|
+
dataTestid = _ref$dataTestid === void 0 ? "" : _ref$dataTestid;
|
|
81
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
82
|
+
className: "my-2 whitespace-pre-wrap break-all rounded-lg border border-border bg-muted p-4",
|
|
83
|
+
"data-testid": dataTestid,
|
|
84
|
+
children: children
|
|
85
|
+
});
|
|
86
|
+
};
|
|
87
|
+
|
|
88
|
+
var TransactionDetails = function TransactionDetails(_ref) {
|
|
89
|
+
var delivery = _ref.delivery;
|
|
90
|
+
var _useState = react.useState(DELIVERY_TAB.request),
|
|
91
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
92
|
+
activeHeader = _useState2[0],
|
|
93
|
+
setActiveHeader = _useState2[1];
|
|
94
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
95
|
+
t = _useTranslation.t;
|
|
96
|
+
var status = delivery.status,
|
|
97
|
+
identifier = delivery.identifier,
|
|
98
|
+
responseStatusCode = delivery.responseStatusCode,
|
|
99
|
+
sid = delivery.sid;
|
|
100
|
+
var renderPayload = function renderPayload() {
|
|
101
|
+
try {
|
|
102
|
+
return JSON.stringify(JSON.parse(delivery.requestBody), null, 2);
|
|
103
|
+
} catch (_unused) {
|
|
104
|
+
return "";
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
108
|
+
className: "sticky top-0 mb-2 flex w-full flex-col bg-background",
|
|
109
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
110
|
+
className: "flex w-full flex-col space-y-2 pb-4",
|
|
111
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
112
|
+
className: "flex items-center space-x-1",
|
|
113
|
+
children: [t("neetoWebhooks.delivery.sid"), ":", /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
114
|
+
className: "px-2",
|
|
115
|
+
"data-testid": "delivery-sid",
|
|
116
|
+
variant: "body2",
|
|
117
|
+
weight: "bold",
|
|
118
|
+
children: sid
|
|
119
|
+
})]
|
|
120
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
121
|
+
className: "flex items-center space-x-1",
|
|
122
|
+
children: [t("neetoWebhooks.delivery.deliveryId"), ":", /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
123
|
+
className: "px-2",
|
|
124
|
+
"data-testid": "delivery-identifier",
|
|
125
|
+
variant: "body2",
|
|
126
|
+
weight: "bold",
|
|
127
|
+
children: identifier
|
|
128
|
+
})]
|
|
129
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
130
|
+
className: "flex items-center",
|
|
131
|
+
children: [t("neetoWebhooks.common.responseStatus"), ":", /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
132
|
+
className: "px-2",
|
|
133
|
+
"data-testid": "delivery-response-code",
|
|
134
|
+
variant: "body2",
|
|
135
|
+
weight: "bold",
|
|
136
|
+
children: responseStatusCode
|
|
137
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Badge, {
|
|
138
|
+
variant: status === "success" ? "green" : "amber",
|
|
139
|
+
children: status
|
|
140
|
+
})]
|
|
141
|
+
})]
|
|
142
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Tabs, {
|
|
143
|
+
value: activeHeader,
|
|
144
|
+
onValueChange: setActiveHeader,
|
|
145
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Tabs.List, {
|
|
146
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tabs.Item, {
|
|
147
|
+
value: DELIVERY_TAB.request,
|
|
148
|
+
children: t("neetoWebhooks.delivery.request")
|
|
149
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tabs.Item, {
|
|
150
|
+
value: DELIVERY_TAB.response,
|
|
151
|
+
children: t("neetoWebhooks.delivery.response")
|
|
152
|
+
})]
|
|
153
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tabs.Content, {
|
|
154
|
+
value: DELIVERY_TAB.request,
|
|
155
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
156
|
+
className: "mt-2 w-full space-y-4",
|
|
157
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
158
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
159
|
+
variant: "h5",
|
|
160
|
+
children: t("neetoWebhooks.delivery.header")
|
|
161
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Snippet, {
|
|
162
|
+
dataTestid: "delivery-request-header",
|
|
163
|
+
children: delivery.requestHeader
|
|
164
|
+
})]
|
|
165
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
166
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
167
|
+
variant: "h5",
|
|
168
|
+
children: t("neetoWebhooks.delivery.payload")
|
|
169
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Snippet, {
|
|
170
|
+
dataTestid: "delivery-request-payload",
|
|
171
|
+
children: renderPayload()
|
|
172
|
+
})]
|
|
173
|
+
})]
|
|
174
|
+
})
|
|
175
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tabs.Content, {
|
|
176
|
+
value: DELIVERY_TAB.response,
|
|
177
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
178
|
+
className: "mt-2 w-full space-y-4",
|
|
179
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
180
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
181
|
+
variant: "h5",
|
|
182
|
+
children: t("neetoWebhooks.delivery.header")
|
|
183
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Snippet, {
|
|
184
|
+
dataTestid: "delivery-response-header",
|
|
185
|
+
children: delivery.responseHeader
|
|
186
|
+
})]
|
|
187
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
188
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
189
|
+
variant: "h5",
|
|
190
|
+
children: t("neetoWebhooks.delivery.body")
|
|
191
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Snippet, {
|
|
192
|
+
dataTestid: "delivery-response-body",
|
|
193
|
+
children: delivery.responseBody
|
|
194
|
+
})]
|
|
195
|
+
})]
|
|
196
|
+
})
|
|
197
|
+
})]
|
|
198
|
+
})]
|
|
199
|
+
});
|
|
200
|
+
};
|
|
201
|
+
|
|
202
|
+
var Details = function Details(_ref) {
|
|
203
|
+
var _delivery$webhook;
|
|
204
|
+
var onClose = _ref.onClose,
|
|
205
|
+
deliveryId = _ref.deliveryId,
|
|
206
|
+
webhookSid = _ref.webhookSid;
|
|
207
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
208
|
+
t = _useTranslation.t;
|
|
209
|
+
var _useRedeliverWebhook = main.useRedeliverWebhook(deliveryId, webhookSid),
|
|
210
|
+
isRedelivering = _useRedeliverWebhook.isPending,
|
|
211
|
+
redeliverWebhook = _useRedeliverWebhook.mutateAsync;
|
|
212
|
+
var _useShowDelivery = main.useShowDelivery(deliveryId, webhookSid),
|
|
213
|
+
isLoading = _useShowDelivery.isPending,
|
|
214
|
+
_useShowDelivery$data = _useShowDelivery.data,
|
|
215
|
+
_useShowDelivery$data2 = _useShowDelivery$data === void 0 ? {} : _useShowDelivery$data,
|
|
216
|
+
delivery = _useShowDelivery$data2.delivery;
|
|
217
|
+
var handleRedeliverClick = /*#__PURE__*/function () {
|
|
218
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee() {
|
|
219
|
+
return _regeneratorRuntime.wrap(function _callee$(_context) {
|
|
220
|
+
while (1) switch (_context.prev = _context.next) {
|
|
221
|
+
case 0:
|
|
222
|
+
_context.next = 2;
|
|
223
|
+
return redeliverWebhook();
|
|
224
|
+
case 2:
|
|
225
|
+
case "end":
|
|
226
|
+
return _context.stop();
|
|
227
|
+
}
|
|
228
|
+
}, _callee);
|
|
229
|
+
}));
|
|
230
|
+
return function handleRedeliverClick() {
|
|
231
|
+
return _ref2.apply(this, arguments);
|
|
232
|
+
};
|
|
233
|
+
}();
|
|
234
|
+
return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet, {
|
|
235
|
+
onClose: onClose,
|
|
236
|
+
isOpen: neetoCist.isPresent(deliveryId),
|
|
237
|
+
size: "large",
|
|
238
|
+
children: /*#__PURE__*/jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
239
|
+
children: isLoading ? /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
240
|
+
className: "flex h-full w-full items-center justify-center",
|
|
241
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {})
|
|
242
|
+
}) : /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
243
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Header, {
|
|
244
|
+
children: /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet.Title, {
|
|
245
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(DateFormat.Date, {
|
|
246
|
+
date: delivery.createdAt,
|
|
247
|
+
tooltipProps: {
|
|
248
|
+
disabled: true
|
|
249
|
+
},
|
|
250
|
+
typographyProps: {
|
|
251
|
+
variant: null
|
|
252
|
+
}
|
|
253
|
+
}), /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
254
|
+
children: " \u2022 "
|
|
255
|
+
}), /*#__PURE__*/jsxRuntime.jsx(DateFormat.Time, {
|
|
256
|
+
date: delivery.createdAt,
|
|
257
|
+
tooltipProps: {
|
|
258
|
+
disabled: true
|
|
259
|
+
},
|
|
260
|
+
typographyProps: {
|
|
261
|
+
variant: null,
|
|
262
|
+
weight: "normal"
|
|
263
|
+
}
|
|
264
|
+
})]
|
|
265
|
+
})
|
|
266
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Body, {
|
|
267
|
+
children: neetoCist.isPresent(delivery) && /*#__PURE__*/jsxRuntime.jsx(TransactionDetails, {
|
|
268
|
+
delivery: delivery
|
|
269
|
+
})
|
|
270
|
+
}), /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet.Footer, {
|
|
271
|
+
className: "gap-x-2",
|
|
272
|
+
children: [(delivery === null || delivery === void 0 ? void 0 : delivery.eventId) && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
273
|
+
disabled: isRedelivering || ((_delivery$webhook = delivery.webhook) === null || _delivery$webhook === void 0 ? void 0 : _delivery$webhook.versionExpired),
|
|
274
|
+
label: t("neetoWebhooks.delivery.redeliver"),
|
|
275
|
+
loading: isRedelivering,
|
|
276
|
+
onClick: handleRedeliverClick
|
|
277
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
278
|
+
label: t("neetoWebhooks.buttons.cancel"),
|
|
279
|
+
variant: "ghost",
|
|
280
|
+
onClick: onClose
|
|
281
|
+
})]
|
|
282
|
+
})]
|
|
283
|
+
})
|
|
284
|
+
})
|
|
285
|
+
});
|
|
286
|
+
};
|
|
287
|
+
|
|
288
|
+
var buildColumns$1 = function buildColumns(_ref) {
|
|
289
|
+
var deliveryDetailsPath = _ref.deliveryDetailsPath,
|
|
290
|
+
page = _ref.page;
|
|
291
|
+
return [{
|
|
292
|
+
id: "identifier",
|
|
293
|
+
accessorKey: "identifier",
|
|
294
|
+
header: i18next.t("neetoWebhooks.delivery.deliveryId"),
|
|
295
|
+
size: 390,
|
|
296
|
+
cell: function cell(_ref2) {
|
|
297
|
+
var row = _ref2.row;
|
|
298
|
+
var delivery = row.original;
|
|
299
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
300
|
+
className: "flex items-center gap-x-3",
|
|
301
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
302
|
+
className: "min-w-0 shrink justify-start text-left [&>span]:min-w-0 [&>span>span]:truncate",
|
|
303
|
+
title: delivery.identifier,
|
|
304
|
+
variant: "link",
|
|
305
|
+
to: utils.buildUrl(deliveryDetailsPath, {
|
|
306
|
+
deliveryId: delivery.sid,
|
|
307
|
+
page: page
|
|
308
|
+
}),
|
|
309
|
+
children: delivery.identifier
|
|
310
|
+
}), delivery.redelivery && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Badge, {
|
|
311
|
+
className: "shrink-0",
|
|
312
|
+
variant: "blue",
|
|
313
|
+
children: i18next.t("neetoWebhooks.delivery.redelivery")
|
|
314
|
+
})]
|
|
315
|
+
});
|
|
316
|
+
}
|
|
317
|
+
}, {
|
|
318
|
+
id: "createdAt",
|
|
319
|
+
accessorKey: "createdAt",
|
|
320
|
+
header: i18next.t("neetoWebhooks.tableHeaders.createdAt"),
|
|
321
|
+
size: 280,
|
|
322
|
+
cell: function cell(_ref3) {
|
|
323
|
+
var getValue = _ref3.getValue;
|
|
324
|
+
return /*#__PURE__*/jsxRuntime.jsx(DateFormat.DateTime, {
|
|
325
|
+
date: getValue()
|
|
326
|
+
});
|
|
327
|
+
}
|
|
328
|
+
}, {
|
|
329
|
+
id: "responseStatusCode",
|
|
330
|
+
header: i18next.t("neetoWebhooks.common.responseStatus"),
|
|
331
|
+
size: 250,
|
|
332
|
+
cell: function cell(_ref4) {
|
|
333
|
+
var row = _ref4.row;
|
|
334
|
+
var _row$original = row.original,
|
|
335
|
+
responseStatusCode = _row$original.responseStatusCode,
|
|
336
|
+
status = _row$original.status;
|
|
337
|
+
return /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
338
|
+
className: "flex items-center gap-x-2",
|
|
339
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Badge, {
|
|
340
|
+
variant: status === "success" ? "green" : "amber",
|
|
341
|
+
children: status
|
|
342
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
343
|
+
variant: "body2",
|
|
344
|
+
children: responseStatusCode
|
|
345
|
+
})]
|
|
346
|
+
});
|
|
347
|
+
}
|
|
348
|
+
}, {
|
|
349
|
+
id: "event",
|
|
350
|
+
accessorKey: "event",
|
|
351
|
+
header: i18next.t("neetoWebhooks.common.event", constants.SINGULAR),
|
|
352
|
+
size: 270,
|
|
353
|
+
cell: function cell(_ref5) {
|
|
354
|
+
var _getValue;
|
|
355
|
+
var getValue = _ref5.getValue;
|
|
356
|
+
return (_getValue = getValue()) === null || _getValue === void 0 ? void 0 : _getValue.label;
|
|
357
|
+
}
|
|
358
|
+
}];
|
|
359
|
+
};
|
|
360
|
+
|
|
361
|
+
var Deliveries = function Deliveries(_ref) {
|
|
362
|
+
var webhooksUrl = _ref.webhooksUrl,
|
|
363
|
+
hostBreadcrumbs = _ref.breadcrumbs,
|
|
364
|
+
helpLink = _ref.helpLink;
|
|
365
|
+
var _useRouteMatch = reactRouterDom.useRouteMatch(),
|
|
366
|
+
deliveriesUrl = _useRouteMatch.url;
|
|
367
|
+
var history = reactRouterDom.useHistory();
|
|
368
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
369
|
+
t = _useTranslation.t;
|
|
370
|
+
var _useParams = reactRouterDom.useParams(),
|
|
371
|
+
webhookId = _useParams.webhookId,
|
|
372
|
+
deliveryId = _useParams.deliveryId;
|
|
373
|
+
var _useQueryParams = reactUtils.useQueryParams(),
|
|
374
|
+
_useQueryParams$page = _useQueryParams.page,
|
|
375
|
+
page = _useQueryParams$page === void 0 ? constants.DEFAULT_PAGE_INDEX : _useQueryParams$page;
|
|
376
|
+
var deliveriesPath = main.getDeliveriesPath(webhooksUrl);
|
|
377
|
+
var deliveryDetailsPath = main.getDeliveryDetailsPath(deliveriesUrl);
|
|
378
|
+
var _useFetchDeliveries = main.useFetchDeliveries(webhookId, {
|
|
379
|
+
page: page,
|
|
380
|
+
pageSize: constants.DEFAULT_PAGE_SIZE
|
|
381
|
+
}),
|
|
382
|
+
isLoading = _useFetchDeliveries.isLoading,
|
|
383
|
+
isFetching = _useFetchDeliveries.isFetching,
|
|
384
|
+
_useFetchDeliveries$d = _useFetchDeliveries.data,
|
|
385
|
+
_useFetchDeliveries$d2 = _useFetchDeliveries$d === void 0 ? {} : _useFetchDeliveries$d,
|
|
386
|
+
totalCount = _useFetchDeliveries$d2.totalCount,
|
|
387
|
+
_useFetchDeliveries$d3 = _useFetchDeliveries$d2.deliveries,
|
|
388
|
+
deliveries = _useFetchDeliveries$d3 === void 0 ? [] : _useFetchDeliveries$d3;
|
|
389
|
+
var breadcrumbsWithoutWebhooksTitle = neetoCist.removeBy({
|
|
390
|
+
text: t("neetoWebhooks.webhook.title")
|
|
391
|
+
}, hostBreadcrumbs);
|
|
392
|
+
var breadcrumbs = [].concat(_toConsumableArray(breadcrumbsWithoutWebhooksTitle), [{
|
|
393
|
+
link: webhooksUrl,
|
|
394
|
+
text: t("neetoWebhooks.webhook.title")
|
|
395
|
+
}, {
|
|
396
|
+
link: window.location.pathname,
|
|
397
|
+
text: t("neetoWebhooks.delivery.title")
|
|
398
|
+
}]);
|
|
399
|
+
if (isLoading) {
|
|
400
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
401
|
+
className: "flex justify-center items-center w-full h-screen",
|
|
402
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {})
|
|
403
|
+
});
|
|
404
|
+
}
|
|
405
|
+
return /*#__PURE__*/jsxRuntime.jsxs(Container, {
|
|
406
|
+
className: "w-full",
|
|
407
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Header$2, {
|
|
408
|
+
breadcrumbs: breadcrumbs,
|
|
409
|
+
title: t("neetoWebhooks.delivery.title"),
|
|
410
|
+
titleHelpPopoverProps: {
|
|
411
|
+
title: t("neetoWebhooks.delivery.title"),
|
|
412
|
+
description: t("neetoWebhooks.delivery.helpDescription"),
|
|
413
|
+
helpLinkProps: {
|
|
414
|
+
href: helpLink
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
}), neetoCist.isNotEmpty(deliveries) ? /*#__PURE__*/jsxRuntime.jsx(TableWrapper, {
|
|
418
|
+
hasPagination: totalCount > constants.DEFAULT_PAGE_SIZE,
|
|
419
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DataTable, {
|
|
420
|
+
totalCount: totalCount,
|
|
421
|
+
columns: buildColumns$1({
|
|
422
|
+
deliveryDetailsPath: deliveryDetailsPath,
|
|
423
|
+
page: page
|
|
424
|
+
}),
|
|
425
|
+
currentPage: Number(page),
|
|
426
|
+
data: deliveries,
|
|
427
|
+
loading: isFetching,
|
|
428
|
+
pageSize: constants.DEFAULT_PAGE_SIZE
|
|
429
|
+
})
|
|
430
|
+
}) : /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
431
|
+
className: "flex justify-center items-center w-full h-full",
|
|
432
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Empty, {
|
|
433
|
+
description: t("neetoWebhooks.delivery.empty.description"),
|
|
434
|
+
icon: lucideReact.Send,
|
|
435
|
+
title: t("neetoWebhooks.delivery.empty.title")
|
|
436
|
+
})
|
|
437
|
+
}), /*#__PURE__*/jsxRuntime.jsx(Details, {
|
|
438
|
+
deliveryId: deliveryId,
|
|
439
|
+
webhookSid: webhookId,
|
|
440
|
+
onClose: function onClose() {
|
|
441
|
+
return history.replace(utils.buildUrl(deliveriesPath, {
|
|
442
|
+
webhookId: webhookId,
|
|
443
|
+
page: page
|
|
444
|
+
}));
|
|
445
|
+
}
|
|
446
|
+
})]
|
|
447
|
+
});
|
|
448
|
+
};
|
|
449
|
+
var Deliveries$1 = withReactQuery(Deliveries);
|
|
450
|
+
|
|
451
|
+
var MENU_ITEMS = {
|
|
452
|
+
EDIT: "edit",
|
|
453
|
+
DELETE: "delete"
|
|
454
|
+
};
|
|
455
|
+
var WEBHOOK_INITIAL_VALUES = {
|
|
456
|
+
endpoint: "",
|
|
457
|
+
events: [],
|
|
458
|
+
secret: "",
|
|
459
|
+
isActive: true
|
|
460
|
+
};
|
|
461
|
+
|
|
462
|
+
var EventCheckbox = function EventCheckbox(_ref) {
|
|
463
|
+
var events = _ref.events,
|
|
464
|
+
values = _ref.values,
|
|
465
|
+
arrayHelpers = _ref.arrayHelpers,
|
|
466
|
+
onEventsChange = _ref.onEventsChange;
|
|
467
|
+
var handleToggle = function handleToggle(isSelected, index, event) {
|
|
468
|
+
if (isSelected) {
|
|
469
|
+
arrayHelpers.remove(index);
|
|
470
|
+
} else {
|
|
471
|
+
arrayHelpers.push(event);
|
|
472
|
+
}
|
|
473
|
+
onEventsChange === null || onEventsChange === void 0 || onEventsChange();
|
|
474
|
+
};
|
|
475
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
476
|
+
children: events.map(function (event) {
|
|
477
|
+
var _values$events;
|
|
478
|
+
var index = neetoCist.findIndexBy(event, (_values$events = values.events) !== null && _values$events !== void 0 ? _values$events : []);
|
|
479
|
+
var isSelected = index > -1;
|
|
480
|
+
return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Checkbox, {
|
|
481
|
+
checked: isSelected,
|
|
482
|
+
className: "my-4",
|
|
483
|
+
label: event.label,
|
|
484
|
+
onCheckedChange: function onCheckedChange() {
|
|
485
|
+
return handleToggle(isSelected, index, event);
|
|
486
|
+
}
|
|
487
|
+
}, event.identifier);
|
|
488
|
+
})
|
|
489
|
+
});
|
|
490
|
+
};
|
|
491
|
+
|
|
492
|
+
var ToggleActiveSwitch = function ToggleActiveSwitch(_ref) {
|
|
493
|
+
var isActive = _ref.isActive,
|
|
494
|
+
webhookId = _ref.webhookId;
|
|
495
|
+
var _useState = react.useState(isActive),
|
|
496
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
497
|
+
status = _useState2[0],
|
|
498
|
+
setStatus = _useState2[1];
|
|
499
|
+
var previousStatusRef = react.useRef(isActive);
|
|
500
|
+
var _useUpdateWebhook = main.useUpdateWebhook(webhookId, {
|
|
501
|
+
onError: function onError() {
|
|
502
|
+
// Revert to the previous state
|
|
503
|
+
setStatus(previousStatusRef.current);
|
|
504
|
+
},
|
|
505
|
+
onSuccess: function onSuccess() {
|
|
506
|
+
// Update the previous status ref on successful update
|
|
507
|
+
previousStatusRef.current = status;
|
|
508
|
+
}
|
|
509
|
+
}),
|
|
510
|
+
updateWebhook = _useUpdateWebhook.mutate;
|
|
511
|
+
var handleToggle = function handleToggle(updatedStatus) {
|
|
512
|
+
// Store the current status as previous before changing
|
|
513
|
+
previousStatusRef.current = status;
|
|
514
|
+
setStatus(updatedStatus);
|
|
515
|
+
updateWebhook({
|
|
516
|
+
id: webhookId,
|
|
517
|
+
payload: {
|
|
518
|
+
isActive: updatedStatus
|
|
519
|
+
}
|
|
520
|
+
});
|
|
521
|
+
};
|
|
522
|
+
return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Switch, {
|
|
523
|
+
checked: status,
|
|
524
|
+
onCheckedChange: handleToggle
|
|
525
|
+
});
|
|
526
|
+
};
|
|
527
|
+
|
|
528
|
+
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
529
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
530
|
+
var getMenuItems = function getMenuItems(_ref) {
|
|
531
|
+
var onEdit = _ref.onEdit,
|
|
532
|
+
onDelete = _ref.onDelete;
|
|
533
|
+
return [{
|
|
534
|
+
key: MENU_ITEMS.EDIT,
|
|
535
|
+
label: i18next.t("neetoWebhooks.buttons.edit"),
|
|
536
|
+
"data-testid": "neeto-webhooks-edit-button",
|
|
537
|
+
onClick: onEdit
|
|
538
|
+
}, {
|
|
539
|
+
key: MENU_ITEMS.DELETE,
|
|
540
|
+
label: i18next.t("neetoWebhooks.buttons.delete"),
|
|
541
|
+
"data-testid": "neeto-webhooks-delete-button",
|
|
542
|
+
onClick: onDelete
|
|
543
|
+
}];
|
|
544
|
+
};
|
|
545
|
+
var getValidationSchema = function getValidationSchema(webhooks) {
|
|
546
|
+
return yup__namespace.object().shape({
|
|
547
|
+
endpoint: yup__namespace.string().trim().matches(/^(https?):\/\//i, i18next.t("neetoWebhooks.errors.webhook.invalidUrlProtocol")).url(i18next.t("neetoWebhooks.errors.webhook.invalidUrl")).required(i18next.t("neetoWebhooks.errors.webhook.required")).test("Is endpoint unique", i18next.t("neetoWebhooks.errors.webhook.urlNotUnique"), function (endpoint, ctx) {
|
|
548
|
+
return !ramda.pluck("endpoint", neetoCist.removeById(ctx.parent.id, webhooks)).includes(endpoint === null || endpoint === void 0 ? void 0 : endpoint.trim());
|
|
549
|
+
}),
|
|
550
|
+
events: yup__namespace.array()["default"]([]).min(1, i18next.t("neetoWebhooks.errors.webhook.events.required")),
|
|
551
|
+
secret: yup__namespace.string().trim().nullable()
|
|
552
|
+
});
|
|
553
|
+
};
|
|
554
|
+
var buildPayload = function buildPayload(_ref2) {
|
|
555
|
+
var _initialValues$events;
|
|
556
|
+
var isEditing = _ref2.isEditing,
|
|
557
|
+
values = _ref2.values,
|
|
558
|
+
initialValues = _ref2.initialValues;
|
|
559
|
+
var events = values.events.map(function (_ref3) {
|
|
560
|
+
var identifier = _ref3.identifier;
|
|
561
|
+
return {
|
|
562
|
+
identifier: identifier
|
|
563
|
+
};
|
|
564
|
+
});
|
|
565
|
+
if (!isEditing) return _objectSpread$2(_objectSpread$2({}, values), {}, {
|
|
566
|
+
eventsAttributes: events
|
|
567
|
+
});
|
|
568
|
+
var deletable = ((_initialValues$events = initialValues.events) !== null && _initialValues$events !== void 0 ? _initialValues$events : []).filter(function (_ref4) {
|
|
569
|
+
var identifier = _ref4.identifier;
|
|
570
|
+
return !neetoCist.findBy({
|
|
571
|
+
identifier: identifier
|
|
572
|
+
}, values.events);
|
|
573
|
+
}).map(ramda.assoc("_destroy", true));
|
|
574
|
+
var creatable = values.events.filter(function (_ref5) {
|
|
575
|
+
var identifier = _ref5.identifier;
|
|
576
|
+
return !neetoCist.findBy({
|
|
577
|
+
identifier: identifier
|
|
578
|
+
}, initialValues.events);
|
|
579
|
+
});
|
|
580
|
+
return _objectSpread$2(_objectSpread$2({}, values), {}, {
|
|
581
|
+
eventsAttributes: [].concat(_toConsumableArray(creatable), _toConsumableArray(deletable))
|
|
582
|
+
});
|
|
583
|
+
};
|
|
584
|
+
var formatTimeUntilExpiration = function formatTimeUntilExpiration(expiresAt) {
|
|
585
|
+
if (!expiresAt) return null;
|
|
586
|
+
var now = new Date();
|
|
587
|
+
var expiry = new Date(expiresAt);
|
|
588
|
+
var diffMs = expiry - now;
|
|
589
|
+
if (diffMs <= 0) return null;
|
|
590
|
+
var diffHours = Math.floor(diffMs / (1000 * 60 * 60));
|
|
591
|
+
var diffDays = Math.floor(diffHours / 24);
|
|
592
|
+
if (diffDays > 0) {
|
|
593
|
+
return i18next.t("neetoWebhooks.webhook.versionStatus.expiresIn.days", {
|
|
594
|
+
count: diffDays
|
|
595
|
+
});
|
|
596
|
+
}
|
|
597
|
+
var remainingHours = diffHours;
|
|
598
|
+
var remainingMinutes = Math.floor(diffMs % (1000 * 60 * 60) / (1000 * 60));
|
|
599
|
+
return i18next.t("neetoWebhooks.webhook.versionStatus.expiresIn.hoursAndMinutes", {
|
|
600
|
+
hours: remainingHours,
|
|
601
|
+
hoursPlural: remainingHours !== 1 ? "s" : "",
|
|
602
|
+
minutes: remainingMinutes,
|
|
603
|
+
minutesPlural: remainingMinutes !== 1 ? "s" : ""
|
|
604
|
+
});
|
|
605
|
+
};
|
|
606
|
+
var formatExpiredDate = function formatExpiredDate(expiresAt) {
|
|
607
|
+
if (!expiresAt) return null;
|
|
608
|
+
var expiry = new Date(expiresAt);
|
|
609
|
+
return i18next.t("neetoWebhooks.webhook.versionStatus.expiredOn", {
|
|
610
|
+
date: expiry.toLocaleDateString()
|
|
611
|
+
});
|
|
612
|
+
};
|
|
613
|
+
var buildColumns = function buildColumns(_ref6) {
|
|
614
|
+
var handleDelete = _ref6.handleDelete,
|
|
615
|
+
handleEdit = _ref6.handleEdit,
|
|
616
|
+
deliveriesPath = _ref6.deliveriesPath;
|
|
617
|
+
return [{
|
|
618
|
+
id: "endpoint",
|
|
619
|
+
accessorKey: "endpoint",
|
|
620
|
+
header: i18next.t("neetoWebhooks.common.endpoint"),
|
|
621
|
+
size: 700,
|
|
622
|
+
cell: function cell(_ref7) {
|
|
623
|
+
var row = _ref7.row,
|
|
624
|
+
getValue = _ref7.getValue;
|
|
625
|
+
var webhook = row.original;
|
|
626
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
627
|
+
className: "flex items-center justify-between gap-3 w-full",
|
|
628
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
629
|
+
className: "min-w-0 justify-start text-left [&>span]:min-w-0 [&>span>span]:truncate shrink",
|
|
630
|
+
title: getValue(),
|
|
631
|
+
to: utils.buildUrl(deliveriesPath, {
|
|
632
|
+
webhookId: webhook.sid
|
|
633
|
+
}),
|
|
634
|
+
variant: "link",
|
|
635
|
+
children: getValue()
|
|
636
|
+
}), /*#__PURE__*/jsxRuntime.jsx(MoreDropdown, {
|
|
637
|
+
menuItems: getMenuItems({
|
|
638
|
+
onEdit: function onEdit() {
|
|
639
|
+
return handleEdit(webhook.id);
|
|
640
|
+
},
|
|
641
|
+
onDelete: function onDelete() {
|
|
642
|
+
return handleDelete(webhook.id);
|
|
643
|
+
}
|
|
644
|
+
})
|
|
645
|
+
})]
|
|
646
|
+
});
|
|
647
|
+
}
|
|
648
|
+
}, {
|
|
649
|
+
id: "isActive",
|
|
650
|
+
accessorKey: "isActive",
|
|
651
|
+
header: i18next.t("neetoWebhooks.webhook.active"),
|
|
652
|
+
size: 150,
|
|
653
|
+
cell: function cell(_ref8) {
|
|
654
|
+
var row = _ref8.row,
|
|
655
|
+
getValue = _ref8.getValue;
|
|
656
|
+
return /*#__PURE__*/jsxRuntime.jsx(ToggleActiveSwitch, {
|
|
657
|
+
isActive: getValue(),
|
|
658
|
+
webhookId: row.original.id
|
|
659
|
+
});
|
|
660
|
+
}
|
|
661
|
+
}, {
|
|
662
|
+
id: "version",
|
|
663
|
+
accessorKey: "version",
|
|
664
|
+
header: i18next.t("neetoWebhooks.webhook.version"),
|
|
665
|
+
size: 200,
|
|
666
|
+
cell: function cell(_ref9) {
|
|
667
|
+
var row = _ref9.row,
|
|
668
|
+
getValue = _ref9.getValue;
|
|
669
|
+
var webhook = row.original;
|
|
670
|
+
var timeMessage = webhook.versionExpired ? formatExpiredDate(webhook.versionExpiresAt) : formatTimeUntilExpiration(webhook.versionExpiresAt);
|
|
671
|
+
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
672
|
+
className: "flex flex-col space-y-1",
|
|
673
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
674
|
+
className: "flex items-center space-x-2",
|
|
675
|
+
children: [/*#__PURE__*/jsxRuntime.jsx("span", {
|
|
676
|
+
children: getValue()
|
|
677
|
+
}), webhook.versionExpired && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Badge, {
|
|
678
|
+
variant: "red",
|
|
679
|
+
children: "expired"
|
|
680
|
+
}), webhook.versionDeprecated && !webhook.versionExpired && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Badge, {
|
|
681
|
+
variant: "amber",
|
|
682
|
+
children: "deprecated"
|
|
683
|
+
})]
|
|
684
|
+
}), timeMessage && /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Typography, {
|
|
685
|
+
color: "muted",
|
|
686
|
+
variant: "caption",
|
|
687
|
+
children: [timeMessage, ".", " ", /*#__PURE__*/jsxRuntime.jsx("a", {
|
|
688
|
+
className: "text-primary underline decoration-primary/40 underline-offset-4 hover:decoration-primary",
|
|
689
|
+
href: webhook.defaultVersionPayloadDocUrl,
|
|
690
|
+
rel: "noopener noreferrer",
|
|
691
|
+
target: "_blank",
|
|
692
|
+
children: i18next.t("neetoWebhooks.webhook.versionStatus.moreDetails")
|
|
693
|
+
}), "."]
|
|
694
|
+
})]
|
|
695
|
+
});
|
|
696
|
+
}
|
|
697
|
+
}, {
|
|
698
|
+
id: "events",
|
|
699
|
+
accessorKey: "events",
|
|
700
|
+
header: i18next.t("neetoWebhooks.common.event", constants.PLURAL),
|
|
701
|
+
size: 300,
|
|
702
|
+
cell: function cell(_ref10) {
|
|
703
|
+
var getValue = _ref10.getValue;
|
|
704
|
+
return /*#__PURE__*/jsxRuntime.jsx("span", {
|
|
705
|
+
className: "whitespace-normal",
|
|
706
|
+
children: ramda.pluck("label", getValue()).sort().join(", ")
|
|
707
|
+
});
|
|
708
|
+
}
|
|
709
|
+
}];
|
|
710
|
+
};
|
|
711
|
+
var generateRandomSecret = function generateRandomSecret() {
|
|
712
|
+
return main.v4().replace(/-/g, "");
|
|
713
|
+
};
|
|
714
|
+
|
|
715
|
+
function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
716
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
717
|
+
var AddWebhookPane = function AddWebhookPane(_ref) {
|
|
718
|
+
var editingWebhookId = _ref.editingWebhookId,
|
|
719
|
+
entityId = _ref.entityId,
|
|
720
|
+
entityType = _ref.entityType,
|
|
721
|
+
isOpen = _ref.isOpen,
|
|
722
|
+
onClose = _ref.onClose,
|
|
723
|
+
onCreate = _ref.onCreate,
|
|
724
|
+
webhooks = _ref.webhooks,
|
|
725
|
+
webhooksHelpLink = _ref.webhooksHelpLink,
|
|
726
|
+
secretsHelpLink = _ref.secretsHelpLink;
|
|
727
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
728
|
+
t = _useTranslation.t;
|
|
729
|
+
var _useState = react.useState(false),
|
|
730
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
731
|
+
isSecretInputFieldVisible = _useState2[0],
|
|
732
|
+
setIsSecretInputFieldVisible = _useState2[1];
|
|
733
|
+
var _useCreateWebhook = main.useCreateWebhook({
|
|
734
|
+
onSuccess: function onSuccess() {
|
|
735
|
+
onClose();
|
|
736
|
+
onCreate === null || onCreate === void 0 || onCreate();
|
|
737
|
+
}
|
|
738
|
+
}),
|
|
739
|
+
createWebhook = _useCreateWebhook.mutate;
|
|
740
|
+
var _useShowWebhook = main.useShowWebhook(editingWebhookId),
|
|
741
|
+
_useShowWebhook$data = _useShowWebhook.data,
|
|
742
|
+
_useShowWebhook$data2 = _useShowWebhook$data === void 0 ? {} : _useShowWebhook$data,
|
|
743
|
+
_useShowWebhook$data3 = _useShowWebhook$data2.webhook,
|
|
744
|
+
webhook = _useShowWebhook$data3 === void 0 ? {} : _useShowWebhook$data3;
|
|
745
|
+
var _useUpdateWebhook = main.useUpdateWebhook(editingWebhookId, {
|
|
746
|
+
onSuccess: onClose
|
|
747
|
+
}),
|
|
748
|
+
updateWebhook = _useUpdateWebhook.mutate;
|
|
749
|
+
var endpointRef = react.useRef();
|
|
750
|
+
var _useFetchEvents = main.useFetchEvents(),
|
|
751
|
+
_useFetchEvents$data = _useFetchEvents.data,
|
|
752
|
+
events = _useFetchEvents$data === void 0 ? [] : _useFetchEvents$data,
|
|
753
|
+
isLoading = _useFetchEvents.isLoading;
|
|
754
|
+
var initialValues = react.useMemo(function () {
|
|
755
|
+
return editingWebhookId ? _objectSpread$1(_objectSpread$1(_objectSpread$1({}, WEBHOOK_INITIAL_VALUES), webhook), {}, {
|
|
756
|
+
events: Array.isArray(webhook === null || webhook === void 0 ? void 0 : webhook.events) ? webhook === null || webhook === void 0 ? void 0 : webhook.events : []
|
|
757
|
+
}) : _objectSpread$1(_objectSpread$1({}, WEBHOOK_INITIAL_VALUES), {}, {
|
|
758
|
+
events: events
|
|
759
|
+
});
|
|
760
|
+
}, [editingWebhookId, webhook, events]);
|
|
761
|
+
var isWebhookExpiredOrDeprecated = editingWebhookId && (webhook.versionExpired || webhook.versionDeprecated);
|
|
762
|
+
var handleSubmit = function handleSubmit(values) {
|
|
763
|
+
// Check if webhook is expired or deprecated before allowing edit
|
|
764
|
+
if (editingWebhookId && (webhook.versionExpired || webhook.versionDeprecated)) {
|
|
765
|
+
return;
|
|
766
|
+
}
|
|
767
|
+
var payload = buildPayload({
|
|
768
|
+
isEditing: editingWebhookId,
|
|
769
|
+
values: values,
|
|
770
|
+
initialValues: initialValues
|
|
771
|
+
});
|
|
772
|
+
editingWebhookId ? updateWebhook({
|
|
773
|
+
id: editingWebhookId,
|
|
774
|
+
payload: payload,
|
|
775
|
+
entityId: entityId
|
|
776
|
+
}) : createWebhook(_objectSpread$1(_objectSpread$1({}, payload), {}, {
|
|
777
|
+
entityId: entityId,
|
|
778
|
+
entityType: entityType
|
|
779
|
+
}));
|
|
780
|
+
};
|
|
781
|
+
var handleClick = function handleClick(setFieldValue) {
|
|
782
|
+
var randomWebhookSecret = generateRandomSecret();
|
|
783
|
+
setFieldValue("secret", randomWebhookSecret);
|
|
784
|
+
setIsSecretInputFieldVisible(true);
|
|
785
|
+
};
|
|
786
|
+
var handleRegenerate = function handleRegenerate(setFieldValue) {
|
|
787
|
+
var randomWebhookSecret = generateRandomSecret();
|
|
788
|
+
setFieldValue("secret", randomWebhookSecret);
|
|
789
|
+
};
|
|
790
|
+
var handleDelete = function handleDelete(setFieldValue) {
|
|
791
|
+
setFieldValue("secret", null);
|
|
792
|
+
setIsSecretInputFieldVisible(false);
|
|
793
|
+
};
|
|
794
|
+
react.useEffect(function () {
|
|
795
|
+
if (webhook !== null && webhook !== void 0 && webhook.secret) {
|
|
796
|
+
setIsSecretInputFieldVisible(true);
|
|
797
|
+
}
|
|
798
|
+
}, [webhook]);
|
|
799
|
+
return /*#__PURE__*/jsxRuntime.jsx(formik.Form, {
|
|
800
|
+
formikProps: {
|
|
801
|
+
enableReinitialize: true,
|
|
802
|
+
validationSchema: getValidationSchema(webhooks),
|
|
803
|
+
initialValues: initialValues,
|
|
804
|
+
onSubmit: function onSubmit(values) {
|
|
805
|
+
return handleSubmit(getValidationSchema().cast(values));
|
|
806
|
+
}
|
|
807
|
+
},
|
|
808
|
+
children: function children(_ref2) {
|
|
809
|
+
var setFieldValue = _ref2.setFieldValue,
|
|
810
|
+
setFieldTouched = _ref2.setFieldTouched,
|
|
811
|
+
values = _ref2.values,
|
|
812
|
+
isValid = _ref2.isValid,
|
|
813
|
+
dirty = _ref2.dirty;
|
|
814
|
+
return /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet, {
|
|
815
|
+
isOpen: isOpen,
|
|
816
|
+
onClose: onClose,
|
|
817
|
+
initialFocusRef: endpointRef,
|
|
818
|
+
size: "large",
|
|
819
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Header, {
|
|
820
|
+
children: /*#__PURE__*/jsxRuntime.jsxs(neetoAtoms.Sheet.Title, {
|
|
821
|
+
className: "flex items-center gap-2",
|
|
822
|
+
"data-testid": "add-new-webhook-pane-header",
|
|
823
|
+
children: [editingWebhookId ? t("neetoWebhooks.webhook.edit") : t("neetoWebhooks.webhook.add"), /*#__PURE__*/jsxRuntime.jsx(HelpPopover, {
|
|
824
|
+
description: t("neetoWebhooks.webhook.helpDescription"),
|
|
825
|
+
helpLinkProps: {
|
|
826
|
+
href: webhooksHelpLink
|
|
827
|
+
},
|
|
828
|
+
title: t("neetoWebhooks.webhook.title")
|
|
829
|
+
})]
|
|
830
|
+
})
|
|
831
|
+
}), isLoading ? /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Body, {
|
|
832
|
+
children: /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
833
|
+
className: "flex items-center justify-center",
|
|
834
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {})
|
|
835
|
+
})
|
|
836
|
+
}) : /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
837
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Body, {
|
|
838
|
+
className: "pb-6",
|
|
839
|
+
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
840
|
+
className: "w-full space-y-4 md:space-y-6",
|
|
841
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
842
|
+
className: "mb-4",
|
|
843
|
+
variant: "body2",
|
|
844
|
+
children: t("neetoWebhooks.webhook.postRequestIsSentToEndpointURL")
|
|
845
|
+
}), /*#__PURE__*/jsxRuntime.jsx(formik.Textarea, {
|
|
846
|
+
required: true,
|
|
847
|
+
className: "[&_textarea]:[field-sizing:content]!",
|
|
848
|
+
"data-testid": "endpoint-input-field",
|
|
849
|
+
label: t("neetoWebhooks.webhook.endpoint"),
|
|
850
|
+
name: "endpoint",
|
|
851
|
+
placeholder: t("neetoWebhooks.webhook.endpointPlaceholder"),
|
|
852
|
+
ref: endpointRef,
|
|
853
|
+
resize: "none",
|
|
854
|
+
size: "small"
|
|
855
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
856
|
+
className: "space-y-2",
|
|
857
|
+
children: [/*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
858
|
+
className: "flex items-center gap-x-2",
|
|
859
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Label, {
|
|
860
|
+
children: t("neetoWebhooks.webhook.secret")
|
|
861
|
+
}), /*#__PURE__*/jsxRuntime.jsx(HelpPopover, {
|
|
862
|
+
helpLinkProps: {
|
|
863
|
+
href: secretsHelpLink
|
|
864
|
+
},
|
|
865
|
+
popoverProps: {
|
|
866
|
+
position: "bottom"
|
|
867
|
+
},
|
|
868
|
+
title: t("neetoWebhooks.webhook.secretkeyHelpTitle"),
|
|
869
|
+
description: t("neetoWebhooks.webhook.secretkeyHelpDescription")
|
|
870
|
+
})]
|
|
871
|
+
}), isSecretInputFieldVisible ? /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
872
|
+
className: "flex items-center justify-between space-x-2",
|
|
873
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(formik.Input, {
|
|
874
|
+
"data-testid": "secret-key-input-field",
|
|
875
|
+
name: "secret",
|
|
876
|
+
placeholder: t("neetoWebhooks.webhook.secretPlaceholder")
|
|
877
|
+
}), /*#__PURE__*/jsxRuntime.jsx(MoreDropdown, {
|
|
878
|
+
menuItems: [{
|
|
879
|
+
key: "regenerate-secret",
|
|
880
|
+
label: t("neetoWebhooks.buttons.regenerate"),
|
|
881
|
+
"data-testid": "regenerate-secret",
|
|
882
|
+
onClick: function onClick() {
|
|
883
|
+
return handleRegenerate(setFieldValue);
|
|
884
|
+
}
|
|
885
|
+
}, {
|
|
886
|
+
key: "delete-secret",
|
|
887
|
+
label: t("neetoWebhooks.buttons.delete"),
|
|
888
|
+
"data-testid": "delete-secret",
|
|
889
|
+
onClick: function onClick() {
|
|
890
|
+
return handleDelete(setFieldValue);
|
|
891
|
+
}
|
|
892
|
+
}]
|
|
893
|
+
})]
|
|
894
|
+
}) : /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
895
|
+
"data-testid": "add-secret-key",
|
|
896
|
+
icon: lucideReact.Plus,
|
|
897
|
+
iconPosition: "left",
|
|
898
|
+
label: t("neetoWebhooks.buttons.generateSecretKey"),
|
|
899
|
+
variant: "link",
|
|
900
|
+
onClick: function onClick() {
|
|
901
|
+
return handleClick(setFieldValue);
|
|
902
|
+
}
|
|
903
|
+
})]
|
|
904
|
+
}), /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
905
|
+
className: "space-y-2",
|
|
906
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Label, {
|
|
907
|
+
required: true,
|
|
908
|
+
children: t("neetoWebhooks.common.event", constants.PLURAL)
|
|
909
|
+
}), /*#__PURE__*/jsxRuntime.jsx(formik$1.FieldArray, {
|
|
910
|
+
name: "events",
|
|
911
|
+
render: function render(arrayHelpers) {
|
|
912
|
+
return /*#__PURE__*/jsxRuntime.jsx(EventCheckbox, {
|
|
913
|
+
arrayHelpers: arrayHelpers,
|
|
914
|
+
events: events,
|
|
915
|
+
values: values,
|
|
916
|
+
onEventsChange: function onEventsChange() {
|
|
917
|
+
return setFieldTouched("events", true);
|
|
918
|
+
}
|
|
919
|
+
});
|
|
920
|
+
}
|
|
921
|
+
}), /*#__PURE__*/jsxRuntime.jsx(formik$1.ErrorMessage, {
|
|
922
|
+
name: "events",
|
|
923
|
+
render: function render(msg) {
|
|
924
|
+
return /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
925
|
+
className: "mt-1",
|
|
926
|
+
color: "destructive",
|
|
927
|
+
"data-testid": "event-error-text",
|
|
928
|
+
variant: "caption",
|
|
929
|
+
children: msg
|
|
930
|
+
});
|
|
931
|
+
}
|
|
932
|
+
})]
|
|
933
|
+
})]
|
|
934
|
+
})
|
|
935
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Sheet.Footer, {
|
|
936
|
+
children: /*#__PURE__*/jsxRuntime.jsx(formik.ActionBlock, {
|
|
937
|
+
cancelButtonProps: {
|
|
938
|
+
onClick: onClose
|
|
939
|
+
},
|
|
940
|
+
submitButtonProps: {
|
|
941
|
+
disabled: isWebhookExpiredOrDeprecated || !isValid || editingWebhookId && !dirty
|
|
942
|
+
}
|
|
943
|
+
})
|
|
944
|
+
})]
|
|
945
|
+
})]
|
|
946
|
+
});
|
|
947
|
+
}
|
|
948
|
+
});
|
|
949
|
+
};
|
|
950
|
+
|
|
951
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
952
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
953
|
+
var Header = reactUtils.withT(function (_ref) {
|
|
954
|
+
var t = _ref.t,
|
|
955
|
+
breadcrumbs = _ref.breadcrumbs,
|
|
956
|
+
title = _ref.title,
|
|
957
|
+
titleHelpPopoverProps = _ref.titleHelpPopoverProps,
|
|
958
|
+
setIsAddWebhookPaneOpen = _ref.setIsAddWebhookPaneOpen,
|
|
959
|
+
headerSize = _ref.headerSize,
|
|
960
|
+
webhooks = _ref.webhooks,
|
|
961
|
+
webhooksHelpLink = _ref.webhooksHelpLink;
|
|
962
|
+
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
963
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Header$2, {
|
|
964
|
+
breadcrumbs: breadcrumbs,
|
|
965
|
+
size: headerSize,
|
|
966
|
+
title: title || t("neetoWebhooks.webhook.title"),
|
|
967
|
+
actionBlock: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
968
|
+
"data-testid": "add-new-webhook-button",
|
|
969
|
+
label: t("neetoWebhooks.webhook.add"),
|
|
970
|
+
onClick: function onClick() {
|
|
971
|
+
return setIsAddWebhookPaneOpen(true);
|
|
972
|
+
}
|
|
973
|
+
}),
|
|
974
|
+
titleHelpPopoverProps: _objectSpread({
|
|
975
|
+
description: t("neetoWebhooks.webhook.helpDescription"),
|
|
976
|
+
helpLinkProps: {
|
|
977
|
+
href: webhooksHelpLink
|
|
978
|
+
},
|
|
979
|
+
title: t("neetoWebhooks.webhook.title")
|
|
980
|
+
}, titleHelpPopoverProps)
|
|
981
|
+
}), neetoCist.isNotEmpty(webhooks) && /*#__PURE__*/jsxRuntime.jsx(SubHeader, {
|
|
982
|
+
leftActionBlock: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Typography, {
|
|
983
|
+
as: "h6",
|
|
984
|
+
variant: "h6",
|
|
985
|
+
children: t("neetoWebhooks.common.webhookWithCount", {
|
|
986
|
+
count: webhooks.length
|
|
987
|
+
})
|
|
988
|
+
})
|
|
989
|
+
})]
|
|
990
|
+
});
|
|
991
|
+
});
|
|
992
|
+
var Header$1 = /*#__PURE__*/react.memo(Header);
|
|
993
|
+
|
|
994
|
+
var Webhooks = function Webhooks(_ref) {
|
|
995
|
+
var deliveriesPath = _ref.deliveriesPath,
|
|
996
|
+
entityType = _ref.entityType,
|
|
997
|
+
breadcrumbs = _ref.breadcrumbs,
|
|
998
|
+
title = _ref.title,
|
|
999
|
+
titleHelpPopoverProps = _ref.titleHelpPopoverProps,
|
|
1000
|
+
entityId = _ref.entityId,
|
|
1001
|
+
onCreate = _ref.onCreate,
|
|
1002
|
+
onDelete = _ref.onDelete,
|
|
1003
|
+
headerSize = _ref.headerSize,
|
|
1004
|
+
_ref$containerClassNa = _ref.containerClassName,
|
|
1005
|
+
containerClassName = _ref$containerClassNa === void 0 ? "" : _ref$containerClassNa,
|
|
1006
|
+
webhooksHelpLink = _ref.webhooksHelpLink,
|
|
1007
|
+
secretsHelpLink = _ref.secretsHelpLink;
|
|
1008
|
+
var _useState = react.useState(null),
|
|
1009
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
1010
|
+
editingWebhookId = _useState2[0],
|
|
1011
|
+
setEditingWebhookId = _useState2[1];
|
|
1012
|
+
var _useState3 = react.useState(null),
|
|
1013
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
1014
|
+
deletingWebhookId = _useState4[0],
|
|
1015
|
+
setDeletingWebhookId = _useState4[1];
|
|
1016
|
+
var _useState5 = react.useState(false),
|
|
1017
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
1018
|
+
isAddWebhookPaneOpen = _useState6[0],
|
|
1019
|
+
setIsAddWebhookPaneOpen = _useState6[1];
|
|
1020
|
+
var _useState7 = react.useState(false),
|
|
1021
|
+
_useState8 = _slicedToArray(_useState7, 2),
|
|
1022
|
+
isDeleteAlertOpen = _useState8[0],
|
|
1023
|
+
setIsDeleteAlertOpen = _useState8[1];
|
|
1024
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
1025
|
+
t = _useTranslation.t;
|
|
1026
|
+
var _useQueryParams = reactUtils.useQueryParams(),
|
|
1027
|
+
_useQueryParams$page = _useQueryParams.page,
|
|
1028
|
+
page = _useQueryParams$page === void 0 ? constants.DEFAULT_PAGE_INDEX : _useQueryParams$page;
|
|
1029
|
+
var _useFetchWebhooks = main.useFetchWebhooks({
|
|
1030
|
+
entityId: entityId,
|
|
1031
|
+
page: page,
|
|
1032
|
+
pageSize: constants.DEFAULT_PAGE_SIZE
|
|
1033
|
+
}),
|
|
1034
|
+
isLoading = _useFetchWebhooks.isLoading,
|
|
1035
|
+
isFetching = _useFetchWebhooks.isFetching,
|
|
1036
|
+
_useFetchWebhooks$dat = _useFetchWebhooks.data,
|
|
1037
|
+
_useFetchWebhooks$dat2 = _useFetchWebhooks$dat === void 0 ? {} : _useFetchWebhooks$dat,
|
|
1038
|
+
_useFetchWebhooks$dat3 = _useFetchWebhooks$dat2.webhooks,
|
|
1039
|
+
webhooks = _useFetchWebhooks$dat3 === void 0 ? [] : _useFetchWebhooks$dat3,
|
|
1040
|
+
_useFetchWebhooks$dat4 = _useFetchWebhooks$dat2.totalCount,
|
|
1041
|
+
totalCount = _useFetchWebhooks$dat4 === void 0 ? 0 : _useFetchWebhooks$dat4;
|
|
1042
|
+
var _useDestroyWebhook = main.useDestroyWebhook({
|
|
1043
|
+
onSuccess: function onSuccess() {
|
|
1044
|
+
setIsDeleteAlertOpen(false);
|
|
1045
|
+
onDelete === null || onDelete === void 0 || onDelete();
|
|
1046
|
+
}
|
|
1047
|
+
}),
|
|
1048
|
+
isDeleting = _useDestroyWebhook.isPending,
|
|
1049
|
+
destroyWebhook = _useDestroyWebhook.mutate;
|
|
1050
|
+
var handlePaneClose = function handlePaneClose() {
|
|
1051
|
+
setEditingWebhookId(null);
|
|
1052
|
+
setIsAddWebhookPaneOpen(false);
|
|
1053
|
+
};
|
|
1054
|
+
var handleEdit = react.useCallback(function (id) {
|
|
1055
|
+
setEditingWebhookId(id);
|
|
1056
|
+
setIsAddWebhookPaneOpen(true);
|
|
1057
|
+
}, []);
|
|
1058
|
+
var handleDelete = react.useCallback(function (id) {
|
|
1059
|
+
setDeletingWebhookId(id);
|
|
1060
|
+
setIsDeleteAlertOpen(true);
|
|
1061
|
+
}, []);
|
|
1062
|
+
if (isLoading) {
|
|
1063
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1064
|
+
className: "flex justify-center items-center w-full h-screen",
|
|
1065
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Spinner, {})
|
|
1066
|
+
});
|
|
1067
|
+
}
|
|
1068
|
+
return /*#__PURE__*/jsxRuntime.jsxs(Container, {
|
|
1069
|
+
className: containerClassName,
|
|
1070
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Header$1, {
|
|
1071
|
+
breadcrumbs: breadcrumbs,
|
|
1072
|
+
headerSize: headerSize,
|
|
1073
|
+
setIsAddWebhookPaneOpen: setIsAddWebhookPaneOpen,
|
|
1074
|
+
title: title,
|
|
1075
|
+
titleHelpPopoverProps: titleHelpPopoverProps,
|
|
1076
|
+
webhooks: webhooks,
|
|
1077
|
+
webhooksHelpLink: webhooksHelpLink
|
|
1078
|
+
}), neetoCist.isNotEmpty(webhooks) ? /*#__PURE__*/jsxRuntime.jsx(TableWrapper, {
|
|
1079
|
+
hasPagination: totalCount > constants.DEFAULT_PAGE_SIZE,
|
|
1080
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.DataTable, {
|
|
1081
|
+
totalCount: totalCount,
|
|
1082
|
+
currentPage: Number(page),
|
|
1083
|
+
data: webhooks,
|
|
1084
|
+
loading: isFetching,
|
|
1085
|
+
pageSize: constants.DEFAULT_PAGE_SIZE,
|
|
1086
|
+
columns: buildColumns({
|
|
1087
|
+
handleDelete: handleDelete,
|
|
1088
|
+
handleEdit: handleEdit,
|
|
1089
|
+
deliveriesPath: deliveriesPath
|
|
1090
|
+
})
|
|
1091
|
+
})
|
|
1092
|
+
}) : /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
1093
|
+
className: "flex justify-center items-center w-full h-full",
|
|
1094
|
+
children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Empty, {
|
|
1095
|
+
icon: lucideReact.Webhook,
|
|
1096
|
+
title: t("neetoWebhooks.webhook.empty"),
|
|
1097
|
+
description: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
|
|
1098
|
+
href: webhooksHelpLink,
|
|
1099
|
+
label: t("neetoWebhooks.webhook.emptyHelpText"),
|
|
1100
|
+
rel: "noreferrer",
|
|
1101
|
+
target: "_blank",
|
|
1102
|
+
variant: "link"
|
|
1103
|
+
}),
|
|
1104
|
+
primaryButtonProps: {
|
|
1105
|
+
label: t("neetoWebhooks.webhook.add"),
|
|
1106
|
+
onClick: function onClick() {
|
|
1107
|
+
return setIsAddWebhookPaneOpen(true);
|
|
1108
|
+
}
|
|
1109
|
+
}
|
|
1110
|
+
})
|
|
1111
|
+
}), /*#__PURE__*/jsxRuntime.jsx(AddWebhookPane, {
|
|
1112
|
+
editingWebhookId: editingWebhookId,
|
|
1113
|
+
entityId: entityId,
|
|
1114
|
+
entityType: entityType,
|
|
1115
|
+
onCreate: onCreate,
|
|
1116
|
+
secretsHelpLink: secretsHelpLink,
|
|
1117
|
+
webhooks: webhooks,
|
|
1118
|
+
webhooksHelpLink: webhooksHelpLink,
|
|
1119
|
+
isOpen: isAddWebhookPaneOpen,
|
|
1120
|
+
onClose: handlePaneClose
|
|
1121
|
+
}), /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Alert, {
|
|
1122
|
+
isOpen: isDeleteAlertOpen,
|
|
1123
|
+
isSubmitting: isDeleting,
|
|
1124
|
+
submitButtonLabel: t("neetoWebhooks.buttons.delete"),
|
|
1125
|
+
message: t("neetoWebhooks.alert.delete.message", {
|
|
1126
|
+
entity: t("neetoWebhooks.entity.webhook")
|
|
1127
|
+
}),
|
|
1128
|
+
title: t("neetoWebhooks.alert.delete.title", {
|
|
1129
|
+
entity: t("neetoWebhooks.entity.webhook")
|
|
1130
|
+
}),
|
|
1131
|
+
onClose: function onClose() {
|
|
1132
|
+
return setIsDeleteAlertOpen(false);
|
|
1133
|
+
},
|
|
1134
|
+
onSubmit: function onSubmit() {
|
|
1135
|
+
return destroyWebhook(deletingWebhookId, {
|
|
1136
|
+
entityId: entityId
|
|
1137
|
+
});
|
|
1138
|
+
}
|
|
1139
|
+
})]
|
|
1140
|
+
});
|
|
1141
|
+
};
|
|
1142
|
+
var Webhooks$1 = withReactQuery(Webhooks);
|
|
1143
|
+
|
|
1144
|
+
var NeetoWebhooks = function NeetoWebhooks(_ref) {
|
|
1145
|
+
var entityType = _ref.entityType,
|
|
1146
|
+
entityId = _ref.entityId,
|
|
1147
|
+
_ref$breadcrumbs = _ref.breadcrumbs,
|
|
1148
|
+
breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
|
|
1149
|
+
title = _ref.title,
|
|
1150
|
+
titleHelpPopoverProps = _ref.titleHelpPopoverProps,
|
|
1151
|
+
onCreate = _ref.onCreate,
|
|
1152
|
+
onDelete = _ref.onDelete,
|
|
1153
|
+
headerSize = _ref.headerSize,
|
|
1154
|
+
containerClassName = _ref.containerClassName,
|
|
1155
|
+
_ref$helpLinkUrls = _ref.helpLinkUrls,
|
|
1156
|
+
helpLinkUrls = _ref$helpLinkUrls === void 0 ? {} : _ref$helpLinkUrls;
|
|
1157
|
+
var _useRouteMatch = reactRouterDom.useRouteMatch(),
|
|
1158
|
+
webhooksPath = _useRouteMatch.path,
|
|
1159
|
+
webhooksUrl = _useRouteMatch.url;
|
|
1160
|
+
var deliveriesPath = main.getDeliveriesPath(webhooksUrl);
|
|
1161
|
+
var deliveryDetailsPath = main.getDeliveryDetailsPath(deliveriesPath);
|
|
1162
|
+
var helpLinks = ramda.mergeRight(main.HELP_LINK_URLS, helpLinkUrls);
|
|
1163
|
+
return /*#__PURE__*/jsxRuntime.jsxs(reactRouterDom.Switch, {
|
|
1164
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(reactRouterDom.Route, {
|
|
1165
|
+
exact: true,
|
|
1166
|
+
path: webhooksPath,
|
|
1167
|
+
component: function component() {
|
|
1168
|
+
return /*#__PURE__*/jsxRuntime.jsx(Webhooks$1, {
|
|
1169
|
+
breadcrumbs: breadcrumbs,
|
|
1170
|
+
containerClassName: containerClassName,
|
|
1171
|
+
deliveriesPath: deliveriesPath,
|
|
1172
|
+
entityId: entityId,
|
|
1173
|
+
entityType: entityType,
|
|
1174
|
+
headerSize: headerSize,
|
|
1175
|
+
onCreate: onCreate,
|
|
1176
|
+
onDelete: onDelete,
|
|
1177
|
+
title: title,
|
|
1178
|
+
titleHelpPopoverProps: titleHelpPopoverProps,
|
|
1179
|
+
secretsHelpLink: helpLinks.secrets,
|
|
1180
|
+
webhooksHelpLink: helpLinks.webhooks
|
|
1181
|
+
});
|
|
1182
|
+
}
|
|
1183
|
+
}), /*#__PURE__*/jsxRuntime.jsx(reactRouterDom.Route, {
|
|
1184
|
+
exact: true,
|
|
1185
|
+
path: deliveryDetailsPath,
|
|
1186
|
+
render: function render() {
|
|
1187
|
+
return /*#__PURE__*/jsxRuntime.jsx(Deliveries$1, {
|
|
1188
|
+
breadcrumbs: breadcrumbs,
|
|
1189
|
+
webhooksUrl: webhooksUrl,
|
|
1190
|
+
helpLink: helpLinks.deliveries
|
|
1191
|
+
});
|
|
1192
|
+
}
|
|
1193
|
+
}), /*#__PURE__*/jsxRuntime.jsx(reactRouterDom.Route, {
|
|
1194
|
+
path: deliveriesPath,
|
|
1195
|
+
render: function render() {
|
|
1196
|
+
return /*#__PURE__*/jsxRuntime.jsx(Deliveries$1, {
|
|
1197
|
+
breadcrumbs: breadcrumbs,
|
|
1198
|
+
webhooksUrl: webhooksUrl,
|
|
1199
|
+
helpLink: helpLinks.deliveries
|
|
1200
|
+
});
|
|
1201
|
+
}
|
|
1202
|
+
})]
|
|
1203
|
+
});
|
|
1204
|
+
};
|
|
1205
|
+
|
|
1206
|
+
module.exports = NeetoWebhooks;
|
|
1207
|
+
//# sourceMappingURL=NeetoWebhooks.js.map
|