@bigbinary/neeto-message-templates-frontend 1.2.0 → 1.3.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.
- package/README.md +1 -6
- package/app/javascript/src/translations/en.json +4 -2
- package/dist/ApiTemplates.js +4 -4
- package/dist/MessageTemplates.js +5 -33
- package/dist/MessageTemplates.js.map +1 -1
- package/dist/SendMessagePane.js +96 -26
- package/dist/SendMessagePane.js.map +1 -1
- package/dist/SendToApiPane.js +50 -21
- package/dist/SendToApiPane.js.map +1 -1
- package/dist/cjs/ApiTemplates.js +12 -12
- package/dist/cjs/ApiTemplates.js.map +1 -1
- package/dist/cjs/MessageTemplates.js +18 -46
- package/dist/cjs/MessageTemplates.js.map +1 -1
- package/dist/cjs/SendMessagePane.js +99 -28
- package/dist/cjs/SendMessagePane.js.map +1 -1
- package/dist/cjs/SendToApiPane.js +49 -19
- package/dist/cjs/SendToApiPane.js.map +1 -1
- package/dist/cjs/index.js +10 -7
- package/dist/cjs/index.js.map +1 -1
- package/dist/{slicedToArray-f320d9e7.js → constants-237a4b54.js} +47 -1
- package/dist/constants-237a4b54.js.map +1 -0
- package/dist/constants-73e7bb3b.js +99 -0
- package/dist/constants-73e7bb3b.js.map +1 -0
- package/dist/index.js +10 -7
- package/dist/index.js.map +1 -1
- package/dist/objectWithoutProperties-2fed2d7d.js +33 -0
- package/dist/objectWithoutProperties-2fed2d7d.js.map +1 -0
- package/dist/objectWithoutProperties-a0edb288.js +31 -0
- package/dist/objectWithoutProperties-a0edb288.js.map +1 -0
- package/dist/{toConsumableArray-9abb3858.js → toConsumableArray-62a645c0.js} +4 -4
- package/dist/{toConsumableArray-9abb3858.js.map → toConsumableArray-62a645c0.js.map} +1 -1
- package/dist/{toConsumableArray-1cc38429.js → toConsumableArray-dd34dc19.js} +2 -2
- package/dist/{toConsumableArray-1cc38429.js.map → toConsumableArray-dd34dc19.js.map} +1 -1
- package/dist/{useTemplatesApi-45d43d41.js → useTemplatesApi-983b3584.js} +2 -43
- package/dist/useTemplatesApi-983b3584.js.map +1 -0
- package/dist/{useTemplatesApi-943ef380.js → useTemplatesApi-d8923769.js} +1 -46
- package/dist/useTemplatesApi-d8923769.js.map +1 -0
- package/dist/utils-733df41c.js +80 -0
- package/dist/utils-733df41c.js.map +1 -0
- package/dist/utils-900aa952.js +91 -0
- package/dist/utils-900aa952.js.map +1 -0
- package/package.json +11 -11
- package/types.d.ts +1 -2
- package/dist/NoDataPage-00b22095.js +0 -58
- package/dist/NoDataPage-00b22095.js.map +0 -1
- package/dist/NoDataPage-4ba91a9f.js +0 -51
- package/dist/NoDataPage-4ba91a9f.js.map +0 -1
- package/dist/slicedToArray-b4278ecd.js +0 -57
- package/dist/slicedToArray-b4278ecd.js.map +0 -1
- package/dist/slicedToArray-f320d9e7.js.map +0 -1
- package/dist/useTemplatesApi-45d43d41.js.map +0 -1
- package/dist/useTemplatesApi-943ef380.js.map +0 -1
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var useTemplatesApi = require('../useTemplatesApi-
|
|
3
|
+
var useTemplatesApi = require('../useTemplatesApi-d8923769.js');
|
|
4
4
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
5
5
|
var Pane = require('@bigbinary/neetoui/Pane');
|
|
6
6
|
var Spinner = require('@bigbinary/neetoui/Spinner');
|
|
7
7
|
var Typography = require('@bigbinary/neetoui/Typography');
|
|
8
8
|
var ramda = require('ramda');
|
|
9
9
|
var reactI18next = require('react-i18next');
|
|
10
|
-
var
|
|
11
|
-
var
|
|
10
|
+
var Button = require('@bigbinary/neetoui/Button');
|
|
11
|
+
var constants = require('../constants-237a4b54.js');
|
|
12
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
12
13
|
var react = require('react');
|
|
13
14
|
var FormikEditor = require('@bigbinary/neeto-editor/FormikEditor');
|
|
14
15
|
var Select = require('@bigbinary/neetoui/Select');
|
|
@@ -16,16 +17,20 @@ var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
|
|
|
16
17
|
var NeetoUIForm = require('@bigbinary/neetoui/formik/Form');
|
|
17
18
|
var Input = require('@bigbinary/neetoui/formik/Input');
|
|
18
19
|
var yup = require('yup');
|
|
20
|
+
var utils = require('../utils-900aa952.js');
|
|
19
21
|
var i18next = require('i18next');
|
|
20
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
21
22
|
var Textarea = require('@bigbinary/neetoui/Textarea');
|
|
22
23
|
var Select$1 = require('@bigbinary/neetoui/formik/Select');
|
|
23
|
-
require('@bigbinary/neeto-commons-frontend/constants');
|
|
24
24
|
require('@tanstack/react-query');
|
|
25
25
|
require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
26
26
|
require('axios');
|
|
27
27
|
require('util');
|
|
28
|
-
require('@bigbinary/
|
|
28
|
+
require('@bigbinary/neeto-commons-frontend/constants');
|
|
29
|
+
require('formik');
|
|
30
|
+
require('../objectWithoutProperties-2fed2d7d.js');
|
|
31
|
+
require('classnames');
|
|
32
|
+
require('@bigbinary/neetoui/Label');
|
|
33
|
+
require('@bigbinary/neetoui/formik/Switch');
|
|
29
34
|
|
|
30
35
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
31
36
|
|
|
@@ -50,6 +55,7 @@ function _interopNamespace(e) {
|
|
|
50
55
|
var Pane__default = /*#__PURE__*/_interopDefaultLegacy(Pane);
|
|
51
56
|
var Spinner__default = /*#__PURE__*/_interopDefaultLegacy(Spinner);
|
|
52
57
|
var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
|
|
58
|
+
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
|
53
59
|
var FormikEditor__default = /*#__PURE__*/_interopDefaultLegacy(FormikEditor);
|
|
54
60
|
var Select__default = /*#__PURE__*/_interopDefaultLegacy(Select);
|
|
55
61
|
var ActionBlock__default = /*#__PURE__*/_interopDefaultLegacy(ActionBlock);
|
|
@@ -59,22 +65,72 @@ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
|
59
65
|
var Textarea__default = /*#__PURE__*/_interopDefaultLegacy(Textarea);
|
|
60
66
|
var Select__default$1 = /*#__PURE__*/_interopDefaultLegacy(Select$1);
|
|
61
67
|
|
|
68
|
+
var NoDataPage = function NoDataPage(_ref) {
|
|
69
|
+
var type = _ref.type,
|
|
70
|
+
_ref$helpDocUrl = _ref.helpDocUrl,
|
|
71
|
+
helpDocUrl = _ref$helpDocUrl === void 0 ? "" : _ref$helpDocUrl;
|
|
72
|
+
var _useTranslation = reactI18next.useTranslation(),
|
|
73
|
+
t = _useTranslation.t;
|
|
74
|
+
var label = constants.MESSAGE_TEMPLATES[type].label;
|
|
75
|
+
if (type === constants.MESSAGE_TYPES.whatsapp) {
|
|
76
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
77
|
+
className: "flex h-full w-full items-center justify-center px-6 text-center",
|
|
78
|
+
children: /*#__PURE__*/jsxRuntime.jsxs(Typography__default["default"], {
|
|
79
|
+
children: [t("neetoMessageTemplate.template.emptyState", {
|
|
80
|
+
type: t("neetoMessageTemplate.template.whatsappTemplates")
|
|
81
|
+
}), " ", helpDocUrl && /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
|
|
82
|
+
i18nKey: "neetoMessageTemplate.template.whatsapp.helpDocText",
|
|
83
|
+
components: {
|
|
84
|
+
Link: /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
85
|
+
href: helpDocUrl,
|
|
86
|
+
size: "large",
|
|
87
|
+
style: "link"
|
|
88
|
+
})
|
|
89
|
+
}
|
|
90
|
+
})]
|
|
91
|
+
})
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
95
|
+
className: "flex h-full w-full flex-col items-center justify-center",
|
|
96
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
97
|
+
children: t("neetoMessageTemplate.template.emptyState", {
|
|
98
|
+
type: label
|
|
99
|
+
})
|
|
100
|
+
})
|
|
101
|
+
});
|
|
102
|
+
};
|
|
103
|
+
|
|
62
104
|
var formatEditorContent = function formatEditorContent(value) {
|
|
63
105
|
return value === null || value === void 0 ? void 0 : value.replaceAll(/<\/?(?!img)\w*\b[^>]*>/gi, "").trim();
|
|
64
106
|
};
|
|
65
107
|
var SEND_MESSAGE_INITIAL_VALUES = {
|
|
66
108
|
subject: "",
|
|
67
|
-
body: ""
|
|
109
|
+
body: "",
|
|
110
|
+
shouldSaveAsTemplate: false,
|
|
111
|
+
templateName: ""
|
|
68
112
|
};
|
|
69
113
|
var EMAIL_MESSAGE_FORM_SCHEMA = yup__namespace.object().shape({
|
|
70
114
|
subject: yup__namespace.string().trim().required(i18next.t("neetoMessageTemplate.template.validation.subjectPresence")),
|
|
71
115
|
body: yup__namespace.string().test("body", i18next.t("neetoMessageTemplate.template.validation.bodyPresence"), function (value) {
|
|
72
116
|
return !!formatEditorContent(value);
|
|
73
|
-
}).required(i18next.t("neetoMessageTemplate.template.validation.bodyPresence"))
|
|
117
|
+
}).required(i18next.t("neetoMessageTemplate.template.validation.bodyPresence")),
|
|
118
|
+
templateName: yup__namespace.string().when("shouldSaveAsTemplate", {
|
|
119
|
+
is: true,
|
|
120
|
+
then: yup__namespace.string().required(i18next.t("neetoMessageTemplate.template.validation.requiredEntity", {
|
|
121
|
+
entity: i18next.t("neetoMessageTemplate.template.templateName")
|
|
122
|
+
}))
|
|
123
|
+
})
|
|
74
124
|
});
|
|
75
125
|
var SMS_MESSAGE_FORM_VALIDATION_SCHEMA = yup__namespace.object().shape({
|
|
76
126
|
body: yup__namespace.string().required(i18next.t("neetoMessageTemplate.template.validation.bodyPresence")).test("body", i18next.t("neetoMessageTemplate.template.validation.bodyPresence"), function (value) {
|
|
77
127
|
return !!formatEditorContent(value);
|
|
128
|
+
}),
|
|
129
|
+
templateName: yup__namespace.string().when("shouldSaveAsTemplate", {
|
|
130
|
+
is: true,
|
|
131
|
+
then: yup__namespace.string().required(i18next.t("neetoMessageTemplate.template.validation.requiredEntity", {
|
|
132
|
+
entity: i18next.t("neetoMessageTemplate.template.templateName")
|
|
133
|
+
}))
|
|
78
134
|
})
|
|
79
135
|
});
|
|
80
136
|
var WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA = yup__namespace.object().shape({
|
|
@@ -94,18 +150,32 @@ var EmailAndSms = function EmailAndSms(_ref) {
|
|
|
94
150
|
customFieldsInitialValues = _ref.customFieldsInitialValues,
|
|
95
151
|
customFieldsValidationSchema = _ref.customFieldsValidationSchema,
|
|
96
152
|
type = _ref.type,
|
|
97
|
-
handleSubmit = _ref.handleSubmit
|
|
153
|
+
handleSubmit = _ref.handleSubmit,
|
|
154
|
+
isSaveAsTemplateEnabled = _ref.isSaveAsTemplateEnabled;
|
|
98
155
|
var editorRef = react.useRef(null);
|
|
99
156
|
var _useTranslation = reactI18next.useTranslation(),
|
|
100
157
|
t = _useTranslation.t;
|
|
101
158
|
var isEmailTemplate = type === "email";
|
|
102
|
-
var _ref2 = isEmailTemplate ? [SEND_MESSAGE_INITIAL_VALUES, EMAIL_MESSAGE_FORM_SCHEMA] : [ramda.
|
|
103
|
-
_ref3 =
|
|
159
|
+
var _ref2 = isEmailTemplate ? [SEND_MESSAGE_INITIAL_VALUES, EMAIL_MESSAGE_FORM_SCHEMA] : [ramda.omit(["subject"], SEND_MESSAGE_INITIAL_VALUES), SMS_MESSAGE_FORM_VALIDATION_SCHEMA],
|
|
160
|
+
_ref3 = constants._slicedToArray(_ref2, 2),
|
|
104
161
|
INITIAL_VALUES = _ref3[0],
|
|
105
162
|
SEND_MESSAGE_FORM_SCHEMA = _ref3[1];
|
|
106
163
|
var updatedInitialValues = ramda.mergeAll([INITIAL_VALUES, customFieldsInitialValues]);
|
|
107
164
|
var updatedValidationSchema = yup__namespace.object().shape(_objectSpread$2(_objectSpread$2({}, SEND_MESSAGE_FORM_SCHEMA === null || SEND_MESSAGE_FORM_SCHEMA === void 0 ? void 0 : SEND_MESSAGE_FORM_SCHEMA.fields), customFieldsValidationSchema === null || customFieldsValidationSchema === void 0 ? void 0 : customFieldsValidationSchema.fields));
|
|
108
|
-
var
|
|
165
|
+
var shouldShowSaveAsTemplate = function shouldShowSaveAsTemplate() {
|
|
166
|
+
var _ref4 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
167
|
+
id = _ref4.id,
|
|
168
|
+
subject = _ref4.subject,
|
|
169
|
+
body = _ref4.body;
|
|
170
|
+
if (!isSaveAsTemplateEnabled) return false;
|
|
171
|
+
var template = neetoCist.findBy({
|
|
172
|
+
id: id
|
|
173
|
+
}, templates);
|
|
174
|
+
var hasContent = neetoCist.isPresent(subject) || neetoCist.isPresent(body);
|
|
175
|
+
var isContentDifferentFromTemplate = !(utils.areValuesEqual(template === null || template === void 0 ? void 0 : template.subject, subject) && (template === null || template === void 0 ? void 0 : template.body) === body);
|
|
176
|
+
return hasContent && isContentDifferentFromTemplate;
|
|
177
|
+
};
|
|
178
|
+
var isTemplateSelectionEnabled = neetoCist.isPresent(templates);
|
|
109
179
|
return /*#__PURE__*/jsxRuntime.jsx(NeetoUIForm__default["default"], {
|
|
110
180
|
formProps: {
|
|
111
181
|
noValidate: true,
|
|
@@ -116,21 +186,20 @@ var EmailAndSms = function EmailAndSms(_ref) {
|
|
|
116
186
|
validationSchema: updatedValidationSchema,
|
|
117
187
|
onSubmit: handleSubmit
|
|
118
188
|
},
|
|
119
|
-
children: function children(
|
|
120
|
-
var setValues =
|
|
121
|
-
values =
|
|
189
|
+
children: function children(_ref5) {
|
|
190
|
+
var setValues = _ref5.setValues,
|
|
191
|
+
values = _ref5.values;
|
|
122
192
|
var handleTemplateChange = function handleTemplateChange(value) {
|
|
123
193
|
var _editorRef$current;
|
|
124
194
|
if (!value) return;
|
|
125
|
-
var customFieldValues = ramda.omit(initialValueKeys, values);
|
|
126
195
|
var template = neetoCist.findBy({
|
|
127
196
|
id: value === null || value === void 0 ? void 0 : value.value
|
|
128
197
|
}, templates);
|
|
129
|
-
setValues(_objectSpread$2(_objectSpread$2({},
|
|
198
|
+
setValues(_objectSpread$2(_objectSpread$2({}, values), template));
|
|
130
199
|
(_editorRef$current = editorRef.current) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.editor) === null || _editorRef$current === void 0 || (_editorRef$current = _editorRef$current.commands) === null || _editorRef$current === void 0 || _editorRef$current.setContent(template.body);
|
|
131
200
|
};
|
|
132
201
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
133
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Select__default["default"], {
|
|
202
|
+
children: [isTemplateSelectionEnabled && /*#__PURE__*/jsxRuntime.jsx(Select__default["default"], {
|
|
134
203
|
isClearable: true,
|
|
135
204
|
isSearchable: true,
|
|
136
205
|
innerRef: setFocusField,
|
|
@@ -144,18 +213,20 @@ var EmailAndSms = function EmailAndSms(_ref) {
|
|
|
144
213
|
}), customFields, isEmailTemplate && /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
|
|
145
214
|
required: true,
|
|
146
215
|
label: t("neetoMessageTemplate.template.subject"),
|
|
147
|
-
name: "subject"
|
|
216
|
+
name: "subject",
|
|
217
|
+
ref: isTemplateSelectionEnabled ? null : setFocusField
|
|
148
218
|
}), /*#__PURE__*/jsxRuntime.jsx(FormikEditor__default["default"], {
|
|
149
219
|
hideSlashCommands: true,
|
|
150
220
|
required: true,
|
|
221
|
+
autoFocus: !(isTemplateSelectionEnabled || isEmailTemplate),
|
|
151
222
|
contentClassName: "max-h-40",
|
|
152
223
|
defaults: isEmailTemplate ? undefined : [],
|
|
153
224
|
label: t("neetoMessageTemplate.template.body"),
|
|
154
225
|
name: "body",
|
|
155
226
|
ref: editorRef,
|
|
156
|
-
rows:
|
|
227
|
+
rows: constants.DEFAULT_EDITOR_ROW_COUNT,
|
|
157
228
|
variables: templateVariables
|
|
158
|
-
}), /*#__PURE__*/jsxRuntime.jsx(Pane__default["default"].Footer, {
|
|
229
|
+
}), shouldShowSaveAsTemplate(values) && /*#__PURE__*/jsxRuntime.jsx(utils.SaveAsTemplate, {}), /*#__PURE__*/jsxRuntime.jsx(Pane__default["default"].Footer, {
|
|
159
230
|
className: "absolute bottom-0 left-0",
|
|
160
231
|
children: /*#__PURE__*/jsxRuntime.jsx(ActionBlock__default["default"], {
|
|
161
232
|
cancelButtonProps: {
|
|
@@ -325,12 +396,12 @@ var SendMessageForm = function SendMessageForm(_ref) {
|
|
|
325
396
|
ownerId = _ref$ownerId === void 0 ? "" : _ref$ownerId,
|
|
326
397
|
_ref$helpDocUrl = _ref.helpDocUrl,
|
|
327
398
|
helpDocUrl = _ref$helpDocUrl === void 0 ? "" : _ref$helpDocUrl,
|
|
328
|
-
_ref$
|
|
329
|
-
|
|
399
|
+
_ref$isSaveAsTemplate = _ref.isSaveAsTemplateEnabled,
|
|
400
|
+
isSaveAsTemplateEnabled = _ref$isSaveAsTemplate === void 0 ? true : _ref$isSaveAsTemplate,
|
|
330
401
|
setFocusField = _ref.paneProps.setFocusField;
|
|
331
402
|
var _useTranslation = reactI18next.useTranslation(),
|
|
332
403
|
t = _useTranslation.t;
|
|
333
|
-
var value =
|
|
404
|
+
var value = constants.MESSAGE_TEMPLATES[type].value;
|
|
334
405
|
var isWhatsappTemplate = type === "whatsapp";
|
|
335
406
|
var templateParams = {
|
|
336
407
|
status: "active",
|
|
@@ -349,9 +420,8 @@ var SendMessageForm = function SendMessageForm(_ref) {
|
|
|
349
420
|
children: /*#__PURE__*/jsxRuntime.jsx(Spinner__default["default"], {})
|
|
350
421
|
});
|
|
351
422
|
}
|
|
352
|
-
if (ramda.isEmpty(templates)) {
|
|
353
|
-
return /*#__PURE__*/jsxRuntime.jsx(NoDataPage
|
|
354
|
-
addNewTemplateRoute: addNewTemplateRoute,
|
|
423
|
+
if (isWhatsappTemplate && ramda.isEmpty(templates)) {
|
|
424
|
+
return /*#__PURE__*/jsxRuntime.jsx(NoDataPage, {
|
|
355
425
|
helpDocUrl: helpDocUrl,
|
|
356
426
|
type: type
|
|
357
427
|
});
|
|
@@ -361,7 +431,7 @@ var SendMessageForm = function SendMessageForm(_ref) {
|
|
|
361
431
|
children: /*#__PURE__*/jsxRuntime.jsxs(Typography__default["default"], {
|
|
362
432
|
style: "h2",
|
|
363
433
|
weight: "semibold",
|
|
364
|
-
children: [t("neetoMessageTemplate.common.send"), " ",
|
|
434
|
+
children: [t("neetoMessageTemplate.common.send"), " ", constants.MESSAGE_TYPES[type]]
|
|
365
435
|
})
|
|
366
436
|
}), /*#__PURE__*/jsxRuntime.jsx(Pane__default["default"].Body, {
|
|
367
437
|
children: isWhatsappTemplate ? /*#__PURE__*/jsxRuntime.jsx(Whatsapp, {
|
|
@@ -376,6 +446,7 @@ var SendMessageForm = function SendMessageForm(_ref) {
|
|
|
376
446
|
customFieldsInitialValues: customFieldsInitialValues,
|
|
377
447
|
customFieldsValidationSchema: customFieldsValidationSchema,
|
|
378
448
|
handleSubmit: handleSubmit,
|
|
449
|
+
isSaveAsTemplateEnabled: isSaveAsTemplateEnabled,
|
|
379
450
|
onClose: onClose,
|
|
380
451
|
setFocusField: setFocusField,
|
|
381
452
|
templateVariables: templateVariables,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SendMessagePane.js","sources":["../../app/javascript/src/components/SendMessagePane/constants.js","../../app/javascript/src/components/SendMessagePane/Form/EmailAndSms.jsx","../../app/javascript/src/components/SendMessagePane/Form/Whatsapp.jsx","../../app/javascript/src/components/SendMessagePane/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nconst formatEditorContent = value =>\n value?.replaceAll(/<\\/?(?!img)\\w*\\b[^>]*>/gi, \"\").trim();\n\nexport const SEND_MESSAGE_INITIAL_VALUES = { subject: \"\", body: \"\" };\n\nexport const EMAIL_MESSAGE_FORM_SCHEMA = yup.object().shape({\n subject: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.subjectPresence\")),\n body: yup\n .string()\n .test(\n \"body\",\n t(\"neetoMessageTemplate.template.validation.bodyPresence\"),\n value => !!formatEditorContent(value)\n )\n .required(t(\"neetoMessageTemplate.template.validation.bodyPresence\")),\n});\n\nexport const SMS_MESSAGE_FORM_VALIDATION_SCHEMA = yup.object().shape({\n body: yup\n .string()\n .required(t(\"neetoMessageTemplate.template.validation.bodyPresence\"))\n .test(\n \"body\",\n t(\"neetoMessageTemplate.template.validation.bodyPresence\"),\n value => !!formatEditorContent(value)\n ),\n});\n\nexport const WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA = yup.object().shape({\n variableContents: yup.object().shape({\n body: yup\n .array()\n .of(\n yup\n .string()\n .required(\n t(\"neetoMessageTemplate.template.validation.variablePresence\")\n )\n ),\n }),\n});\n","import { useRef } from \"react\";\n\nimport { findBy, renameKeys } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Pane, Select } from \"neetoui\";\nimport { ActionBlock, Form, Input } from \"neetoui/formik\";\nimport { mergeAll, omit, pick } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport * as yup from \"yup\";\n\nimport { DEFAULT_EDITOR_ROW_COUNT } from \"components/constants\";\n\nimport {\n EMAIL_MESSAGE_FORM_SCHEMA,\n SEND_MESSAGE_INITIAL_VALUES,\n SMS_MESSAGE_FORM_VALIDATION_SCHEMA,\n} from \"../constants\";\n\nconst EmailAndSms = ({\n onClose,\n templates,\n setFocusField,\n templateVariables,\n customFields,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n type,\n handleSubmit,\n}) => {\n const editorRef = useRef(null);\n const { t } = useTranslation();\n\n const isEmailTemplate = type === \"email\";\n const [INITIAL_VALUES, SEND_MESSAGE_FORM_SCHEMA] = isEmailTemplate\n ? [SEND_MESSAGE_INITIAL_VALUES, EMAIL_MESSAGE_FORM_SCHEMA]\n : [\n pick([\"body\"], SEND_MESSAGE_INITIAL_VALUES),\n SMS_MESSAGE_FORM_VALIDATION_SCHEMA,\n ];\n\n const updatedInitialValues = mergeAll([\n INITIAL_VALUES,\n customFieldsInitialValues,\n ]);\n\n const updatedValidationSchema = yup.object().shape({\n ...SEND_MESSAGE_FORM_SCHEMA?.fields,\n ...customFieldsValidationSchema?.fields,\n });\n const initialValueKeys = Object.keys(INITIAL_VALUES);\n\n return (\n <Form\n formProps={{\n noValidate: true,\n className: \"flex w-full flex-col gap-y-4 pb-6\",\n }}\n formikProps={{\n initialValues: updatedInitialValues,\n validationSchema: updatedValidationSchema,\n onSubmit: handleSubmit,\n }}\n >\n {({ setValues, values }) => {\n const handleTemplateChange = value => {\n if (!value) return;\n const customFieldValues = omit(initialValueKeys, values);\n const template = findBy({ id: value?.value }, templates);\n setValues({ ...template, ...customFieldValues });\n editorRef.current?.editor?.commands?.setContent(template.body);\n };\n\n return (\n <>\n <Select\n isClearable\n isSearchable\n innerRef={setFocusField}\n label={t(\"neetoMessageTemplate.template.title\")}\n options={renameKeys({ name: \"label\", id: \"value\" }, templates)}\n placeholder={t(\"neetoMessageTemplate.sendMessage.selectTemplate\")}\n onChange={handleTemplateChange}\n />\n {customFields}\n {isEmailTemplate && (\n <Input\n required\n label={t(\"neetoMessageTemplate.template.subject\")}\n name=\"subject\"\n />\n )}\n <FormikEditor\n hideSlashCommands\n required\n contentClassName=\"max-h-40\"\n defaults={isEmailTemplate ? undefined : []}\n label={t(\"neetoMessageTemplate.template.body\")}\n name=\"body\"\n ref={editorRef}\n rows={DEFAULT_EDITOR_ROW_COUNT}\n variables={templateVariables}\n />\n <Pane.Footer className=\"absolute bottom-0 left-0\">\n <ActionBlock\n cancelButtonProps={{\n \"data-cy\": \"message-template-cancel-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-cy\": \"message-template-send-button\",\n label: t(\"neetoMessageTemplate.template.send\"),\n }}\n />\n </Pane.Footer>\n </>\n );\n }}\n </Form>\n );\n};\nexport default EmailAndSms;\n","import {\n capitalize,\n nullSafe,\n findBy,\n isNotEmpty,\n renameKeys,\n} from \"neetocist\";\nimport { Pane, Textarea, Typography } from \"neetoui\";\nimport { Select, Form, Input, ActionBlock } from \"neetoui/formik\";\nimport { mergeAll, omit, pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport * as yup from \"yup\";\n\nimport { WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA } from \"../constants\";\n\nconst Whatsapp = ({\n templates,\n onClose,\n handleSubmit,\n customFields,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n}) => {\n const { t } = useTranslation();\n\n const getInitialVariableComponents = variables => {\n const initialComponents = {};\n\n variables?.forEach(({ type, count }) => {\n initialComponents[type] = Array(count).fill(\"\");\n });\n\n return initialComponents;\n };\n\n const getTemplateMessage = components =>\n nullSafe(pluck)(\"text\", components)?.join(\"\\n\");\n\n const initialFormValues = {\n selectedTemplate: { label: templates[0]?.name, value: templates[0]?.id },\n templateMessage: getTemplateMessage(templates[0]?.components),\n variableContents: getInitialVariableComponents(templates[0]?.variableCount),\n };\n\n const updatedInitialValues = mergeAll([\n initialFormValues,\n customFieldsInitialValues,\n ]);\n\n const updatedValidationSchema = yup.object().shape({\n ...WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA?.fields,\n ...customFieldsValidationSchema?.fields,\n });\n\n const initialValueKeys = Object.keys(initialFormValues);\n\n return (\n <Form\n formProps={{\n noValidate: true,\n className: \"flex w-full flex-col gap-y-4 pb-6\",\n }}\n formikProps={{\n initialValues: updatedInitialValues,\n validationSchema: updatedValidationSchema,\n onSubmit: handleSubmit,\n }}\n >\n {({ values, setValues }) => {\n const handleTemplateChange = value => {\n if (!value) return;\n\n const template = findBy({ id: value?.value }, templates);\n const customFieldValues = omit(initialValueKeys, values);\n setValues({\n selectedTemplate: { label: template.name, value: template.id },\n templateMessage: getTemplateMessage(template.components),\n variableContents: getInitialVariableComponents(\n template.variableCount\n ),\n ...customFieldValues,\n });\n };\n\n return (\n <>\n <Select\n required\n defaultValue={initialFormValues.selectedTemplate}\n label={t(\"neetoMessageTemplate.template.title\")}\n name=\"selectedTemplate\"\n options={renameKeys({ name: \"label\", id: \"value\" }, templates)}\n onChange={handleTemplateChange}\n />\n {customFields}\n <Textarea\n disabled\n nakedTextarea\n label={t(\"neetoMessageTemplate.template.preview\")}\n value={values.templateMessage}\n />\n {isNotEmpty(values.variableContents) && (\n <>\n {Object.keys(values.variableContents).map(group => (\n <div className=\"flex flex-col gap-y-2\" key={group}>\n <Typography style=\"h4\">\n {t(\"neetoMessageTemplate.template.resolveVariable\", {\n type: capitalize(group),\n })}\n </Typography>\n {values.variableContents[group].map((_, index) => (\n <div key={`${group}-${index}`}>\n <Input\n required\n key={`${group}-${index}`}\n label={`{{${index + 1}}}`}\n name={`variableContents.${group}.${index}`}\n />\n </div>\n ))}\n </div>\n ))}\n </>\n )}\n <Pane.Footer className=\"absolute bottom-0 left-0\">\n <ActionBlock\n cancelButtonProps={{\n \"data-cy\": \"message-template-cancel-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-cy\": \"message-template-send-button\",\n label: t(\"neetoMessageTemplate.template.send\"),\n }}\n />\n </Pane.Footer>\n </>\n );\n }}\n </Form>\n );\n};\n\nexport default Whatsapp;\n","import { noop } from \"neetocist\";\nimport { Pane, Spinner, Typography } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport NoDataPage from \"components/commons/NoDataPage\";\nimport { MESSAGE_TEMPLATES, MESSAGE_TYPES } from \"components/constants\";\nimport { useFetchTemplates } from \"hooks/reactQuery/useTemplatesApi\";\n\nimport EmailAndSms from \"./Form/EmailAndSms\";\nimport WhatsappForm from \"./Form/Whatsapp\";\n\nconst SendMessagePane = props => {\n const { isOpen, onClose } = props;\n\n return (\n <Pane {...{ isOpen, onClose }}>\n {paneProps => <SendMessageForm {...{ ...props, paneProps }} />}\n </Pane>\n );\n};\n\nconst SendMessageForm = ({\n type = \"\",\n handleSubmit = noop,\n onClose = noop,\n customFields = null,\n customFieldsInitialValues = {},\n customFieldsValidationSchema = {},\n templateVariables = {},\n ownerId = \"\", // Optional by default. Required in case if the owner of message-templates is not the Organization\n helpDocUrl = \"\",\n addNewTemplateRoute = \"\",\n paneProps: { setFocusField },\n}) => {\n const { t } = useTranslation();\n\n const { value } = MESSAGE_TEMPLATES[type];\n const isWhatsappTemplate = type === \"whatsapp\";\n const templateParams = {\n status: \"active\",\n templateType: value,\n ownerId,\n };\n\n const { data: { templates = [] } = {}, isLoading } =\n useFetchTemplates(templateParams);\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n if (isEmpty(templates)) {\n return <NoDataPage {...{ addNewTemplateRoute, helpDocUrl, type }} />;\n }\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoMessageTemplate.common.send\")} {MESSAGE_TYPES[type]}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n {isWhatsappTemplate ? (\n <WhatsappForm\n {...{\n customFields,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n handleSubmit,\n onClose,\n templates,\n }}\n />\n ) : (\n <EmailAndSms\n {...{\n customFields,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n handleSubmit,\n onClose,\n setFocusField,\n templateVariables,\n templates,\n type,\n }}\n />\n )}\n </Pane.Body>\n </>\n );\n};\n\nexport default SendMessagePane;\n"],"names":["formatEditorContent","value","replaceAll","trim","SEND_MESSAGE_INITIAL_VALUES","subject","body","EMAIL_MESSAGE_FORM_SCHEMA","yup","object","shape","string","required","t","test","SMS_MESSAGE_FORM_VALIDATION_SCHEMA","WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA","variableContents","array","of","EmailAndSms","_ref","onClose","templates","setFocusField","templateVariables","customFields","customFieldsInitialValues","customFieldsValidationSchema","type","handleSubmit","editorRef","useRef","_useTranslation","useTranslation","isEmailTemplate","_ref2","pick","_ref3","_slicedToArray","INITIAL_VALUES","SEND_MESSAGE_FORM_SCHEMA","updatedInitialValues","mergeAll","updatedValidationSchema","_objectSpread","fields","initialValueKeys","Object","keys","_jsx","Form","formProps","noValidate","className","formikProps","initialValues","validationSchema","onSubmit","children","_ref4","setValues","values","handleTemplateChange","_editorRef$current","customFieldValues","omit","template","findBy","id","current","editor","commands","setContent","_jsxs","_Fragment","Select","isClearable","isSearchable","innerRef","label","options","renameKeys","name","placeholder","onChange","Input","FormikEditor","hideSlashCommands","contentClassName","defaults","undefined","ref","rows","DEFAULT_EDITOR_ROW_COUNT","variables","Pane","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps","Whatsapp","_templates$","_templates$2","_templates$3","_templates$4","getInitialVariableComponents","initialComponents","forEach","count","Array","fill","getTemplateMessage","components","_nullSafe","nullSafe","pluck","join","initialFormValues","selectedTemplate","templateMessage","variableCount","defaultValue","Textarea","disabled","nakedTextarea","isNotEmpty","map","group","Typography","style","capitalize","_","index","concat","SendMessagePane","props","isOpen","paneProps","SendMessageForm","_ref$type","_ref$handleSubmit","noop","_ref$onClose","_ref$customFields","_ref$customFieldsInit","_ref$customFieldsVali","_ref$templateVariable","_ref$ownerId","ownerId","_ref$helpDocUrl","helpDocUrl","_ref$addNewTemplateRo","addNewTemplateRoute","MESSAGE_TEMPLATES","isWhatsappTemplate","templateParams","status","templateType","_useFetchTemplates","useFetchTemplates","_useFetchTemplates$da","data","_useFetchTemplates$da2","_useFetchTemplates$da3","isLoading","Spinner","isEmpty","NoDataPage","Header","weight","MESSAGE_TYPES","Body","WhatsappForm"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"SendMessagePane.js","sources":["../../app/javascript/src/components/commons/NoDataPage.jsx","../../app/javascript/src/components/SendMessagePane/constants.js","../../app/javascript/src/components/SendMessagePane/Form/EmailAndSms.jsx","../../app/javascript/src/components/SendMessagePane/Form/Whatsapp.jsx","../../app/javascript/src/components/SendMessagePane/index.jsx"],"sourcesContent":["import { Button, Typography } from \"neetoui\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { MESSAGE_TEMPLATES, MESSAGE_TYPES } from \"components/constants\";\n\nconst NoDataPage = ({ type, helpDocUrl = \"\" }) => {\n const { t } = useTranslation();\n\n const { label } = MESSAGE_TEMPLATES[type];\n\n if (type === MESSAGE_TYPES.whatsapp) {\n return (\n <div className=\"flex h-full w-full items-center justify-center px-6 text-center\">\n <Typography>\n {t(\"neetoMessageTemplate.template.emptyState\", {\n type: t(\"neetoMessageTemplate.template.whatsappTemplates\"),\n })}{\" \"}\n {helpDocUrl && (\n <Trans\n i18nKey=\"neetoMessageTemplate.template.whatsapp.helpDocText\"\n components={{\n Link: <Button href={helpDocUrl} size=\"large\" style=\"link\" />,\n }}\n />\n )}\n </Typography>\n </div>\n );\n }\n\n return (\n <div className=\"flex h-full w-full flex-col items-center justify-center\">\n <Typography>\n {t(\"neetoMessageTemplate.template.emptyState\", {\n type: label,\n })}\n </Typography>\n </div>\n );\n};\n\nexport default NoDataPage;\n","import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nconst formatEditorContent = value =>\n value?.replaceAll(/<\\/?(?!img)\\w*\\b[^>]*>/gi, \"\").trim();\n\nexport const SEND_MESSAGE_INITIAL_VALUES = {\n subject: \"\",\n body: \"\",\n shouldSaveAsTemplate: false,\n templateName: \"\",\n};\n\nexport const EMAIL_MESSAGE_FORM_SCHEMA = yup.object().shape({\n subject: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.subjectPresence\")),\n body: yup\n .string()\n .test(\n \"body\",\n t(\"neetoMessageTemplate.template.validation.bodyPresence\"),\n value => !!formatEditorContent(value)\n )\n .required(t(\"neetoMessageTemplate.template.validation.bodyPresence\")),\n templateName: yup.string().when(\"shouldSaveAsTemplate\", {\n is: true,\n then: yup.string().required(\n t(\"neetoMessageTemplate.template.validation.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.templateName\"),\n })\n ),\n }),\n});\n\nexport const SMS_MESSAGE_FORM_VALIDATION_SCHEMA = yup.object().shape({\n body: yup\n .string()\n .required(t(\"neetoMessageTemplate.template.validation.bodyPresence\"))\n .test(\n \"body\",\n t(\"neetoMessageTemplate.template.validation.bodyPresence\"),\n value => !!formatEditorContent(value)\n ),\n templateName: yup.string().when(\"shouldSaveAsTemplate\", {\n is: true,\n then: yup.string().required(\n t(\"neetoMessageTemplate.template.validation.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.templateName\"),\n })\n ),\n }),\n});\n\nexport const WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA = yup.object().shape({\n variableContents: yup.object().shape({\n body: yup\n .array()\n .of(\n yup\n .string()\n .required(\n t(\"neetoMessageTemplate.template.validation.variablePresence\")\n )\n ),\n }),\n});\n","import { useRef } from \"react\";\n\nimport { findBy, isPresent, renameKeys } from \"neetocist\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Pane, Select } from \"neetoui\";\nimport { ActionBlock, Form, Input } from \"neetoui/formik\";\nimport { mergeAll, omit } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport * as yup from \"yup\";\n\nimport SaveAsTemplate from \"components/commons/SaveAsTemplate\";\nimport { DEFAULT_EDITOR_ROW_COUNT } from \"components/constants\";\nimport { areValuesEqual } from \"components/utils\";\n\nimport {\n EMAIL_MESSAGE_FORM_SCHEMA,\n SEND_MESSAGE_INITIAL_VALUES,\n SMS_MESSAGE_FORM_VALIDATION_SCHEMA,\n} from \"../constants\";\n\nconst EmailAndSms = ({\n onClose,\n templates,\n setFocusField,\n templateVariables,\n customFields,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n type,\n handleSubmit,\n isSaveAsTemplateEnabled,\n}) => {\n const editorRef = useRef(null);\n const { t } = useTranslation();\n\n const isEmailTemplate = type === \"email\";\n const [INITIAL_VALUES, SEND_MESSAGE_FORM_SCHEMA] = isEmailTemplate\n ? [SEND_MESSAGE_INITIAL_VALUES, EMAIL_MESSAGE_FORM_SCHEMA]\n : [\n omit([\"subject\"], SEND_MESSAGE_INITIAL_VALUES),\n SMS_MESSAGE_FORM_VALIDATION_SCHEMA,\n ];\n\n const updatedInitialValues = mergeAll([\n INITIAL_VALUES,\n customFieldsInitialValues,\n ]);\n\n const updatedValidationSchema = yup.object().shape({\n ...SEND_MESSAGE_FORM_SCHEMA?.fields,\n ...customFieldsValidationSchema?.fields,\n });\n\n const shouldShowSaveAsTemplate = ({ id, subject, body } = {}) => {\n if (!isSaveAsTemplateEnabled) return false;\n\n const template = findBy({ id }, templates);\n const hasContent = isPresent(subject) || isPresent(body);\n const isContentDifferentFromTemplate = !(\n areValuesEqual(template?.subject, subject) && template?.body === body\n );\n\n return hasContent && isContentDifferentFromTemplate;\n };\n\n const isTemplateSelectionEnabled = isPresent(templates);\n\n return (\n <Form\n formProps={{\n noValidate: true,\n className: \"flex w-full flex-col gap-y-4 pb-6\",\n }}\n formikProps={{\n initialValues: updatedInitialValues,\n validationSchema: updatedValidationSchema,\n onSubmit: handleSubmit,\n }}\n >\n {({ setValues, values }) => {\n const handleTemplateChange = value => {\n if (!value) return;\n\n const template = findBy({ id: value?.value }, templates);\n setValues({ ...values, ...template });\n editorRef.current?.editor?.commands?.setContent(template.body);\n };\n\n return (\n <>\n {isTemplateSelectionEnabled && (\n <Select\n isClearable\n isSearchable\n innerRef={setFocusField}\n label={t(\"neetoMessageTemplate.template.title\")}\n options={renameKeys({ name: \"label\", id: \"value\" }, templates)}\n placeholder={t(\n \"neetoMessageTemplate.sendMessage.selectTemplate\"\n )}\n onChange={handleTemplateChange}\n />\n )}\n {customFields}\n {isEmailTemplate && (\n <Input\n required\n label={t(\"neetoMessageTemplate.template.subject\")}\n name=\"subject\"\n ref={isTemplateSelectionEnabled ? null : setFocusField}\n />\n )}\n <FormikEditor\n hideSlashCommands\n required\n autoFocus={!(isTemplateSelectionEnabled || isEmailTemplate)}\n contentClassName=\"max-h-40\"\n defaults={isEmailTemplate ? undefined : []}\n label={t(\"neetoMessageTemplate.template.body\")}\n name=\"body\"\n ref={editorRef}\n rows={DEFAULT_EDITOR_ROW_COUNT}\n variables={templateVariables}\n />\n {shouldShowSaveAsTemplate(values) && <SaveAsTemplate />}\n <Pane.Footer className=\"absolute bottom-0 left-0\">\n <ActionBlock\n cancelButtonProps={{\n \"data-cy\": \"message-template-cancel-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-cy\": \"message-template-send-button\",\n label: t(\"neetoMessageTemplate.template.send\"),\n }}\n />\n </Pane.Footer>\n </>\n );\n }}\n </Form>\n );\n};\nexport default EmailAndSms;\n","import {\n capitalize,\n nullSafe,\n findBy,\n isNotEmpty,\n renameKeys,\n} from \"neetocist\";\nimport { Pane, Textarea, Typography } from \"neetoui\";\nimport { Select, Form, Input, ActionBlock } from \"neetoui/formik\";\nimport { mergeAll, omit, pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport * as yup from \"yup\";\n\nimport { WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA } from \"../constants\";\n\nconst Whatsapp = ({\n templates,\n onClose,\n handleSubmit,\n customFields,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n}) => {\n const { t } = useTranslation();\n\n const getInitialVariableComponents = variables => {\n const initialComponents = {};\n\n variables?.forEach(({ type, count }) => {\n initialComponents[type] = Array(count).fill(\"\");\n });\n\n return initialComponents;\n };\n\n const getTemplateMessage = components =>\n nullSafe(pluck)(\"text\", components)?.join(\"\\n\");\n\n const initialFormValues = {\n selectedTemplate: { label: templates[0]?.name, value: templates[0]?.id },\n templateMessage: getTemplateMessage(templates[0]?.components),\n variableContents: getInitialVariableComponents(templates[0]?.variableCount),\n };\n\n const updatedInitialValues = mergeAll([\n initialFormValues,\n customFieldsInitialValues,\n ]);\n\n const updatedValidationSchema = yup.object().shape({\n ...WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA?.fields,\n ...customFieldsValidationSchema?.fields,\n });\n\n const initialValueKeys = Object.keys(initialFormValues);\n\n return (\n <Form\n formProps={{\n noValidate: true,\n className: \"flex w-full flex-col gap-y-4 pb-6\",\n }}\n formikProps={{\n initialValues: updatedInitialValues,\n validationSchema: updatedValidationSchema,\n onSubmit: handleSubmit,\n }}\n >\n {({ values, setValues }) => {\n const handleTemplateChange = value => {\n if (!value) return;\n\n const template = findBy({ id: value?.value }, templates);\n const customFieldValues = omit(initialValueKeys, values);\n setValues({\n selectedTemplate: { label: template.name, value: template.id },\n templateMessage: getTemplateMessage(template.components),\n variableContents: getInitialVariableComponents(\n template.variableCount\n ),\n ...customFieldValues,\n });\n };\n\n return (\n <>\n <Select\n required\n defaultValue={initialFormValues.selectedTemplate}\n label={t(\"neetoMessageTemplate.template.title\")}\n name=\"selectedTemplate\"\n options={renameKeys({ name: \"label\", id: \"value\" }, templates)}\n onChange={handleTemplateChange}\n />\n {customFields}\n <Textarea\n disabled\n nakedTextarea\n label={t(\"neetoMessageTemplate.template.preview\")}\n value={values.templateMessage}\n />\n {isNotEmpty(values.variableContents) && (\n <>\n {Object.keys(values.variableContents).map(group => (\n <div className=\"flex flex-col gap-y-2\" key={group}>\n <Typography style=\"h4\">\n {t(\"neetoMessageTemplate.template.resolveVariable\", {\n type: capitalize(group),\n })}\n </Typography>\n {values.variableContents[group].map((_, index) => (\n <div key={`${group}-${index}`}>\n <Input\n required\n key={`${group}-${index}`}\n label={`{{${index + 1}}}`}\n name={`variableContents.${group}.${index}`}\n />\n </div>\n ))}\n </div>\n ))}\n </>\n )}\n <Pane.Footer className=\"absolute bottom-0 left-0\">\n <ActionBlock\n cancelButtonProps={{\n \"data-cy\": \"message-template-cancel-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-cy\": \"message-template-send-button\",\n label: t(\"neetoMessageTemplate.template.send\"),\n }}\n />\n </Pane.Footer>\n </>\n );\n }}\n </Form>\n );\n};\n\nexport default Whatsapp;\n","import { noop } from \"neetocist\";\nimport { Pane, Spinner, Typography } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport NoDataPage from \"components/commons/NoDataPage\";\nimport { MESSAGE_TEMPLATES, MESSAGE_TYPES } from \"components/constants\";\nimport { useFetchTemplates } from \"hooks/reactQuery/useTemplatesApi\";\n\nimport EmailAndSms from \"./Form/EmailAndSms\";\nimport WhatsappForm from \"./Form/Whatsapp\";\n\nconst SendMessagePane = props => {\n const { isOpen, onClose } = props;\n\n return (\n <Pane {...{ isOpen, onClose }}>\n {paneProps => <SendMessageForm {...{ ...props, paneProps }} />}\n </Pane>\n );\n};\n\nconst SendMessageForm = ({\n type = \"\",\n handleSubmit = noop,\n onClose = noop,\n customFields = null,\n customFieldsInitialValues = {},\n customFieldsValidationSchema = {},\n templateVariables = {},\n ownerId = \"\", // Optional by default. Required in case if the owner of message-templates is not the Organization\n helpDocUrl = \"\",\n isSaveAsTemplateEnabled = true,\n paneProps: { setFocusField },\n}) => {\n const { t } = useTranslation();\n\n const { value } = MESSAGE_TEMPLATES[type];\n const isWhatsappTemplate = type === \"whatsapp\";\n const templateParams = {\n status: \"active\",\n templateType: value,\n ownerId,\n };\n\n const { data: { templates = [] } = {}, isLoading } =\n useFetchTemplates(templateParams);\n\n if (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n if (isWhatsappTemplate && isEmpty(templates)) {\n return <NoDataPage {...{ helpDocUrl, type }} />;\n }\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoMessageTemplate.common.send\")} {MESSAGE_TYPES[type]}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n {isWhatsappTemplate ? (\n <WhatsappForm\n {...{\n customFields,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n handleSubmit,\n onClose,\n templates,\n }}\n />\n ) : (\n <EmailAndSms\n {...{\n customFields,\n customFieldsInitialValues,\n customFieldsValidationSchema,\n handleSubmit,\n isSaveAsTemplateEnabled,\n onClose,\n setFocusField,\n templateVariables,\n templates,\n type,\n }}\n />\n )}\n </Pane.Body>\n </>\n );\n};\n\nexport default SendMessagePane;\n"],"names":["NoDataPage","_ref","type","_ref$helpDocUrl","helpDocUrl","_useTranslation","useTranslation","t","label","MESSAGE_TEMPLATES","MESSAGE_TYPES","whatsapp","_jsx","className","children","_jsxs","Typography","Trans","i18nKey","components","Link","Button","href","size","style","formatEditorContent","value","replaceAll","trim","SEND_MESSAGE_INITIAL_VALUES","subject","body","shouldSaveAsTemplate","templateName","EMAIL_MESSAGE_FORM_SCHEMA","yup","object","shape","string","required","test","when","is","then","entity","SMS_MESSAGE_FORM_VALIDATION_SCHEMA","WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA","variableContents","array","of","EmailAndSms","onClose","templates","setFocusField","templateVariables","customFields","customFieldsInitialValues","customFieldsValidationSchema","handleSubmit","isSaveAsTemplateEnabled","editorRef","useRef","isEmailTemplate","_ref2","omit","_ref3","_slicedToArray","INITIAL_VALUES","SEND_MESSAGE_FORM_SCHEMA","updatedInitialValues","mergeAll","updatedValidationSchema","_objectSpread","fields","shouldShowSaveAsTemplate","_ref4","arguments","length","undefined","id","template","findBy","hasContent","isPresent","isContentDifferentFromTemplate","areValuesEqual","isTemplateSelectionEnabled","Form","formProps","noValidate","formikProps","initialValues","validationSchema","onSubmit","_ref5","setValues","values","handleTemplateChange","_editorRef$current","current","editor","commands","setContent","_Fragment","Select","isClearable","isSearchable","innerRef","options","renameKeys","name","placeholder","onChange","Input","ref","FormikEditor","hideSlashCommands","autoFocus","contentClassName","defaults","rows","DEFAULT_EDITOR_ROW_COUNT","variables","SaveAsTemplate","Pane","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps","Whatsapp","_templates$","_templates$2","_templates$3","_templates$4","getInitialVariableComponents","initialComponents","forEach","count","Array","fill","getTemplateMessage","_nullSafe","nullSafe","pluck","join","initialFormValues","selectedTemplate","templateMessage","variableCount","initialValueKeys","Object","keys","customFieldValues","defaultValue","Textarea","disabled","nakedTextarea","isNotEmpty","map","group","capitalize","_","index","concat","SendMessagePane","props","isOpen","paneProps","SendMessageForm","_ref$type","_ref$handleSubmit","noop","_ref$onClose","_ref$customFields","_ref$customFieldsInit","_ref$customFieldsVali","_ref$templateVariable","_ref$ownerId","ownerId","_ref$isSaveAsTemplate","isWhatsappTemplate","templateParams","status","templateType","_useFetchTemplates","useFetchTemplates","_useFetchTemplates$da","data","_useFetchTemplates$da2","_useFetchTemplates$da3","isLoading","Spinner","isEmpty","Header","weight","Body","WhatsappForm"],"mappings":"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"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var useTemplatesApi = require('../useTemplatesApi-
|
|
3
|
+
var useTemplatesApi = require('../useTemplatesApi-d8923769.js');
|
|
4
4
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
5
5
|
var Pane = require('@bigbinary/neetoui/Pane');
|
|
6
6
|
var Select = require('@bigbinary/neetoui/Select');
|
|
7
|
+
var Spinner = require('@bigbinary/neetoui/Spinner');
|
|
7
8
|
var Typography = require('@bigbinary/neetoui/Typography');
|
|
8
9
|
var ActionBlock = require('@bigbinary/neetoui/formik/ActionBlock');
|
|
9
10
|
var Input = require('@bigbinary/neetoui/formik/Input');
|
|
@@ -11,11 +12,10 @@ var NeetoUIForm = require('@bigbinary/neetoui/formik/Form');
|
|
|
11
12
|
var ramda = require('ramda');
|
|
12
13
|
var reactI18next = require('react-i18next');
|
|
13
14
|
var utils = require('../utils-90248b52.js');
|
|
14
|
-
var
|
|
15
|
+
var utils$1 = require('../utils-900aa952.js');
|
|
15
16
|
var i18next = require('i18next');
|
|
16
17
|
var yup = require('yup');
|
|
17
18
|
var jsxRuntime = require('react/jsx-runtime');
|
|
18
|
-
require('@bigbinary/neeto-commons-frontend/constants');
|
|
19
19
|
require('@tanstack/react-query');
|
|
20
20
|
require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
21
21
|
require('axios');
|
|
@@ -24,6 +24,10 @@ require('formik');
|
|
|
24
24
|
require('@bigbinary/neeto-icons/Delete');
|
|
25
25
|
require('@bigbinary/neetoui/Button');
|
|
26
26
|
require('@bigbinary/neetoui/Label');
|
|
27
|
+
require('react');
|
|
28
|
+
require('../objectWithoutProperties-2fed2d7d.js');
|
|
29
|
+
require('classnames');
|
|
30
|
+
require('@bigbinary/neetoui/formik/Switch');
|
|
27
31
|
|
|
28
32
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
29
33
|
|
|
@@ -47,6 +51,7 @@ function _interopNamespace(e) {
|
|
|
47
51
|
|
|
48
52
|
var Pane__default = /*#__PURE__*/_interopDefaultLegacy(Pane);
|
|
49
53
|
var Select__default = /*#__PURE__*/_interopDefaultLegacy(Select);
|
|
54
|
+
var Spinner__default = /*#__PURE__*/_interopDefaultLegacy(Spinner);
|
|
50
55
|
var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
|
|
51
56
|
var ActionBlock__default = /*#__PURE__*/_interopDefaultLegacy(ActionBlock);
|
|
52
57
|
var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
|
|
@@ -55,14 +60,22 @@ var yup__namespace = /*#__PURE__*/_interopNamespace(yup);
|
|
|
55
60
|
|
|
56
61
|
var SEND_TO_API_FORM_INITIAL_VALUES = {
|
|
57
62
|
endpoint: "",
|
|
58
|
-
additionalData: [utils.ADDITIONAL_DATA_INITIAL_VALUE]
|
|
63
|
+
additionalData: [utils.ADDITIONAL_DATA_INITIAL_VALUE],
|
|
64
|
+
shouldSaveAsTemplate: false,
|
|
65
|
+
templateName: ""
|
|
59
66
|
};
|
|
60
67
|
var SEND_TO_API_FORM_VALIDATION_SCHEMA = yup__namespace.object({
|
|
61
68
|
endpoint: yup__namespace.string().required(i18next.t("neetoMessageTemplate.api.validation.endpointPresence")).matches(utils.VALID_URL_REGEX, i18next.t("neetoMessageTemplate.api.validation.validEndpoint")),
|
|
62
69
|
additionalData: yup__namespace.array().of(yup__namespace.object({
|
|
63
70
|
key: yup__namespace.string(),
|
|
64
71
|
value: yup__namespace.string()
|
|
65
|
-
}))
|
|
72
|
+
})),
|
|
73
|
+
templateName: yup__namespace.string().when("shouldSaveAsTemplate", {
|
|
74
|
+
is: true,
|
|
75
|
+
then: yup__namespace.string().required(i18next.t("neetoMessageTemplate.template.validation.requiredEntity", {
|
|
76
|
+
entity: i18next.t("neetoMessageTemplate.template.templateName")
|
|
77
|
+
}))
|
|
78
|
+
})
|
|
66
79
|
});
|
|
67
80
|
|
|
68
81
|
var formatAdditionalData = function formatAdditionalData(additionalData) {
|
|
@@ -89,7 +102,6 @@ var SendToApiForm = function SendToApiForm(_ref) {
|
|
|
89
102
|
onClose = _ref.onClose,
|
|
90
103
|
onSubmit = _ref.onSubmit,
|
|
91
104
|
isSubmitting = _ref.isSubmitting,
|
|
92
|
-
addNewTemplateRoute = _ref.addNewTemplateRoute,
|
|
93
105
|
setFocusField = _ref.paneProps.setFocusField;
|
|
94
106
|
var _useTranslation = reactI18next.useTranslation(),
|
|
95
107
|
t = _useTranslation.t;
|
|
@@ -103,18 +115,34 @@ var SendToApiForm = function SendToApiForm(_ref) {
|
|
|
103
115
|
_useFetchTemplates$da3 = _useFetchTemplates$da2.templates,
|
|
104
116
|
templates = _useFetchTemplates$da3 === void 0 ? [] : _useFetchTemplates$da3,
|
|
105
117
|
isLoadingTemplates = _useFetchTemplates.isLoading;
|
|
106
|
-
var handleTemplateChange = function handleTemplateChange(
|
|
107
|
-
|
|
108
|
-
|
|
118
|
+
var handleTemplateChange = function handleTemplateChange(setValues, values, option) {
|
|
119
|
+
if (!option) return;
|
|
120
|
+
var template = neetoCist.findBy({
|
|
121
|
+
id: option.value
|
|
122
|
+
}, templates);
|
|
123
|
+
setValues(_objectSpread(_objectSpread({}, values), ramda.modify("additionalData", formatAdditionalData, template)));
|
|
109
124
|
};
|
|
110
125
|
var handleSubmit = function handleSubmit(formValues) {
|
|
111
126
|
var additionalDataModifiedFormValues = ramda.modify("additionalData", utils.rejectEmptyKeyValuePairs, formValues);
|
|
112
127
|
onSubmit(additionalDataModifiedFormValues);
|
|
113
128
|
};
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
129
|
+
var shouldShowSaveAsTemplate = function shouldShowSaveAsTemplate() {
|
|
130
|
+
var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
|
131
|
+
id = _ref2.id,
|
|
132
|
+
endpoint = _ref2.endpoint,
|
|
133
|
+
additionalData = _ref2.additionalData;
|
|
134
|
+
var template = neetoCist.findBy({
|
|
135
|
+
id: id
|
|
136
|
+
}, templates);
|
|
137
|
+
var hasContent = neetoCist.isPresent(endpoint) || neetoCist.isPresent(utils.rejectEmptyKeyValuePairs(additionalData));
|
|
138
|
+
var isContentDifferentFromTemplate = !(utils$1.areValuesEqual(template === null || template === void 0 ? void 0 : template.endpoint, endpoint) && ramda.equals(template === null || template === void 0 ? void 0 : template.additionalData, additionalData));
|
|
139
|
+
return hasContent && isContentDifferentFromTemplate;
|
|
140
|
+
};
|
|
141
|
+
var isTemplateSelectionEnabled = neetoCist.isPresent(templates);
|
|
142
|
+
if (isLoadingTemplates) {
|
|
143
|
+
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
144
|
+
className: "flex h-full w-full items-center justify-center",
|
|
145
|
+
children: /*#__PURE__*/jsxRuntime.jsx(Spinner__default["default"], {})
|
|
118
146
|
});
|
|
119
147
|
}
|
|
120
148
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
@@ -130,13 +158,14 @@ var SendToApiForm = function SendToApiForm(_ref) {
|
|
|
130
158
|
validationSchema: SEND_TO_API_FORM_VALIDATION_SCHEMA,
|
|
131
159
|
onSubmit: handleSubmit
|
|
132
160
|
},
|
|
133
|
-
children: function children(
|
|
134
|
-
var
|
|
161
|
+
children: function children(_ref3) {
|
|
162
|
+
var values = _ref3.values,
|
|
163
|
+
setValues = _ref3.setValues;
|
|
135
164
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
136
165
|
children: [/*#__PURE__*/jsxRuntime.jsx(Pane__default["default"].Body, {
|
|
137
166
|
children: /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
138
167
|
className: "w-full space-y-5",
|
|
139
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Select__default["default"], {
|
|
168
|
+
children: [isTemplateSelectionEnabled && /*#__PURE__*/jsxRuntime.jsx(Select__default["default"], {
|
|
140
169
|
innerRef: setFocusField,
|
|
141
170
|
isLoading: isLoadingTemplates,
|
|
142
171
|
label: t("neetoMessageTemplate.template.title"),
|
|
@@ -146,17 +175,18 @@ var SendToApiForm = function SendToApiForm(_ref) {
|
|
|
146
175
|
}, templates),
|
|
147
176
|
placeholder: t("neetoMessageTemplate.sendMessage.selectTemplate"),
|
|
148
177
|
onChange: function onChange(template) {
|
|
149
|
-
return handleTemplateChange(
|
|
178
|
+
return handleTemplateChange(setValues, values, template);
|
|
150
179
|
}
|
|
151
180
|
}), /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
|
|
152
181
|
required: true,
|
|
153
182
|
label: t("neetoMessageTemplate.api.endpoint"),
|
|
154
183
|
name: "endpoint",
|
|
155
|
-
placeholder: utils.SAMPLE_URL
|
|
184
|
+
placeholder: utils.SAMPLE_URL,
|
|
185
|
+
ref: isTemplateSelectionEnabled ? null : setFocusField
|
|
156
186
|
}), /*#__PURE__*/jsxRuntime.jsx(utils.KeyValuePairs, {
|
|
157
187
|
label: t("neetoMessageTemplate.api.additionalData"),
|
|
158
188
|
name: "additionalData"
|
|
159
|
-
})]
|
|
189
|
+
}), shouldShowSaveAsTemplate(values) && /*#__PURE__*/jsxRuntime.jsx(utils$1.SaveAsTemplate, {})]
|
|
160
190
|
})
|
|
161
191
|
}), /*#__PURE__*/jsxRuntime.jsx(Pane__default["default"].Footer, {
|
|
162
192
|
children: /*#__PURE__*/jsxRuntime.jsx(ActionBlock__default["default"], {
|