@bigbinary/neeto-message-templates-frontend 0.6.6 → 0.6.7

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.js CHANGED
@@ -6,6 +6,7 @@ import NeetoHeader from '@bigbinary/neeto-molecules/Header';
6
6
  import SubHeader from '@bigbinary/neeto-molecules/SubHeader';
7
7
  import { Button, Typography, Pane, Table, NoData, Alert, Select, Textarea as Textarea$1, Label } from '@bigbinary/neetoui';
8
8
  import { isEmpty, equals, prop, includes, pick, omit, assoc, mergeAll, pluck, whereAny, reject, modify } from 'ramda';
9
+ import { useTranslation, Trans } from 'react-i18next';
9
10
  import { t as t$1 } from 'i18next';
10
11
  import { DEFAULT_PAGE_SIZE, DEFAULT_PAGE_INDEX } from '@bigbinary/neeto-commons-frontend/constants';
11
12
  import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
@@ -15,8 +16,7 @@ import axios from 'axios';
15
16
  import require$$0 from 'util';
16
17
  import { create } from 'zustand';
17
18
  import { FormikEditor } from '@bigbinary/neeto-editor';
18
- import { Textarea, Input, Form as Form$2, Select as Select$1, Button as Button$1, ActionBlock } from '@bigbinary/neetoui/formik';
19
- import { useTranslation, Trans } from 'react-i18next';
19
+ import { Textarea, Input, Form as Form$2, ActionBlock, Select as Select$1 } from '@bigbinary/neetoui/formik';
20
20
  import { useFormikContext, FieldArray } from 'formik';
21
21
  import { isPhoneNumberValid } from '@bigbinary/neeto-molecules/PhoneNumber';
22
22
  import * as yup from 'yup';
@@ -3084,51 +3084,42 @@ var Form$1 = function Form(_ref) {
3084
3084
  validateOnChange: true,
3085
3085
  onSubmit: handleSubmit
3086
3086
  }
3087
- }, function (_ref4) {
3088
- var dirty = _ref4.dirty,
3089
- isValid = _ref4.isValid,
3090
- isSubmitting = _ref4.isSubmitting;
3091
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Input, {
3092
- required: true,
3093
- label: t("neetoMessageTemplate.template.templateName"),
3094
- name: "name",
3095
- ref: setInitialFocusField
3096
- }), isEmailTemplate && /*#__PURE__*/React.createElement(FormikAdaptiveInput, {
3097
- required: true,
3098
- label: t("neetoMessageTemplate.template.emailSubject"),
3099
- name: "subject"
3100
- }), /*#__PURE__*/React.createElement(FormikEditor, {
3101
- hideSlashCommands: true,
3102
- required: true,
3103
- contentClassName: "max-h-40",
3104
- defaults: isEmailTemplate ? undefined : [],
3105
- label: messageBodyLabel,
3106
- name: "body",
3107
- ref: editorRef,
3108
- rows: DEFAULT_EDITOR_ROW_COUNT,
3109
- variables: templateVariables
3110
- }), isTestTemplateVisible && /*#__PURE__*/React.createElement(TestMessage, {
3111
- customFields: customFields,
3112
- handleSubmitTestTemplate: handleSubmitTestTemplate,
3113
- isEmailTemplate: isEmailTemplate,
3114
- isTestMessageLoading: isTestMessageLoading,
3115
- isTestingTemplateDisabled: isTestingTemplateDisabled
3116
- }), /*#__PURE__*/React.createElement(Pane.Footer, {
3117
- className: "absolute bottom-0 left-0 flex gap-x-2"
3118
- }, /*#__PURE__*/React.createElement(Button, {
3119
- "data-cy": "message-template-submit-button",
3120
- disabled: !(dirty && isValid) || isSubmitting,
3121
- label: t("neetoMessageTemplate.template.saveChanges"),
3122
- loading: isSubmitting,
3123
- type: "submit"
3124
- }), /*#__PURE__*/React.createElement(Button, {
3087
+ }, /*#__PURE__*/React.createElement(Input, {
3088
+ required: true,
3089
+ label: t("neetoMessageTemplate.template.templateName"),
3090
+ name: "name",
3091
+ ref: setInitialFocusField
3092
+ }), isEmailTemplate && /*#__PURE__*/React.createElement(FormikAdaptiveInput, {
3093
+ required: true,
3094
+ label: t("neetoMessageTemplate.template.emailSubject"),
3095
+ name: "subject"
3096
+ }), /*#__PURE__*/React.createElement(FormikEditor, {
3097
+ hideSlashCommands: true,
3098
+ required: true,
3099
+ contentClassName: "max-h-40",
3100
+ defaults: isEmailTemplate ? undefined : [],
3101
+ label: messageBodyLabel,
3102
+ name: "body",
3103
+ ref: editorRef,
3104
+ rows: DEFAULT_EDITOR_ROW_COUNT,
3105
+ variables: templateVariables
3106
+ }), isTestTemplateVisible && /*#__PURE__*/React.createElement(TestMessage, {
3107
+ customFields: customFields,
3108
+ handleSubmitTestTemplate: handleSubmitTestTemplate,
3109
+ isEmailTemplate: isEmailTemplate,
3110
+ isTestMessageLoading: isTestMessageLoading,
3111
+ isTestingTemplateDisabled: isTestingTemplateDisabled
3112
+ }), /*#__PURE__*/React.createElement(Pane.Footer, {
3113
+ className: "absolute bottom-0 left-0"
3114
+ }, /*#__PURE__*/React.createElement(ActionBlock, {
3115
+ cancelButtonProps: {
3125
3116
  "data-cy": "message-template-reset-button",
3126
- label: t("neetoMessageTemplate.template.cancel"),
3127
- style: "text",
3128
- type: "reset",
3129
3117
  onClick: onClose
3130
- })));
3131
- });
3118
+ },
3119
+ submitButtonProps: {
3120
+ "data-cy": "message-template-submit-button"
3121
+ }
3122
+ })));
3132
3123
  };
