@bigbinary/neeto-webhooks-frontend 2.2.12 → 2.2.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11,6 +11,7 @@ var utils = require('@bigbinary/neeto-commons-frontend/utils');
11
11
  var Container = require('@bigbinary/neeto-molecules/Container');
12
12
  var Header$2 = require('@bigbinary/neeto-molecules/Header');
13
13
  var TableWrapper = require('@bigbinary/neeto-molecules/TableWrapper');
14
+ var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
14
15
  var NoData = require('@bigbinary/neetoui/NoData');
15
16
  var Spinner = require('@bigbinary/neetoui/Spinner');
16
17
  var Table = require('@bigbinary/neetoui/Table');
@@ -32,16 +33,18 @@ var Tab = require('@bigbinary/neetoui/Tab');
32
33
  var Tag = require('@bigbinary/neetoui/Tag');
33
34
  var i18next = require('i18next');
34
35
  var Alert = require('@bigbinary/neetoui/Alert');
36
+ var formik = require('formik');
35
37
  var Plus = require('@bigbinary/neeto-icons/Plus');
36
38
  var HelpPopover = require('@bigbinary/neeto-molecules/HelpPopover');
37
39
  var MoreDropdown = require('@bigbinary/neeto-molecules/MoreDropdown');
40
+ var Label = require('@bigbinary/neetoui/Label');
38
41
  var Input = require('@bigbinary/neetoui/formik/Input');
39
42
  var Form = require('@bigbinary/neetoui/formik/Form');
40
43
  var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
41
- var Select = require('@bigbinary/neetoui/formik/Select');
42
- var Switch = require('@bigbinary/neetoui/formik/Switch');
43
44
  var Textarea = require('@bigbinary/neetoui/formik/Textarea');
45
+ var Checkbox = require('@bigbinary/neetoui/Checkbox');
44
46
  var yup = require('yup');
47
+ var Switch = require('@bigbinary/neetoui/Switch');
45
48
  var SubHeader = require('@bigbinary/neeto-molecules/SubHeader');
46
49
 
47
50
  function _interopNamespaceDefault(e) {
@@ -472,7 +475,6 @@ var Deliveries = function Deliveries(_ref) {
472
475
  isFetching = _useFetchDeliveries.isFetching,
473
476
  _useFetchDeliveries$d = _useFetchDeliveries.data,
474
477
  _useFetchDeliveries$d2 = _useFetchDeliveries$d === void 0 ? {} : _useFetchDeliveries$d,
475
- endpoint = _useFetchDeliveries$d2.endpoint,
476
478
  totalCount = _useFetchDeliveries$d2.totalCount,
477
479
  _useFetchDeliveries$d3 = _useFetchDeliveries$d2.deliveries,
478
480
  deliveries = _useFetchDeliveries$d3 === void 0 ? [] : _useFetchDeliveries$d3;
@@ -484,13 +486,10 @@ var Deliveries = function Deliveries(_ref) {
484
486
  text: t("neetoWebhooks.webhook.title")
485
487
  }, {
486
488
  link: window.location.pathname,
487
- text: endpoint
489
+ text: t("neetoWebhooks.delivery.title")
488
490
  }]);
489
491
  if (isLoading) {
490
- return /*#__PURE__*/jsxRuntime.jsx("div", {
491
- className: "flex h-full w-full items-center justify-center",
492
- children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {})
493
- });
492
+ return /*#__PURE__*/jsxRuntime.jsx(PageLoader, {});
494
493
  }
495
494
  return /*#__PURE__*/jsxRuntime.jsxs(Container, {
496
495
  className: "w-full",
@@ -519,7 +518,7 @@ var Deliveries = function Deliveries(_ref) {
519
518
  rowData: deliveries
520
519
  })
521
520
  }) : /*#__PURE__*/jsxRuntime.jsx("div", {
522
- className: "flex h-full w-full items-center justify-center",
521
+ className: "flex justify-center items-center w-full h-full",
523
522
  children: /*#__PURE__*/jsxRuntime.jsx(NoData, {
524
523
  description: t("neetoWebhooks.delivery.empty.description"),
525
524
  title: t("neetoWebhooks.delivery.empty.title")
@@ -635,6 +634,44 @@ var useFetchEvents = function useFetchEvents() {
635
634
  });
636
635
  };
637
636
 
637
+ var MENU_ITEMS = {
638
+ EDIT: "edit",
639
+ DELETE: "delete"
640
+ };
641
+ var WEBHOOK_INITIAL_VALUES = {
642
+ endpoint: "",
643
+ events: [],
644
+ secret: "",
645
+ isActive: true
646
+ };
647
+
648
+ var EventCheckbox = function EventCheckbox(_ref) {
649
+ var events = _ref.events,
650
+ values = _ref.values,
651
+ arrayHelpers = _ref.arrayHelpers;
652
+ var handleToggle = function handleToggle(isSelected, index, event) {
653
+ if (isSelected) {
654
+ arrayHelpers.remove(index);
655
+ } else {
656
+ arrayHelpers.push(event);
657
+ }
658
+ };
659
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
660
+ children: events.map(function (event) {
661
+ var index = neetoCist.findIndexBy(event, values.events);
662
+ var isSelected = ramda.gt(index, -1);
663
+ return /*#__PURE__*/jsxRuntime.jsx(Checkbox, {
664
+ checked: isSelected,
665
+ className: "my-4",
666
+ label: event.label,
667
+ onChange: function onChange() {
668
+ return handleToggle(isSelected, index, event);
669
+ }
670
+ }, event.identifier);
671
+ })
672
+ });
673
+ };
674
+
638
675
  // Unique ID creation requires a high quality random # generator. In the browser we therefore
