@bigbinary/neeto-custom-domains-frontend 2.1.0-beta1 → 2.1.0-beta3

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.
@@ -29,8 +29,10 @@ var i18next = require('i18next');
29
29
  var Yup = require('yup');
30
30
  var Table = require('@bigbinary/neetoui/Table');
31
31
  var Toastr = require('@bigbinary/neetoui/Toastr');
32
+ var ramda = require('ramda');
32
33
  var CopyToClipboardButton = require('@bigbinary/neeto-molecules/CopyToClipboardButton');
33
34
  var psl = require('psl');
35
+ var Info = require('@bigbinary/neeto-icons/Info');
34
36
  var NeetoHeader = require('@bigbinary/neeto-molecules/Header');
35
37
  var HelpPopover = require('@bigbinary/neeto-molecules/HelpPopover');
36
38
 
@@ -353,6 +355,9 @@ var getDnsProviderData = function getDnsProviderData(dnsProvider) {
353
355
  var hostname = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : "";
354
356
  return dnsProviderData(hostname)[dnsProvider];
355
357
  };
358
+ var isRootLevelDomain = function isRootLevelDomain(hostname) {
359
+ return ramda.isNil(psl.parse(hostname).subdomain);
360
+ };
356
361
  var commonColumnData = function commonColumnData(dnsProvider) {
357
362
  var dnsProviderInfo = getDnsProviderData(dnsProvider);
358
363
  return [{
@@ -423,7 +428,7 @@ var columnData = function columnData(dnsProvider) {
423
428
  });
424
429
  }
425
430
  };
426
- var netoworkSolutionsRefersToColumn = {
431
+ var networkSolutionsRefersToColumn = {
427
432
  title: "Refers to",
428
433
  dataIndex: "proxy",
429
434
  width: "20%",
@@ -435,7 +440,7 @@ var columnData = function columnData(dnsProvider) {
435
440
  }
436
441
  };
437
442
  dnsProvider === "cloudflare" && commonColumns.splice(3, 0, cloudflareProxyColumn);
438
- dnsProvider === "networksolutions" && commonColumns.splice(1, 0, netoworkSolutionsRefersToColumn);
443
+ dnsProvider === "networksolutions" && commonColumns.splice(1, 0, networkSolutionsRefersToColumn);
439
444
  return commonColumns;
440
445
  };
441
446
  var rowData = function rowData(dnsProvider, hostname, dnsTarget) {
@@ -473,7 +478,8 @@ var dnsProviderData = function dnsProviderData(hostname) {
473
478
  rootDomain: "@",
474
479
  subdomain: psl.parse(hostname).subdomain
475
480
  }
476
- }
481
+ },
482
+ hasRootLevelDomainSupport: true
477
483
  },
478
484
  namecheap: {
479
485
  name: "Namecheap",
@@ -497,7 +503,8 @@ var dnsProviderData = function dnsProviderData(hostname) {
497
503
  rootDomain: "@",
498
504
  subdomain: psl.parse(hostname).subdomain
499
505
  }
500
- }
506
+ },
507
+ hasRootLevelDomainSupport: true
501
508
  },
502
509
  hostinger: {
503
510
  name: "Hostinger",
@@ -521,7 +528,8 @@ var dnsProviderData = function dnsProviderData(hostname) {
521
528
  rootDomain: "@",
522
529
  subdomain: psl.parse(hostname).subdomain
523
530
  }
524
- }
531
+ },
532
+ hasRootLevelDomainSupport: true
525
533
  },
526
534
  digitalocean: {
527
535
  name: "DigitalOcean",
@@ -545,7 +553,8 @@ var dnsProviderData = function dnsProviderData(hostname) {
545
553
  rootDomain: psl.parse(hostname).domain,
546
554
  subdomain: psl.parse(hostname).subdomain
547
555
  }
548
- }
556
+ },
557
+ hasRootLevelDomainSupport: false
549
558
  },
550
559
  godaddy: {
551
560
  name: "GoDaddy",
@@ -569,7 +578,8 @@ var dnsProviderData = function dnsProviderData(hostname) {
569
578
  rootDomain: psl.parse(hostname).domain,
570
579
  subdomain: psl.parse(hostname).subdomain
571
580
  }
572
- }
581
+ },
582
+ hasRootLevelDomainSupport: false
573
583
  },
574
584
  squarespace: {
575
585
  name: "Squarespace",
@@ -593,7 +603,8 @@ var dnsProviderData = function dnsProviderData(hostname) {
593
603
  rootDomain: "@",
594
604
  subdomain: psl.parse(hostname).subdomain
595
605
  }
596
- }
606
+ },
607
+ hasRootLevelDomainSupport: true
597
608
  },