3133
3124
 
3134
3125
  var AddEdit = function AddEdit(_ref) {
@@ -3321,19 +3312,20 @@ var List = function List(_ref) {
3321
3312
  }
3322
3313
  })) : /*#__PURE__*/React.createElement("div", {
3323
3314
  className: "flex h-full w-full items-center justify-center"
3324
- }, /*#__PURE__*/React.createElement(NoData, {
3315
+ }, /*#__PURE__*/React.createElement(NoData, _extends({}, !isFilterApplied && {
3325
3316
  primaryButtonProps: {
3326
3317
  label: addText,
3327
3318
  onClick: function onClick() {
3328
3319
  return setManageTemplatePane(assoc("isOpen", true));
3329
3320
  }
3330
- },
3321
+ }
3322
+ }, {
3331
3323
  title: isFilterApplied ? t("neetoMessageTemplate.template.filtersEmptyState", {
3332
3324
  type: emptyStateLabel
3333
3325
  }) : t("neetoMessageTemplate.template.emptyState", {
3334
3326
  type: emptyStateLabel
3335
3327
  })
3336
- })), /*#__PURE__*/React.createElement(Alert, {
3328
+ }))), /*#__PURE__*/React.createElement(Alert, {
3337
3329
  isOpen: isDelete,
3338
3330
  isSubmitting: isDeleting,
3339
3331
  submitButtonLabel: t("neetoMessageTemplate.template.delete"),
@@ -3384,6 +3376,8 @@ var MessageTemplates = function MessageTemplates(_ref) {
3384
3376
  _useState4 = _slicedToArray(_useState3, 2),
3385
3377
  isFilterPaneOpen = _useState4[0],
3386
3378
  setIsFilterPaneOpen = _useState4[1];
3379
+ var _useTranslation = useTranslation(),
3380
+ t = _useTranslation.t;
3387
3381
  var _useFilters = useFilters(),
3388
3382
  searchKeywordProps = _useFilters.searchKeywordProps,
3389
3383
  filterColumns = _useFilters.filterColumns,
@@ -3435,12 +3429,12 @@ var MessageTemplates = function MessageTemplates(_ref) {
3435
3429
  onClick: handleActionClick
3436
3430
  })
3437
3431
  }), /*#__PURE__*/React.createElement(SubHeader, {
3438
- leftActionBlock: /*#__PURE__*/React.createElement(Bar, {
3439
- columns: filterColumns,
3440
- keyword: searchKeywordProps,
3441
- setIsPaneOpen: setIsFilterPaneOpen,
3442
- onChange: handleChange
3443
- }),
3432
+ leftActionBlock: /*#__PURE__*/React.createElement(Typography, {
3433
+ component: "h4"
3434
+ }, t("neetoMessageTemplate.template.messageTemplatesWithCount", {
3435
+ type: MESSAGE_TYPES[type],
3436
+ count: templatesCount
3437
+ })),
3444
3438
  rightActionBlock: /*#__PURE__*/React.createElement(SubHeader.RightBlock, {
3445
3439
  dataProps: {
3446
3440
  totalCount: isFilterApplied ? null : templatesCount
@@ -3453,6 +3447,11 @@ var MessageTemplates = function MessageTemplates(_ref) {
3453
3447
  onChange: handleChange
3454
3448
  }
3455
3449
  })
3450
+ }), /*#__PURE__*/React.createElement(Bar, {
3451
+ columns: filterColumns,
3452
+ keyword: searchKeywordProps,
3453
+ setIsPaneOpen: setIsFilterPaneOpen,
3454
+ onChange: handleChange
3456
3455
  }), /*#__PURE__*/React.createElement(List, {
3457
3456
  addText: addText,
3458
3457
  isFilterApplied: isFilterApplied,
@@ -3543,8 +3542,7 @@ var EmailAndSms = function EmailAndSms(_ref) {
3543
3542
  onSubmit: handleSubmit
3544
3543
  }
3545
3544
  }, function (_ref4) {
3546
- var isSubmitting = _ref4.isSubmitting,
3547
- setValues = _ref4.setValues,
3545
+ var setValues = _ref4.setValues,
3548
3546
  values = _ref4.values;
3549
3547
  var handleTemplateChange = function handleTemplateChange(value) {
3550
3548
  if (!value) return;
@@ -3581,19 +3579,16 @@ var EmailAndSms = function EmailAndSms(_ref) {
3581
3579
  rows: DEFAULT_EDITOR_ROW_COUNT,
3582
3580
  variables: templateVariables
3583
3581
  }), /*#__PURE__*/React.createElement(Pane.Footer, {
3584
- className: "absolute bottom-0 left-0 flex gap-x-2"
3585
- }, /*#__PURE__*/React.createElement(Button, {
3586
- "data-cy": "message-template-send-button",
3587
- disabled: isSubmitting,
3588
- label: t("neetoMessageTemplate.template.send"),
3589
- loading: isSubmitting,
3590
- type: "submit"
3591
- }), /*#__PURE__*/React.createElement(Button, {
3592
- "data-cy": "message-template-cancel-button",
3593
- label: t("neetoMessageTemplate.template.cancel"),
3594
- style: "text",
3595
- type: "reset",
3596
- onClick: onClose
3582
+ className: "absolute bottom-0 left-0"
3583
+ }, /*#__PURE__*/React.createElement(ActionBlock, {
3584
+ cancelButtonProps: {
3585
+ "data-cy": "message-template-cancel-button",
3586
+ onClick: onClose
3587
+ },
3588
+ submitButtonProps: {
3589
+ "data-cy": "message-template-send-button",
3590
+ label: t("neetoMessageTemplate.template.send")
3591
+ }
3597
3592
  })));
3598
3593
  });
3599
3594
  };
