@bigbinary/neeto-rules-frontend 0.4.1 → 0.4.3

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/dist/index.cjs.js CHANGED
@@ -1097,7 +1097,7 @@ var useOnButtonPressed = function useOnButtonPressed(ref, handler) {
1097
1097
  var buttonPressed = function buttonPressed() {
1098
1098
  var keysPressed = {};
1099
1099
  var listener = function listener(event) {
1100
- if (!ref.current) return;
1100
+ if (ramda.isNil(event.key)) return;
1101
1101
  keysPressed[event.key] = true;
1102
1102
  if ((keysPressed["Meta"] || keysPressed["Control"]) && event.key === "Enter") {
1103
1103
  handler();
@@ -2355,8 +2355,10 @@ var ActionItem = function ActionItem(_ref) {
2355
2355
  elementProps = _ref.elementProps,
2356
2356
  onSelectAction = _ref.onSelectAction,
2357
2357
  selectedActionOptions = _ref.selectedActionOptions;
2358
+ var _useTranslation = reactI18next.useTranslation(),
2359
+ t = _useTranslation.t;
2358
2360
  var _useState = React.useState({
2359
- label: i18next.t("neetoRules.form.doThis")
2361
+ label: t("neetoRules.form.doThis")
2360
2362
  }),
2361
2363
  _useState2 = _slicedToArray(_useState, 2),
2362
2364
  selectedOption = _useState2[0],
@@ -2376,9 +2378,9 @@ var ActionItem = function ActionItem(_ref) {
2376
2378
  touched = _useFormikContext.touched;
2377
2379
  var optionList = elementProps.actionOptions;
2378
2380
  var actions = values[parentName].value || [];
2379
- var label = index ? i18next.t("neetoRules.common.and", {
2380
- what: i18next.t("neetoRules.common.then").toLowerCase()
2381
- }) : i18next.t("neetoRules.common.then");
2381
+ var label = index ? t("neetoRules.common.and", {
2382
+ what: t("neetoRules.common.then")
2383
+ }) : t("neetoRules.common.then");
2382
2384
  var actionOptions = React.useMemo(function () {
2383
2385
  return getActionOptions(action, actions, optionList);
2384
2386
  }, [action, actions]);
@@ -2386,7 +2388,7 @@ var ActionItem = function ActionItem(_ref) {
2386
2388
  return getFieldDetails$1(action.name, actionOptions);
2387
2389
  }, [action, actionOptions]);
2388
2390
  var searchedOptions = getSearchedOptions$3(actionOptions, searchTerm);
2389
- var isActionSelected = (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) === i18next.t("neetoRules.form.doThis") && errors.actions && touched.actions && ramda.isNotNil((_errors$actions = errors.actions) === null || _errors$actions === void 0 || (_errors$actions = _errors$actions.value) === null || _errors$actions === void 0 ? void 0 : _errors$actions[index]) && ramda.isNotNil((_touched$actions = touched.actions) === null || _touched$actions === void 0 || (_touched$actions = _touched$actions.value) === null || _touched$actions === void 0 ? void 0 : _touched$actions[index]);
2391
+ var isActionSelected = (selectedOption === null || selectedOption === void 0 ? void 0 : selectedOption.label) === t("neetoRules.form.doThis") && errors.actions && touched.actions && ramda.isNotNil((_errors$actions = errors.actions) === null || _errors$actions === void 0 || (_errors$actions = _errors$actions.value) === null || _errors$actions === void 0 ? void 0 : _errors$actions[index]) && ramda.isNotNil((_touched$actions = touched.actions) === null || _touched$actions === void 0 || (_touched$actions = _touched$actions.value) === null || _touched$actions === void 0 ? void 0 : _touched$actions[index]);
2390
2392
  var handleSelectOption = function handleSelectOption(option) {
2391
2393
  setFieldValue("".concat(name, ".name"), option.value);
2392
2394
  setFieldValue("".concat(name, ".metadata"), {});
@@ -2406,7 +2408,8 @@ var ActionItem = function ActionItem(_ref) {
2406
2408
  }
2407
2409
  return [];
2408
2410
  };
2409
- var _ref2 = (action === null || action === void 0 ? void 0 : action.name) === "message_to_slack" && getSlackChannelErrors(getSelectedFieldOptions(), action),
2411
+ var isMessageToSlackAction = (action === null || action === void 0 ? void 0 : action.name) === "message_to_slack";
2412
+ var _ref2 = isMessageToSlackAction && getSlackChannelErrors(getSelectedFieldOptions(), action),
2410
2413
  selectDropDownHasError = _ref2.error,
2411
2414
  selectDropDownErrorMessage = _ref2.message;
2412
2415
  var findSelectedOption = function findSelectedOption() {
@@ -2414,18 +2417,35 @@ var ActionItem = function ActionItem(_ref) {
2414
2417
  value: selectedField === null || selectedField === void 0 ? void 0 : selectedField.value,
2415
2418
  label: selectedField === null || selectedField === void 0 ? void 0 : selectedField.label
2416
2419
  }) : setSelectedOption({
2417
- label: i18next.t("neetoRules.form.doThis")
2420
+ label: t("neetoRules.form.doThis")
2418
2421
  });
2419
2422
  };
2423
+ var _ref3 = selectedField || {},
2424
+ _ref3$isDisabled = _ref3.isDisabled,
2425
+ isDisabled = _ref3$isDisabled === void 0 ? false : _ref3$isDisabled,
2426
+ _ref3$disabledReason = _ref3.disabledReason,
2427
+ disabledReason = _ref3$disabledReason === void 0 ? "" : _ref3$disabledReason;
2428
+ var renderErrorCallout = function renderErrorCallout(message) {
2429
+ return /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
2430
+ className: "neeto-ui-text-white neeto-ui-bg-error-500 neeto-ui-rounded-sm -mx-4 w-full p-3",
2431
+ style: "h5"
2432
+ }, message);
2433
+ };
2434
+ var renderDisabledReason = function renderDisabledReason() {
2435
+ if (typeof disabledReason === "function") {
2436
+ return disabledReason(selectedField);
2437
+ }
2438
+ if (typeof disabledReason === "string" && neetoCist.isPresent(disabledReason)) {
2439
+ return renderErrorCallout(disabledReason);
2440
+ }
2441
+ return null;
2442
+ };
2420
2443
  React.useEffect(function () {
2421
2444
  findSelectedOption();
2422
2445
  }, [selectedField]);
2423
2446
  return /*#__PURE__*/React__default["default"].createElement("div", {
2424
2447
  className: "mb-1 flex max-w-2xl flex-wrap gap-x-1 gap-y-2"
2425
- }, selectDropDownHasError && /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
2426
- className: "neeto-ui-text-white neeto-ui-bg-error-500 neeto-ui-rounded-sm -mx-4 w-full p-3",
2427
- style: "h5"
2428
- }, selectDropDownErrorMessage), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
2448
+ }, selectDropDownHasError && renderErrorCallout(selectDropDownErrorMessage), !isMessageToSlackAction && isDisabled && renderDisabledReason(), /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
2429
2449
  className: "neeto-ui-text-gray-700 mt-1",