598
609
  wix: {
599
610
  name: "Wix",
@@ -618,7 +629,8 @@ var dnsProviderData = function dnsProviderData(hostname) {
618
629
  rootDomain: psl.parse(hostname).domain,
619
630
  subdomain: psl.parse(hostname).subdomain
620
631
  }
621
- }
632
+ },
633
+ hasRootLevelDomainSupport: false
622
634
  },
623
635
  porkbun: {
624
636
  name: "Porkbun",
@@ -626,7 +638,7 @@ var dnsProviderData = function dnsProviderData(hostname) {
626
638
  header: {
627
639
  type: "Type",
628
640
  name: "Host",
629
- target: "Answer",
641
+ target: "Answer/Value",
630
642
  ttl: "TTL"
631
643
  },
632
644
  values: {
@@ -642,7 +654,8 @@ var dnsProviderData = function dnsProviderData(hostname) {
642
654
  rootDomain: psl.parse(hostname).domain,
643
655
  subdomain: psl.parse(hostname).subdomain
644
656
  }
645
- }
657
+ },
658
+ hasRootLevelDomainSupport: true
646
659
  },
647
660
  networksolutions: {
648
661
  name: "Network Solutions",
@@ -666,7 +679,8 @@ var dnsProviderData = function dnsProviderData(hostname) {
666
679
  rootDomain: "@",
667
680
  subdomain: psl.parse(hostname).subdomain
668
681
  }
669
- }
682
+ },
683
+ hasRootLevelDomainSupport: true
670
684
  },
671
685
  aws: {
672
686
  name: "AWS",
@@ -690,9 +704,11 @@ var dnsProviderData = function dnsProviderData(hostname) {
690
704
  rootDomain: psl.parse(hostname).domain,
691
705
  subdomain: psl.parse(hostname).subdomain
692
706
  }
693
- }
707
+ },
708
+ hasRootLevelDomainSupport: false
694
709
  },
695
710
  unknown: {
711
+ name: "this provider",
696
712
  loginUrl: "https://dash.cloudflare.com/login",
697
713
  header: {
698
714
  type: "Type",
@@ -713,11 +729,62 @@ var dnsProviderData = function dnsProviderData(hostname) {
713
729
  rootDomain: "@",
714
730
  subdomain: psl.parse(hostname).subdomain
715
731
  }
716
- }
732
+ },
733
+ hasRootLevelDomainSupport: false
717
734
  }
718
735
  };
719
736
  };
720
737
 