@@ -3654,8 +3649,7 @@ var Whatsapp = function Whatsapp(_ref) {
3654
3649
  onSubmit: handleSubmit
3655
3650
  }
3656
3651
  }, function (_ref3) {
3657
- var isSubmitting = _ref3.isSubmitting,
3658
- values = _ref3.values,
3652
+ var values = _ref3.values,
3659
3653
  setValues = _ref3.setValues;
3660
3654
  var handleTemplateChange = function handleTemplateChange(value) {
3661
3655
  if (!value) return;
@@ -3705,19 +3699,16 @@ var Whatsapp = function Whatsapp(_ref) {
3705
3699
  }));
3706
3700
  }));
3707
3701
  })), /*#__PURE__*/React.createElement(Pane.Footer, {
3708
- className: "absolute bottom-0 left-0 flex gap-x-2"
3709
- }, /*#__PURE__*/React.createElement(Button$1, {
3710
- "data-cy": "message-template-send-button",
3711
- disabled: isSubmitting,
3712
- label: t("neetoMessageTemplate.template.send"),
3713
- loading: isSubmitting,
3714
- type: "submit"
3715
- }), /*#__PURE__*/React.createElement(Button$1, {
3716
- "data-cy": "message-template-cancel-button",
3717
- label: t("neetoMessageTemplate.template.cancel"),
3718
- style: "text",
3719
- type: "reset",
3720
- onClick: onClose
3702
+ className: "absolute bottom-0 left-0"
3703
+ }, /*#__PURE__*/React.createElement(ActionBlock, {
3704
+ cancelButtonProps: {
3705
+ "data-cy": "message-template-cancel-button",
3706
+ onClick: onClose
3707
+ },
3708
+ submitButtonProps: {
3709
+ "data-cy": "message-template-send-button",
3710
+ label: t("neetoMessageTemplate.template.send")
3711
+ }
3721
3712
  })));