2430
2450
  style: "h5",
2431
2451
  weight: "normal"
@@ -2454,7 +2474,7 @@ var ActionItem = function ActionItem(_ref) {
2454
2474
  autoFocus: true,
2455
2475
  className: "mb-1",
2456
2476
  "data-cy": "search-text-field",
2457
- placeholder: i18next.t("neetoRules.common.search"),
2477
+ placeholder: t("neetoRules.common.search"),
2458
2478
  prefix: /*#__PURE__*/React__default["default"].createElement(neetoIcons.Search, null),
2459
2479
  value: searchTerm,
2460
2480
  onChange: function onChange(e) {
@@ -2478,7 +2498,7 @@ var ActionItem = function ActionItem(_ref) {
2478
2498
  }, option.label);
2479
2499
  })), ramda.isEmpty(actionOptions) && /*#__PURE__*/React__default["default"].createElement(MenuItem$7.Button, {
2480
2500
  "data-cy": "no-options-menu-item"
2481
- }, i18next.t("neetoRules.common.noOptions")))), /*#__PURE__*/React__default["default"].createElement(ActionSubItem, {
2501
+ }, t("neetoRules.common.noOptions")))), /*#__PURE__*/React__default["default"].createElement(ActionSubItem, {
2482
2502
  action: action,
2483
2503
  index: index,
2484
2504
  selectedField: selectedField,
@@ -4146,9 +4166,10 @@ var Events$1 = function Events(_ref) {
4146
4166
  }));
4147
4167
  };
4148
4168
 
4149
- var _excluded$5 = ["data", "label", "name", "performerName", "conditionsName", "onSelectEvent"];
4169
+ var _excluded$5 = ["addButtonTooltipProps", "data", "label", "name", "performerName", "conditionsName", "onSelectEvent"];
4150
4170
  var EventConditions = function EventConditions(_ref) {
4151
- var data = _ref.data,
4171
+ var addButtonTooltipProps = _ref.addButtonTooltipProps,
4172
+ data = _ref.data,
4152
4173
  label = _ref.label,
4153
4174
  name = _ref.name,
4154
4175
  performerName = _ref.performerName,
@@ -4158,6 +4179,8 @@ var EventConditions = function EventConditions(_ref) {
4158
4179
  var _useFormikContext = formik.useFormikContext(),
4159
4180
  values = _useFormikContext.values,
4160
4181
  setFieldValue = _useFormikContext.setFieldValue;
4182
+ var _useTranslation = reactI18next.useTranslation(),
4183
+ t = _useTranslation.t;
4161
4184
  var elementProps = data[name] || {};
4162
4185
  var conditionProps = data[conditionsName] || {};
4163
4186
  var conditions = values[conditionsName].value || [];
@@ -4184,18 +4207,21 @@ var EventConditions = function EventConditions(_ref) {
4184
4207
  name: name,
4185
4208
  onSelectEvent: onSelectEvent,
4186
4209
  performerName: performerName
4187
- })), showAddButton && /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
4210
+ })), showAddButton && /*#__PURE__*/React__default["default"].createElement(neetoui.Tooltip, _extends({
4211
+ content: t("neetoRules.form.noTicketFields")
4212
+ }, addButtonTooltipProps), /*#__PURE__*/React__default["default"].createElement("div", null, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
4188
4213
  "data-cy": "add-condition-button",
4189
4214
  "data-test-id": "automation-rules-add-events-button",
4215
+ disabled: ramda.isEmpty(conditionProps === null || conditionProps === void 0 ? void 0 : conditionProps.conditionOptions),
4190
4216
  icon: neetoIcons.Plus,
4191
4217
  size: 32,
4192
- style: "icon",
4218
+ style: "text",
4193
4219
  tooltipProps: {
4194
- content: i18next.t("neetoRules.form.addCondition"),
4220
+ content: t("neetoRules.form.addCondition"),
4195
4221
  position: "top"
4196
4222
  },
4197
4223
  onClick: handleAddCondition
4198
- })), !showAddButton && /*#__PURE__*/React__default["default"].createElement("div", {
4224
+ })))), !showAddButton && /*#__PURE__*/React__default["default"].createElement("div", {
4199
4225
  className: "mt-3"
4200
4226
  }, /*#__PURE__*/React__default["default"].createElement(Conditions, _extends({
4201
4227
  data: data,