738
+ var RootLevelDomainFallback = function RootLevelDomainFallback(_ref) {
739
+ var _dnsProviderData, _dnsProviderData2;
740
+ var t = _ref.t,
741
+ dnsProvider = _ref.dnsProvider,
742
+ onClose = _ref.onClose,
743
+ url = _ref.url,
744
+ hostname = _ref.hostname;
745
+ var _useDeleteCustomDomai = useDeleteCustomDomain(url, {
746
+ onSettled: function onSettled() {
747
+ }
748
+ }),
749
+ deleteCustomDomain = _useDeleteCustomDomai.mutate,
750
+ isDeleting = _useDeleteCustomDomai.isPending;
751
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
752
+ children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
753
+ children: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
754
+ i18nKey: "neetoCustomDomains.validation.rootDomainUnsupported",
755
+ values: {
756
+ provider: (_dnsProviderData = dnsProviderData(hostname)) === null || _dnsProviderData === void 0 || (_dnsProviderData = _dnsProviderData[dnsProvider]) === null || _dnsProviderData === void 0 ? void 0 : _dnsProviderData.name,
757
+ providerName: neetoCist.capitalize((_dnsProviderData2 = dnsProviderData(hostname)) === null || _dnsProviderData2 === void 0 || (_dnsProviderData2 = _dnsProviderData2[dnsProvider]) === null || _dnsProviderData2 === void 0 ? void 0 : _dnsProviderData2.name),
758
+ rootDomain: hostname
759
+ },
760
+ components: {
761
+ br: /*#__PURE__*/jsxRuntime.jsx("br", {}),
762
+ span: /*#__PURE__*/jsxRuntime.jsx("span", {}),
763
+ Callout: /*#__PURE__*/jsxRuntime.jsx(Callout, {
764
+ icon: Info,
765
+ style: "info"
766
+ })
767
+ }
768
+ })
769
+ }), /*#__PURE__*/jsxRuntime.jsx(Pane.Footer, {
770
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
771
+ className: "flex items-center gap-2",
772
+ children: [/*#__PURE__*/jsxRuntime.jsx(Button, {
773
+ "data-cy": "update-custom-domain-button",
774
+ label: t("neetoCustomDomains.validation.buttonLabel.updateDomain"),
775
+ onClick: deleteCustomDomain,
776
+ loading: isDeleting
777
+ }), /*#__PURE__*/jsxRuntime.jsx(Button, {
778
+ label: t("neetoCustomDomains.actions.cancel"),
779
+ style: "text",
780
+ onClick: onClose
781
+ })]
782
+ })
783
+ })]
784
+ });
785
+ };
786
+ var RootLevelDomainFallback$1 = reactUtils.withT(RootLevelDomainFallback);
787
+
721
788
  var Validation = function Validation(_ref) {
722
789
  var customDomain = _ref.customDomain,
723
790
  onClose = _ref.onClose,
@@ -735,6 +802,7 @@ var Validation = function Validation(_ref) {
735
802
  setErrorKey = _useState2[1];
736
803
  var isDomainValidated = status === "active";
737
804
  var dnsProviderInfo = getDnsProviderData(dnsProvider);
805
+ var domainType = isRootLevelDomain(hostname) ? "rootDomain" : "subdomain";
738
806
  var _useValidateDomain = useValidateDomain(url, {
739
807
  onError: function onError(_ref2) {
740
808
  var response = _ref2.response;
@@ -747,6 +815,14 @@ var Validation = function Validation(_ref) {
747
815
  }),
748
816
  validateDomain = _useValidateDomain.mutate,
749
817
  isValidating = _useValidateDomain.isPending;
818
+ if (isRootLevelDomain(hostname) && !dnsProviderInfo.hasRootLevelDomainSupport) {
819
+ return /*#__PURE__*/jsxRuntime.jsx(RootLevelDomainFallback$1, {
820
+ dnsProvider: dnsProvider,
821
+ onClose: onClose,
822
+ url: url,
823
+ hostname: hostname
824
+ });
825
+ }
750
826
  return /*#__PURE__*/jsxRuntime.jsxs("div", {
751
827
  children: [/*#__PURE__*/jsxRuntime.jsxs(Pane.Body, {
752
828
  className: "space-y-4",
@@ -755,7 +831,9 @@ var Validation = function Validation(_ref) {
755
831
  children: [/*#__PURE__*/jsxRuntime.jsx(Typography, {
756
832
  style: "h4",
757
833
  weight: "medium",
758
- children: t("neetoCustomDomains.cnameRecordTitle")
834
+ children: t("neetoCustomDomains.cnameRecordTitle", {
835
+ domainName: hostname
836
+ })
759
837
  }), /*#__PURE__*/jsxRuntime.jsx(Typography, {
760
838
  style: "body2",
761
839
  children: dnsProvider !== "unknown" ? /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
@@ -771,7 +849,7 @@ var Validation = function Validation(_ref) {
771
849
  target: "_blank"
772
850
  }),
773
851
  Link: /*#__PURE__*/jsxRuntime.jsx(Button, {
774
- href: dnsHelpDocs[dnsProvider],
852
+ href: dnsHelpDocs[dnsProvider][domainType],
775
853
  rel: "noreferrer",
776
854
  style: "link",
777
855
  target: "_blank"
@@ -781,7 +859,7 @@ var Validation = function Validation(_ref) {
781
859
  i18nKey: "neetoCustomDomains.cnameRecordInfo",
782
860
  components: {
783
861
  Link: /*#__PURE__*/jsxRuntime.jsx(Button, {
784
- href: dnsHelpDocs[dnsProvider],
862
+ href: dnsHelpDocs[dnsProvider][domainType],
785
863
  rel: "noreferrer",
786
864
  style: "link",
787
865
  target: "_blank"
@@ -796,7 +874,10 @@ var Validation = function Validation(_ref) {
796
874
  columnData: columnData(dnsProvider),
797
875
  enableColumnFreeze: false,
798
876
  rowData: rowData(dnsProvider, hostname, dnsTarget),
799
- rowSelection: false
877
+ rowSelection: false,
878
+ scroll: {
879
+ x: '100%'
880
+ }
800
881
  })
801
882
  }), neetoCist.isNotEmpty(errorKey) && /*#__PURE__*/jsxRuntime.jsx(Callout, {
802
883
  style: STATUS_TAG_STYLES[status],