3722
3713
  });
3723
3714
  };
@@ -4055,10 +4046,9 @@ var Form = function Form(_ref) {
4055
4046
  name: "additionalData"
4056
4047
  }))), /*#__PURE__*/React.createElement(Pane.Footer, null, /*#__PURE__*/React.createElement(ActionBlock, {
4057
4048
  cancelButtonProps: {
4058
- onClick: onClose,
4059
- disabled: isMutating
4049
+ onClick: onClose
4060
4050
  },
4061
- className: "space-x-2"
4051
+ isSubmitting: isMutating
4062
4052
  }))));
4063
4053
  };
4064
4054
 
@@ -4176,15 +4166,15 @@ var ApiTemplates = function ApiTemplates(_ref) {
4176
4166
  placeholder: t("neetoMessageTemplate.template.searchApiTemplates")
4177
4167
  }
4178
4168
  }), /*#__PURE__*/React.createElement(SubHeader, {
4179
- leftActionBlock: /*#__PURE__*/React.createElement(Bar, {
4180
- columns: FILTER_COLUMNS,
4181
- keyword: searchKeywordProps,
4182
- setIsPaneOpen: setIsFiltersPaneOpen,
4183
- onChange: handleFiltersChange
4184
- }),
4169
+ leftActionBlock: /*#__PURE__*/React.createElement(Typography, {
4170
+ component: "h4"
4171
+ }, t("neetoMessageTemplate.template.messageTemplatesWithCount", {
4172
+ type: t("messageType.api"),
4173
+ count: totalCount
4174
+ })),
4185
4175
  rightActionBlock: /*#__PURE__*/React.createElement(SubHeader.RightBlock, {
4186
4176
  dataProps: {
4187
- totalCount: totalCount
4177
+ totalCount: isFilterApplied ? null : totalCount
4188
4178
  },
4189
4179
  filterProps: {
4190
4180
  columns: FILTER_COLUMNS,
@@ -4194,6 +4184,11 @@ var ApiTemplates = function ApiTemplates(_ref) {
4194
4184
  onChange: handleFiltersChange
4195
4185
  }
4196
4186
  })
4187
+ }), /*#__PURE__*/React.createElement(Bar, {
4188
+ columns: FILTER_COLUMNS,
4189
+ keyword: searchKeywordProps,
4190
+ setIsPaneOpen: setIsFiltersPaneOpen,
4191
+ onChange: handleFiltersChange
4197
4192
  }), isNotEmpty(templates) ? /*#__PURE__*/React.createElement(TableWrapper, {
4198
4193
  hasPagination: totalCount > pageParams.size
4199
4194
  }, /*#__PURE__*/React.createElement(Table, {
@@ -4219,19 +4214,20 @@ var ApiTemplates = function ApiTemplates(_ref) {
4219
4214
  })
4220
4215
  })) : /*#__PURE__*/React.createElement("div", {
4221
4216
  className: "flex h-full w-full items-center justify-center"
4222
- }, /*#__PURE__*/React.createElement(NoData, {
4217
+ }, /*#__PURE__*/React.createElement(NoData, _extends({}, !isFilterApplied && {
4223
4218
  primaryButtonProps: {
4224
4219
  label: t("neetoMessageTemplate.api.addApiTemplate"),
4225
4220
  onClick: function onClick() {
4226
4221
  return setIsFormPaneOpen(true);
4227
4222
  }
4228
- },
4223
+ }
4224
+ }, {
4229
4225
  title: isFilterApplied ? t("neetoMessageTemplate.template.filtersEmptyState", {
4230
4226
  type: t("neetoMessageTemplate.template.apiTemplates")
4231
4227
  }) : t("neetoMessageTemplate.template.emptyState", {
4232
4228
  type: t("neetoMessageTemplate.template.apiTemplates")
4233
4229
  })
4234
- })), /*#__PURE__*/React.createElement(Pane, {
4230
+ }))), /*#__PURE__*/React.createElement(Pane, {
4235
4231
  isOpen: isFormPaneOpen,
4236
4232
  onClose: handleCloseDeleteAlertAndFormPane
4237
4233
  }, function (_ref3) {
@@ -4271,15 +4267,6 @@ var SEND_TO_API_FORM_VALIDATION_SCHEMA = yup.object({
4271
4267
  }))
4272
4268
  });
