@bigbinary/neeto-molecules 3.0.3 → 3.1.0

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.
@@ -0,0 +1,628 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
5
+ var Alert = require('@bigbinary/neetoui/Alert');
6
+ var reactI18next = require('react-i18next');
7
+ var Pane = require('@bigbinary/neetoui/Pane');
8
+ var neetoCist = require('@bigbinary/neeto-cist');
9
+ var Typography = require('@bigbinary/neetoui/Typography');
10
+ var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
11
+ var Input = require('@bigbinary/neetoui/formik/Input');
12
+ var Form = require('@bigbinary/neetoui/formik/Form');
13
+ var i18next = require('i18next');
14
+ var yup = require('yup');
15
+ var _defineProperty = require('@babel/runtime/helpers/defineProperty');
16
+ var reactQuery = require('@tanstack/react-query');
17
+ var useMutationWithInvalidation = require('@bigbinary/neeto-commons-frontend/react-utils/useMutationWithInvalidation');
18
+ var axios = require('axios');
19
+ var _slicedToArray = require('@babel/runtime/helpers/slicedToArray');
20
+ var Table = require('@bigbinary/neetoui/Table');
21
+ var Button = require('@bigbinary/neetoui/Button');
22
+ var Checkbox = require('@bigbinary/neetoui/Checkbox');
23
+ var Callout = require('@bigbinary/neetoui/Callout');
24
+ var TableWrapper = require('./TableWrapper.js');
25
+ var Input$1 = require('@bigbinary/neetoui/Input');
26
+ var Stepper = require('@bigbinary/neetoui/Stepper');
27
+ var Tag = require('@bigbinary/neetoui/Tag');
28
+ var CopyToClipboardButton = require('./CopyToClipboardButton.js');
29
+ var Toastr = require('@bigbinary/neetoui/Toastr');
30
+
31
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
32
+
33
+ function _interopNamespace(e) {
34
+ if (e && e.__esModule) return e;
35
+ var n = Object.create(null);
36
+ if (e) {
37
+ Object.keys(e).forEach(function (k) {
38
+ if (k !== 'default') {
39
+ var d = Object.getOwnPropertyDescriptor(e, k);
40
+ Object.defineProperty(n, k, d.get ? d : {
41
+ enumerable: true,
42
+ get: function () { return e[k]; }
43
+ });
44
+ }
45
+ });
46
+ }
47
+ n["default"] = e;
48
+ return Object.freeze(n);
49
+ }
50
+
51
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
52
+ var Alert__default = /*#__PURE__*/_interopDefaultLegacy(Alert);
53
+ var Pane__default = /*#__PURE__*/_interopDefaultLegacy(Pane);
54
+ var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
55
+ var ActionBlock__default = /*#__PURE__*/_interopDefaultLegacy(ActionBlock);
56
+ var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
57
+ var Form__default = /*#__PURE__*/_interopDefaultLegacy(Form);
58
+ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
59
+ var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
60
+ var useMutationWithInvalidation__default = /*#__PURE__*/_interopDefaultLegacy(useMutationWithInvalidation);
61
+ var axios__default = /*#__PURE__*/_interopDefaultLegacy(axios);
62
+ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray);
63
+ var Table__default = /*#__PURE__*/_interopDefaultLegacy(Table);
64
+ var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
65
+ var Checkbox__default = /*#__PURE__*/_interopDefaultLegacy(Checkbox);
66
+ var Callout__default = /*#__PURE__*/_interopDefaultLegacy(Callout);
67
+ var Input__default$1 = /*#__PURE__*/_interopDefaultLegacy(Input$1);
68
+ var Stepper__default = /*#__PURE__*/_interopDefaultLegacy(Stepper);
69
+ var Tag__default = /*#__PURE__*/_interopDefaultLegacy(Tag);
70
+ var Toastr__default = /*#__PURE__*/_interopDefaultLegacy(Toastr);
71
+
72
+ var DeleteAlert = reactUtils.withT(function (_ref) {
73
+ var t = _ref.t,
74
+ onClose = _ref.onClose,
75
+ onSubmit = _ref.onSubmit,
76
+ isOpen = _ref.isOpen,
77
+ isSubmitting = _ref.isSubmitting,
78
+ hostname = _ref.hostname;
79
+ return /*#__PURE__*/React__default["default"].createElement(Alert__default["default"], {
80
+ isOpen: isOpen,
81
+ isSubmitting: isSubmitting,
82
+ onClose: onClose,
83
+ onSubmit: onSubmit,
84
+ cancelButtonLabel: t("neetoMolecules.common.actions.cancel"),
85
+ submitButtonLabel: t("neetoMolecules.common.actions.delete"),
86
+ title: t("neetoMolecules.customDomain.delete"),
87
+ message: /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
88
+ i18nKey: "neetoMolecules.customDomain.alertMessage",
89
+ values: {
90
+ hostname: hostname
91
+ }
92
+ })
93
+ });
94
+ });
95
+
96
+ var HOSTNAME_REGEX = /^(https?:\/\/)?([a-zA-Z0-9][a-zA-Z0-9-]*\.)+[a-zA-Z]{2,}(\/\S*)?$/;
97
+ var INITIAL_VALUES = {
98
+ hostname: ""
99
+ };
100
+ var STATUS_INDEX = ["pending_domain_validation", "pending_cname_validation", "active"];
101
+ var DOMAIN_VALIDATION_STATUS = "pending_domain_validation";
102
+ var STEPS = [{
103
+ id: 1,
104
+ label: "Domain validation"
105
+ }, {
106
+ id: 2,
107
+ label: "Domain redirection"
108
+ }];
109
+
110
+ var getCustomDomainValidationSchema = function getCustomDomainValidationSchema() {
111
+ return yup__namespace.object().shape({
112
+ hostname: yup__namespace.string().required(i18next.t("neetoMolecules.customDomain.formikValidation.required")).matches(HOSTNAME_REGEX, i18next.t("neetoMolecules.customDomain.formikValidation.valid"))
113
+ });
114
+ };
115
+
116
+ var getUrlwithId = function getUrlwithId(url, id) {
117
+ return id ? "".concat(url, "/").concat(id) : url;
118
+ };
119
+ var fetchCustomDomains = function fetchCustomDomains(_ref) {
120
+ var url = _ref.url,
121
+ params = _ref.params;
122
+ return axios__default["default"].get(url, {
123
+ params: params
124
+ });
125
+ };
126
+ var updateCustomDomain = function updateCustomDomain(url, id) {
127
+ return axios__default["default"].patch(getUrlwithId(url, id));
128
+ };
129
+ var createCustomDomain = function createCustomDomain(url, payload) {
130
+ return axios__default["default"].post(url, payload);
131
+ };
132
+ var deleteCustomDomain = function deleteCustomDomain(url, id) {
133
+ return axios__default["default"]["delete"](getUrlwithId(url, id));
134
+ };
135
+ var validateDomain = function validateDomain(url, id) {
136
+ return axios__default["default"].patch("".concat(getUrlwithId(url, id), "/validate_domain"), undefined, {
137
+ showToastr: false
138
+ });
139
+ };
140
+ var validateCname = function validateCname(url, id) {
141
+ return axios__default["default"].patch("".concat(getUrlwithId(url, id), "/validate_cname"));
142
+ };
143
+ var customDomainApi = {
144
+ createCustomDomain: createCustomDomain,
145
+ deleteCustomDomain: deleteCustomDomain,
146
+ validateDomain: validateDomain,
147
+ fetchCustomDomains: fetchCustomDomains,
148
+ validateCname: validateCname,
149
+ updateCustomDomain: updateCustomDomain
150
+ };
151
+
152
+ var DOMAIN_QUERY_KEY = "custom-domain";
153
+ var HELP_DOC_URL = "https://help.".concat(globalProps.appName.toLowerCase(), ".com/articles/custom-domains");
154
+
155
+ 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; }
156
+ 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), !0).forEach(function (r) { _defineProperty__default["default"](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; }
157
+ var useCreateCustomDomain = function useCreateCustomDomain(url) {
158
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
159
+ return useMutationWithInvalidation__default["default"](function (payload) {
160
+ return customDomainApi.createCustomDomain(url, payload);
161
+ }, _objectSpread$1({
162
+ keysToInvalidate: [[DOMAIN_QUERY_KEY]]
163
+ }, options));
164
+ };
165
+ var useDeleteCustomDomain = function useDeleteCustomDomain(url) {
166
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
167
+ return useMutationWithInvalidation__default["default"](function (id) {
168
+ return customDomainApi.deleteCustomDomain(url, id);
169
+ }, _objectSpread$1({
170
+ keysToInvalidate: [[DOMAIN_QUERY_KEY]]
171
+ }, options));
172
+ };
173
+ var useFetchCustomDomains = function useFetchCustomDomains(params) {
174
+ return reactQuery.useQuery({
175
+ queryKey: [DOMAIN_QUERY_KEY, _objectSpread$1({}, params)],
176
+ queryFn: function queryFn() {
177
+ return customDomainApi.fetchCustomDomains(params);
178
+ }
179
+ });
180
+ };
181
+ var useValidateDomain = function useValidateDomain(url) {
182
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
183
+ return useMutationWithInvalidation__default["default"](function (id) {
184
+ return customDomainApi.validateDomain(url, id);
185
+ }, _objectSpread$1({
186
+ keysToInvalidate: [[DOMAIN_QUERY_KEY]]
187
+ }, options));
188
+ };
189
+ var useUpdateCustomDomain = function useUpdateCustomDomain(url) {
190
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
191
+ return useMutationWithInvalidation__default["default"](function (id) {
192
+ return customDomainApi.updateCustomDomain(url, id);
193
+ }, _objectSpread$1({
194
+ keysToInvalidate: [[DOMAIN_QUERY_KEY]]
195
+ }, options));
196
+ };
197
+
198
+ var DomainField = function DomainField(_ref) {
199
+ var customDomain = _ref.customDomain,
200
+ onCreate = _ref.onCreate,
201
+ url = _ref.url,
202
+ setCustomDomain = _ref.setCustomDomain,
203
+ onClose = _ref.onClose;
204
+ var _useTranslation = reactI18next.useTranslation(),
205
+ t = _useTranslation.t;
206
+ var _useCreateCustomDomai = useCreateCustomDomain(url),
207
+ createCustomDomain = _useCreateCustomDomai.mutate,
208
+ isCreating = _useCreateCustomDomai.isPending;
209
+ var getHostname = function getHostname(url) {
210
+ try {
211
+ var parsedUrl = new URL(url);
212
+ return parsedUrl.hostname;
213
+ } catch (_unused) {
214
+ return url;
215
+ }
216
+ };
217
+ var handleSubmit = function handleSubmit(_ref2) {
218
+ var hostname = _ref2.hostname;
219
+ var parsedHostname = getHostname(hostname);
220
+ var payload = {
221
+ hostname: parsedHostname
222
+ };
223
+ createCustomDomain(payload, {
224
+ onSuccess: function onSuccess(values) {
225
+ setCustomDomain(values);
226
+ onCreate === null || onCreate === void 0 ? void 0 : onCreate(values);
227
+ }
228
+ });
229
+ };
230
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Pane__default["default"].Header, null, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
231
+ style: "h2"
232
+ }, t("neetoMolecules.customDomain.addNew"))), /*#__PURE__*/React__default["default"].createElement(Form__default["default"], {
233
+ className: "flex-col space-y-6",
234
+ formikProps: {
235
+ enableReinitialize: true,
236
+ initialValues: customDomain || INITIAL_VALUES,
237
+ validationSchema: getCustomDomainValidationSchema(),
238
+ onSubmit: handleSubmit
239
+ }
240
+ }, function (_ref3) {
241
+ var dirty = _ref3.dirty;
242
+ return /*#__PURE__*/React__default["default"].createElement("div", {
243
+ className: "w-full"
244
+ }, /*#__PURE__*/React__default["default"].createElement(Pane__default["default"].Body, null, /*#__PURE__*/React__default["default"].createElement(Input__default["default"], {
245
+ required: true,
246
+ className: "w-full",
247
+ "data-cy": "custom-domain-input-field",
248
+ disabled: neetoCist.isNotEmpty(customDomain),
249
+ label: t("neetoMolecules.customDomain.label"),
250
+ name: "hostname",
251
+ placeholder: t("neetoMolecules.customDomain.placeholder")
252
+ })), /*#__PURE__*/React__default["default"].createElement(Pane__default["default"].Footer, null, /*#__PURE__*/React__default["default"].createElement(ActionBlock__default["default"], {
253
+ cancelButtonProps: {
254
+ onClick: onClose
255
+ },
256
+ isSubmitting: isCreating,
257
+ submitButtonProps: {
258
+ label: t("neetoMolecules.common.actions.continue"),
259
+ "data-cy": "submit-custom-domain-button",
260
+ "data-testid": "submit-custom-domain-button",
261
+ disabled: !dirty || isCreating
262
+ }
263
+ })));
264
+ }));
265
+ };
266
+
267
+ var Common = reactUtils.withT(function (_ref) {
268
+ var t = _ref.t,
269
+ currentStep = _ref.currentStep,
270
+ handleStepChange = _ref.handleStepChange,
271
+ hostname = _ref.hostname;
272
+ return /*#__PURE__*/React__default["default"].createElement("div", {
273
+ className: "mb-6 w-full space-y-6"
274
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
275
+ className: "-ml-2"
276
+ }, /*#__PURE__*/React__default["default"].createElement(Stepper__default["default"], {
277
+ activeIndex: currentStep,
278
+ setActiveIndex: handleStepChange,
279
+ steps: STEPS
280
+ })), /*#__PURE__*/React__default["default"].createElement(Input__default$1["default"], {
281
+ disabled: true,
282
+ className: "w-full",
283
+ label: t("neetoMolecules.customDomain.yourDomain"),
284
+ unlimitedChars: false,
285
+ value: hostname
286
+ }));
287
+ });
288
+
289
+ var columnData = function columnData() {
290
+ return [{
291
+ title: i18next.t("neetoMolecules.common.record"),
292
+ key: "record",
293
+ dataIndex: "record",
294
+ width: 100,
295
+ render: function render() {
296
+ return /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
297
+ style: "body2"
298
+ }, i18next.t("neetoMolecules.customDomain.cname"));
299
+ }
300
+ }, {
301
+ title: i18next.t("neetoMolecules.common.name"),
302
+ dataIndex: "name",
303
+ key: "name",
304
+ width: 200,
305
+ render: function render(name, _) {
306
+ return /*#__PURE__*/React__default["default"].createElement("div", {
307
+ className: "flex items-center justify-between"
308
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
309
+ style: "body2"
310
+ }, neetoCist.truncate(name, 15)), /*#__PURE__*/React__default["default"].createElement(CopyToClipboardButton, {
311
+ className: "flex-shrink-0",
312
+ size: "small",
313
+ style: "secondary",
314
+ value: name
315
+ }));
316
+ }
317
+ }, {
318
+ title: i18next.t("neetoMolecules.common.value"),
319
+ dataIndex: "value",
320
+ key: "value",
321
+ width: 200,
322
+ render: function render(value, _) {
323
+ return /*#__PURE__*/React__default["default"].createElement("div", {
324
+ className: "flex items-center justify-between"
325
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
326
+ style: "body2"
327
+ }, neetoCist.truncate(value, 15)), /*#__PURE__*/React__default["default"].createElement(CopyToClipboardButton, {
328
+ value: value,
329
+ className: "flex-shrink-0",
330
+ size: "small",
331
+ style: "secondary"
332
+ }));
333
+ }
334
+ }, {
335
+ title: i18next.t("neetoMolecules.common.status"),
336
+ dataIndex: "status",
337
+ key: "status",
338
+ width: 130,
339
+ render: function render(status) {
340
+ return /*#__PURE__*/React__default["default"].createElement(Tag__default["default"], {
341
+ label: i18next.t("neetoMolecules.common.".concat(status)),
342
+ style: status === "success" ? "success" : "warning"
343
+ });
344
+ }
345
+ }];
346
+ };
347
+
348
+ var Redirection = function Redirection(_ref) {
349
+ var customDomain = _ref.customDomain,
350
+ onClose = _ref.onClose,
351
+ setCustomDomain = _ref.setCustomDomain,
352
+ url = _ref.url,
353
+ currentStep = _ref.currentStep,
354
+ handleStepChange = _ref.handleStepChange,
355
+ incrementStep = _ref.incrementStep,
356
+ hasOne = _ref.hasOne;
357
+ var _useTranslation = reactI18next.useTranslation(),
358
+ t = _useTranslation.t;
359
+ var id = customDomain.id,
360
+ hostname = customDomain.hostname,
361
+ dnsTarget = customDomain.dnsTarget,
362
+ addedCnameAt = customDomain.addedCnameAt,
363
+ status = customDomain.status;
364
+ var cnameAdded = neetoCist.isPresent(addedCnameAt);
365
+ var customDomainId = hasOne ? null : id;
366
+ var _useState = React.useState(cnameAdded),
367
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
368
+ addedRedirectionCname = _useState2[0],
369
+ setAddedRedirectionCname = _useState2[1];
370
+ var _useUpdateCustomDomai = useUpdateCustomDomain(url),
371
+ updateCustomDomain = _useUpdateCustomDomai.mutate,
372
+ isUpdating = _useUpdateCustomDomai.isPending;
373
+ var handleUpdateCname = function handleUpdateCname() {
374
+ addedRedirectionCname && updateCustomDomain(customDomainId, {
375
+ onSuccess: function onSuccess(data) {
376
+ incrementStep();
377
+ setCustomDomain(data);
378
+ }
379
+ });
380
+ };
381
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Pane__default["default"].Body, null, /*#__PURE__*/React__default["default"].createElement(Common, {
382
+ currentStep: currentStep,
383
+ handleStepChange: handleStepChange,
384
+ hostname: hostname
385
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
386
+ className: "mb-6 w-full space-y-6"
387
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
388
+ className: "space-y-1"
389
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
390
+ style: "h4"
391
+ }, t("neetoMolecules.customDomain.domainRedirection")), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
392
+ style: "body2"
393
+ }, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
394
+ i18nKey: "neetoMolecules.customDomain.cnameRecordInfo",
395
+ components: {
396
+ Link: /*#__PURE__*/React__default["default"].createElement("a", {
397
+ className: "neeto-ui-text-primary-800",
398
+ href: HELP_DOC_URL,
399
+ rel: "noreferrer",
400
+ target: "_blank"
401
+ })
402
+ }
403
+ }))), /*#__PURE__*/React__default["default"].createElement(TableWrapper, {
404
+ className: "pb-0"
405
+ }, /*#__PURE__*/React__default["default"].createElement(Table__default["default"], {
406
+ allowRowClick: false,
407
+ bordered: false,
408
+ columnData: columnData(),
409
+ rowSelection: false,
410
+ rowData: [{
411
+ name: hostname,
412
+ value: dnsTarget,
413
+ status: status === "active" ? "success" : "pending"
414
+ }]
415
+ })), /*#__PURE__*/React__default["default"].createElement(Checkbox__default["default"], {
416
+ checked: addedRedirectionCname,
417
+ "data-testid": "cname-added-custom-domain-checkbox",
418
+ disabled: cnameAdded,
419
+ label: t("neetoMolecules.customDomain.cnameAdded"),
420
+ onChange: function onChange() {
421
+ return setAddedRedirectionCname(function (value) {
422
+ return !value;
423
+ });
424
+ }
425
+ })), cnameAdded && /*#__PURE__*/React__default["default"].createElement(Callout__default["default"], {
426
+ style: "warning"
427
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
428
+ style: "body2"
429
+ }, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
430
+ i18nKey: "neetoMolecules.customDomain.domainRedirectionInfo",
431
+ values: {
432
+ hostname: hostname
433
+ },
434
+ components: {
435
+ Link: /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
436
+ href: HELP_DOC_URL,
437
+ rel: "noreferrer",
438
+ style: "link",
439
+ target: "_blank"
440
+ })
441
+ }
442
+ })))), /*#__PURE__*/React__default["default"].createElement(Pane__default["default"].Footer, null, /*#__PURE__*/React__default["default"].createElement("div", {
443
+ className: "flex items-center gap-2"
444
+ }, status !== "active" ? /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
445
+ disabled: isUpdating || !addedRedirectionCname,
446
+ label: t("neetoMolecules.common.actions.continue"),
447
+ loading: isUpdating,
448
+ onClick: handleUpdateCname
449
+ }) : /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
450
+ label: t("neetoMolecules.common.actions.done"),
451
+ onClick: onClose
452
+ }), /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
453
+ label: t("neetoMolecules.common.actions.cancel"),
454
+ style: "text",
455
+ onClick: onClose
456
+ }))));
457
+ };
458
+
459
+ 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; }
460
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty__default["default"](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; }
461
+ var Validation = function Validation(_ref) {
462
+ var customDomain = _ref.customDomain,
463
+ onClose = _ref.onClose,
464
+ setCustomDomain = _ref.setCustomDomain,
465
+ url = _ref.url,
466
+ currentStep = _ref.currentStep,
467
+ handleStepChange = _ref.handleStepChange,
468
+ incrementStep = _ref.incrementStep,
469
+ hasOne = _ref.hasOne;
470
+ var _useTranslation = reactI18next.useTranslation(),
471
+ t = _useTranslation.t;
472
+ var id = customDomain.id,
473
+ hostname = customDomain.hostname,
474
+ cnameValidationParams = customDomain.cnameValidationParams,
475
+ status = customDomain.status;
476
+ var isDomainValidated = status !== "pending_domain_validation";
477
+ var customDomainId = hasOne ? null : id;
478
+ var _useState = React.useState(false),
479
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
480
+ showValidationWarning = _useState2[0],
481
+ setShowValidationWarning = _useState2[1];
482
+ var _useValidateDomain = useValidateDomain(url),
483
+ validateDomain = _useValidateDomain.mutate,
484
+ isValidating = _useValidateDomain.isPending;
485
+ var handleValidateDomain = function handleValidateDomain() {
486
+ return validateDomain(customDomainId, {
487
+ onError: function onError() {
488
+ setShowValidationWarning(true);
489
+ },
490
+ onSuccess: function onSuccess(values) {
491
+ Toastr__default["default"].success(t("neetoMolecules.customDomain.validation.successMessage"));
492
+ incrementStep();
493
+ setCustomDomain(values);
494
+ }
495
+ });
496
+ };
497
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Pane__default["default"].Body, null, /*#__PURE__*/React__default["default"].createElement(Common, {
498
+ currentStep: currentStep,
499
+ handleStepChange: handleStepChange,
500
+ hostname: hostname
501
+ }), /*#__PURE__*/React__default["default"].createElement("div", {
502
+ className: "mb-6 w-full space-y-6"
503
+ }, /*#__PURE__*/React__default["default"].createElement("div", {
504
+ className: "space-y-1"
505
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
506
+ style: "h4"
507
+ }, t("neetoMolecules.customDomain.domainValidation")), /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
508
+ style: "body2"
509
+ }, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
510
+ i18nKey: "neetoMolecules.customDomain.cnameRecordInfo",
511
+ components: {
512
+ Link: /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
513
+ href: HELP_DOC_URL,
514
+ rel: "noreferrer",
515
+ style: "link",
516
+ target: "_blank"
517
+ })
518
+ },
519
+ values: {
520
+ proxyMessage: t("neetoMolecules.customDomain.proxyMessage")
521
+ }
522
+ }))), /*#__PURE__*/React__default["default"].createElement(TableWrapper, {
523
+ className: "pb-0"
524
+ }, /*#__PURE__*/React__default["default"].createElement(Table__default["default"], {
525
+ allowRowClick: false,
526
+ bordered: false,
527
+ columnData: columnData(),
528
+ rowSelection: false,
529
+ rowData: [_objectSpread(_objectSpread({}, cnameValidationParams), {}, {
530
+ status: isDomainValidated ? "success" : "pending"
531
+ })]
532
+ }))), showValidationWarning && /*#__PURE__*/React__default["default"].createElement(Callout__default["default"], {
533
+ style: "warning"
534
+ }, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
535
+ style: "body2"
536
+ }, /*#__PURE__*/React__default["default"].createElement(reactI18next.Trans, {
537
+ i18nKey: "neetoMolecules.customDomain.domainValidationInfo",
538
+ components: {
539
+ Link: /*#__PURE__*/React__default["default"].createElement("a", {
540
+ className: "neeto-ui-text-primary-800",
541
+ href: HELP_DOC_URL,
542
+ rel: "noreferrer",
543
+ target: "_blank"
544
+ })
545
+ }
546
+ })))), /*#__PURE__*/React__default["default"].createElement(Pane__default["default"].Footer, null, /*#__PURE__*/React__default["default"].createElement("div", {
547
+ className: "flex items-center gap-2"
548
+ }, /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
549
+ disabled: isValidating,
550
+ loading: isValidating,
551
+ label: isDomainValidated ? t("neetoMolecules.common.actions.continue") : t("neetoMolecules.customDomain.validation.buttonLabel.domain"),
552
+ onClick: isDomainValidated ? incrementStep : handleValidateDomain
553
+ }), /*#__PURE__*/React__default["default"].createElement(Button__default["default"], {
554
+ label: t("neetoMolecules.common.actions.cancel"),
555
+ style: "text",
556
+ onClick: onClose
557
+ }))));
558
+ };
559
+
560
+ var Settings = function Settings(_ref) {
561
+ var customDomain = _ref.customDomain,
562
+ url = _ref.url,
563
+ onClose = _ref.onClose,
564
+ setCustomDomain = _ref.setCustomDomain,
565
+ hasOne = _ref.hasOne;
566
+ var _useTranslation = reactI18next.useTranslation(),
567
+ t = _useTranslation.t;
568
+ var status = customDomain.status;
569
+ var _useState = React.useState(STATUS_INDEX.indexOf(status)),
570
+ _useState2 = _slicedToArray__default["default"](_useState, 2),
571
+ currentStep = _useState2[0],
572
+ setCurrentStep = _useState2[1];
573
+ var isNotValidationStep = STATUS_INDEX[currentStep] !== DOMAIN_VALIDATION_STATUS;
574
+ var handleStepChange = function handleStepChange(index) {
575
+ status !== DOMAIN_VALIDATION_STATUS && setCurrentStep(index);
576
+ };
577
+ var incrementStep = function incrementStep() {
578
+ return setCurrentStep(function (step) {
579
+ return step + 1;
580
+ });
581
+ };
582
+ var recordProps = {
583
+ currentStep: currentStep,
584
+ customDomain: customDomain,
585
+ handleStepChange: handleStepChange,
586
+ onClose: onClose,
587
+ setCustomDomain: setCustomDomain,
588
+ url: url,
589
+ incrementStep: incrementStep,
590
+ hasOne: hasOne
591
+ };
592
+ return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(Pane__default["default"].Header, null, /*#__PURE__*/React__default["default"].createElement(Typography__default["default"], {
593
+ style: "h2"
594
+ }, t("neetoMolecules.customDomain.settings"))), isNotValidationStep ? /*#__PURE__*/React__default["default"].createElement(Redirection, recordProps) : /*#__PURE__*/React__default["default"].createElement(Validation, recordProps));
595
+ };
596
+
597
+ var Manage = function Manage(_ref) {
598
+ var isOpen = _ref.isOpen,
599
+ onClose = _ref.onClose,
600
+ customDomain = _ref.customDomain,
601
+ setCustomDomain = _ref.setCustomDomain,
602
+ url = _ref.url,
603
+ hasOne = _ref.hasOne,
604
+ onCreate = _ref.onCreate;
605
+ return /*#__PURE__*/React__default["default"].createElement(Pane__default["default"], {
606
+ isOpen: isOpen,
607
+ onClose: onClose,
608
+ size: "large"
609
+ }, customDomain !== null && customDomain !== void 0 && customDomain.id ? /*#__PURE__*/React__default["default"].createElement(Settings, {
610
+ customDomain: customDomain,
611
+ hasOne: hasOne,
612
+ onClose: onClose,
613
+ setCustomDomain: setCustomDomain,
614
+ url: url
615
+ }) : /*#__PURE__*/React__default["default"].createElement(DomainField, {
616
+ customDomain: customDomain,
617
+ onClose: onClose,
618
+ onCreate: onCreate,
619
+ setCustomDomain: setCustomDomain,
620
+ url: url
621
+ }));
622
+ };
623
+
624
+ exports.DeleteAlert = DeleteAlert;
625
+ exports.Manage = Manage;
626
+ exports.useDeleteCustomDomain = useDeleteCustomDomain;
627
+ exports.useFetchCustomDomains = useFetchCustomDomains;
628
+ //# sourceMappingURL=index-39618d80.js.map