639
676
  // require the crypto API and do not support built-in fallback to lower quality random number
640
677
  // generators (like Math.random()).
@@ -699,9 +736,29 @@ function v4(options, buf, offset) {
699
736
  return stringify(rnds);
700
737
  }
701
738
 
702
- var MENU_ITEMS = {
703
- EDIT: "edit",
704
- DELETE: "delete"
739
+ var ToggleActiveSwitch = function ToggleActiveSwitch(_ref) {
740
+ var isActive = _ref.isActive,
741
+ webhookId = _ref.webhookId;
742
+ var _useState = react.useState(isActive),
743
+ _useState2 = _slicedToArray(_useState, 2),
744
+ status = _useState2[0],
745
+ setStatus = _useState2[1];
746
+ var _useUpdateWebhook = useUpdateWebhook(webhookId),
747
+ updateWebhook = _useUpdateWebhook.mutate;
748
+ var handleToggle = function handleToggle(event) {
749
+ var updatedStatus = event.target.checked;
750
+ setStatus(updatedStatus);
751
+ updateWebhook({
752
+ id: webhookId,
753
+ payload: {
754
+ isActive: updatedStatus
755
+ }
756
+ });
757
+ };
758
+ return /*#__PURE__*/jsxRuntime.jsx(Switch, {
759
+ checked: status,
760
+ onChange: handleToggle
761
+ });
705
762
  };
706
763
 
707
764
  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; }