4273
4269
 
4274
- var buildSendToApiFormInitialValues = function buildSendToApiFormInitialValues(template) {
4275
- if (isEmpty(template)) return SEND_TO_API_FORM_INITIAL_VALUES;
4276
- var additionalData = isEmpty(template.additionalData) ? [ADDITIONAL_DATA_INITIAL_VALUE] : template.additionalData;
4277
- return {
4278
- endpoint: template.endpoint,
4279
- additionalData: additionalData
4280
- };
4281
- };
4282
-
4283
4270
  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; }
4284
4271
  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(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; }
4285
4272
  var SendToApiPane = function SendToApiPane(props) {
@@ -4302,10 +4289,6 @@ var SendToApiForm = function SendToApiForm(_ref) {
4302
4289
  setFocusField = _ref.paneProps.setFocusField;
4303
4290
  var _useTranslation = useTranslation(),
4304
4291
  t = _useTranslation.t;
4305
- var _useState = useState({}),
4306
- _useState2 = _slicedToArray(_useState, 2),
4307
- selectedTemplate = _useState2[0],
4308
- setSelectedTemplate = _useState2[1];
4309
4292
  var _useFetchTemplates = useFetchTemplates({
4310
4293
  status: "active",
4311
4294
  templateType: API_TEMPLATE_TYPE,
@@ -4316,6 +4299,10 @@ var SendToApiForm = function SendToApiForm(_ref) {
4316
4299
  _useFetchTemplates$da3 = _useFetchTemplates$da2.templates,
4317
4300
  templates = _useFetchTemplates$da3 === void 0 ? [] : _useFetchTemplates$da3,
4318
4301
  isLoadingTemplates = _useFetchTemplates.isLoading;
4302
+ var handleTemplateChange = function handleTemplateChange(setFieldValue, template) {
4303
+ setFieldValue("endpoint", template.endpoint);
4304
+ setFieldValue("additionalData", template.additionalData);
4305
+ };
4319
4306
  var handleSubmit = function handleSubmit(formValues) {
4320
4307
  var additionalDataModifiedFormValues = modify("additionalData", rejectEmptyKeyValuePairs, formValues);
4321
4308
  onSubmit(additionalDataModifiedFormValues);
@@ -4325,42 +4312,44 @@ var SendToApiForm = function SendToApiForm(_ref) {
4325
4312
  weight: "semibold"
4326
4313
  }, t("neetoMessageTemplate.api.sendToApi"))), /*#__PURE__*/React.createElement(Form$2, {
4327
4314
  formikProps: {
4328
- initialValues: buildSendToApiFormInitialValues(selectedTemplate),
4329
- enableReinitialize: true,
4315
+ initialValues: SEND_TO_API_FORM_INITIAL_VALUES,
4330
4316
  validationSchema: SEND_TO_API_FORM_VALIDATION_SCHEMA,
4331
4317
  onSubmit: handleSubmit
4332
4318
  }
4333
- }, /*#__PURE__*/React.createElement(Pane.Body, null, /*#__PURE__*/React.createElement("div", {
4334
- className: "w-full space-y-5"
4335
- }, /*#__PURE__*/React.createElement(Select, {
4336
- innerRef: setFocusField,
4337
- isLoading: isLoadingTemplates,
4338
- label: t("neetoMessageTemplate.template.title"),
4339
- options: renameKeys({
4340
- name: "label",
4341
- id: "value"
4342
- }, templates),
4343
- placeholder: t("neetoMessageTemplate.sendMessage.selectTemplate"),
4344
- onChange: setSelectedTemplate
4345
- }), /*#__PURE__*/React.createElement(Input, {
4346
- required: true,
4347
- label: t("neetoMessageTemplate.api.endpoint"),
4348
- name: "endpoint",
4349
- placeholder: SAMPLE_URL
4350
- }), /*#__PURE__*/React.createElement(KeyValuePairs, {
4351
- label: t("neetoMessageTemplate.api.additionalData"),
4352
- name: "additionalData"
4353
- }))), /*#__PURE__*/React.createElement(Pane.Footer, null, /*#__PURE__*/React.createElement(ActionBlock, {
4354
- className: "space-x-2",
4355
- cancelButtonProps: {
4356
- disabled: isSubmitting,
4357
- onClick: onClose
4358
- },
4359
- submitButtonProps: {
4360
- disabled: isSubmitting,
4361
- label: t("neetoMessageTemplate.template.send")
4362
- }
4363
- }))));
4319
+ }, function (_ref2) {
4320
+ var setFieldValue = _ref2.setFieldValue;
4321
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(Pane.Body, null, /*#__PURE__*/React.createElement("div", {
4322
+ className: "w-full space-y-5"
4323
+ }, /*#__PURE__*/React.createElement(Select, {
4324
+ innerRef: setFocusField,
4325
+ isLoading: isLoadingTemplates,
4326
+ label: t("neetoMessageTemplate.template.title"),
4327
+ options: renameKeys({
4328
+ name: "label",
4329
+ id: "value"
4330
+ }, templates),
4331
+ placeholder: t("neetoMessageTemplate.sendMessage.selectTemplate"),
4332
+ onChange: function onChange(template) {
4333
+ return handleTemplateChange(setFieldValue, template);
4334
+ }
4335
+ }), /*#__PURE__*/React.createElement(Input, {
4336
+ required: true,
4337
+ label: t("neetoMessageTemplate.api.endpoint"),
4338
+ name: "endpoint",
4339
+ placeholder: SAMPLE_URL
4340
+ }), /*#__PURE__*/React.createElement(KeyValuePairs, {
4341
+ label: t("neetoMessageTemplate.api.additionalData"),
4342
+ name: "additionalData"
4343
+ }))), /*#__PURE__*/React.createElement(Pane.Footer, null, /*#__PURE__*/React.createElement(ActionBlock, {
4344
+ isSubmitting: isSubmitting,
4345
+ cancelButtonProps: {
4346
+ onClick: onClose
4347
+ },
4348
+ submitButtonProps: {
4349
+ label: t("neetoMessageTemplate.template.send")
4350
+ }
4351
+ })));
4352
+ }));
4364
4353
  };
4365
4354
 
4366
4355
  export { ApiTemplates, MessageTemplates, SendMessagePane, SendToApiPane };