@@ -797,13 +854,10 @@ var buildColumns = function buildColumns(_ref6) {
797
854
  title: i18next.t("neetoWebhooks.webhook.active"),
798
855
  key: "isActive",
799
856
  dataIndex: "isActive",
800
- render: function render(isActive) {
801
- return isActive ? /*#__PURE__*/jsxRuntime.jsx(Tag, {
802
- label: i18next.t("neetoWebhooks.webhook.activeStatuses.active"),
803
- style: "primary"
804
- }) : /*#__PURE__*/jsxRuntime.jsx(Tag, {
805
- label: i18next.t("neetoWebhooks.webhook.activeStatuses.inactive"),
806
- style: "danger"
857
+ render: function render(isActive, webhook) {
858
+ return /*#__PURE__*/jsxRuntime.jsx(ToggleActiveSwitch, {
859
+ isActive: isActive,
860
+ webhookId: webhook.id
807
861
  });
808
862
  },
809
863
  width: 150
@@ -812,7 +866,10 @@ var buildColumns = function buildColumns(_ref6) {
812
866
  dataIndex: "events",
813
867
  key: "events",
814
868
  render: function render(events) {
815
- return ramda.pluck("label", events).sort().join(", ");
869
+ return /*#__PURE__*/jsxRuntime.jsx("span", {
870
+ className: "whitespace-normal",
871
+ children: ramda.pluck("label", events).sort().join(", ")
872
+ });
816
873
  },
817
874
  width: 300
818
875
  }];
@@ -859,12 +916,9 @@ var AddWebhookPane = function AddWebhookPane(_ref) {
859
916
  var _useFetchEvents = useFetchEvents(),
860
917
  events = _useFetchEvents.data,
861
918
  isLoading = _useFetchEvents.isLoading;
862
- var initialValues = editingWebhookId ? webhook : {
863
- endpoint: "",
864
- events: events,
865
- secret: "",
866
- isActive: true
867
- };
919
+ var initialValues = editingWebhookId ? _objectSpread$1(_objectSpread$1({}, WEBHOOK_INITIAL_VALUES), webhook) : _objectSpread$1(_objectSpread$1({}, WEBHOOK_INITIAL_VALUES), {}, {
920
+ events: events
921
+ });
868
922
  var handleSubmit = function handleSubmit(values) {
869
923
  var payload = buildPayload({
870
924
  isEditing: editingWebhookId,
@@ -927,7 +981,9 @@ var AddWebhookPane = function AddWebhookPane(_ref) {
927
981
  },
928
982
  children: function children(_ref2) {
929
983
  var setFieldValue = _ref2.setFieldValue,
930
- values = _ref2.values;
984
+ values = _ref2.values,
985
+ touched = _ref2.touched,
986
+ errors = _ref2.errors;
931
987
  return isLoading ? /*#__PURE__*/jsxRuntime.jsx("div", {
932
988
  className: "flex items-center justify-center",
933
989
  children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {})
@@ -944,18 +1000,9 @@ var AddWebhookPane = function AddWebhookPane(_ref) {
944
1000
  placeholder: t("neetoWebhooks.webhook.endpointPlaceholder"),
945
1001
  ref: endpointRef,
946
1002
  rows: 1
947
- }), !isLoading && /*#__PURE__*/jsxRuntime.jsx(Select, {
948
- isMulti: true,
949
- required: true,
950
- getOptionLabel: ramda.prop("label"),
951
- getOptionValue: ramda.prop("identifier"),
952
- label: t("neetoWebhooks.common.event", constants.PLURAL),
953
- name: "events",
954
- options: events,
955
- placeholder: t("neetoWebhooks.webhook.eventPlaceholder")
956
1003
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
957
1004
  className: "space-y-2",
958
- children: [/*#__PURE__*/jsxRuntime.jsxs("span", {
1005
+ children: [/*#__PURE__*/jsxRuntime.jsxs(Label, {
959
1006
  className: "flex items-center gap-x-2",
960
1007
  children: [t("neetoWebhooks.webhook.secret"), /*#__PURE__*/jsxRuntime.jsx(HelpPopover, {
961
1008
  helpLinkProps: {
@@ -1001,15 +1048,24 @@ var AddWebhookPane = function AddWebhookPane(_ref) {
1001
1048
  }
1002
1049
  })]
1003
1050
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
1004
- className: "flex gap-2",
1005
- children: [/*#__PURE__*/jsxRuntime.jsx(Switch, {
1006
- label: t("neetoWebhooks.webhook.active"),
1007
- name: "isActive"
1008
- }), /*#__PURE__*/jsxRuntime.jsx(HelpPopover, {
1009
- popoverProps: {
1010
- position: "bottom"
1011
- },
1012
- description: values.isActive ? t("neetoWebhooks.webhook.statusActiveHelpDescription") : t("neetoWebhooks.webhook.statusInactiveHelpDescription")
1051
+ className: "space-y-2",
1052
+ children: [/*#__PURE__*/jsxRuntime.jsx(Label, {
1053
+ required: true,
1054
+ children: t("neetoWebhooks.common.event", constants.PLURAL)
1055
+ }), !isLoading && /*#__PURE__*/jsxRuntime.jsx(formik.FieldArray, {
1056
+ name: "events",
1057
+ render: function render(arrayHelpers) {
1058
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
1059
+ children: [/*#__PURE__*/jsxRuntime.jsx(EventCheckbox, {
1060
+ arrayHelpers: arrayHelpers,
1061
+ events: events,
1062
+ values: values
1063
+ }), touched.events && errors.events && /*#__PURE__*/jsxRuntime.jsx("div", {
1064
+ className: "neeto-ui-text-error-800 text-xs mt-1",
1065
+ children: errors.events
1066
+ })]
1067
+ });
1068
+ }
1013
1069
  })]
1014
1070
  })]
1015
1071
  })
@@ -1138,10 +1194,7 @@ var Webhooks = function Webhooks(_ref) {
1138
1194
  setIsDeleteAlertOpen(true);
1139
1195
  }, []);
1140
1196
  if (isLoading) {
1141
- return /*#__PURE__*/jsxRuntime.jsx("div", {
1142
- className: "flex h-full w-full items-center justify-center",
1143
- children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {})
1144
- });
1197
+ return /*#__PURE__*/jsxRuntime.jsx(PageLoader, {});
1145
1198
  }
1146
1199
  return /*#__PURE__*/jsxRuntime.jsxs(Container, {
1147
1200
  className: containerClassName,
@@ -1169,7 +1222,7 @@ var Webhooks = function Webhooks(_ref) {
1169
1222
  })
1170
1223
  })
1171
1224
  }) : /*#__PURE__*/jsxRuntime.jsx("div", {
1172
- className: "flex h-full w-full items-center justify-center",
1225
+ className: "flex justify-center items-center w-full h-full",
1173
1226
  children: /*#__PURE__*/jsxRuntime.jsx(NoData, {
1174
1227
  title: t("neetoWebhooks.webhook.empty"),
1175
1228
  helpText: /*#__PURE__*/jsxRuntime.jsx(Button, {