@bigbinary/neeto-message-templates-frontend 0.0.9 → 0.1.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/dist/index.cjs.js +141 -8
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +147 -14
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -5280,6 +5280,7 @@ var template = {
|
|
|
5280
5280
|
search: "Search {{what}}",
|
|
5281
5281
|
markAsActive: "Mark as active",
|
|
5282
5282
|
markAsInactive: "Mark as inactive",
|
|
5283
|
+
close: "Close",
|
|
5283
5284
|
"delete": "Delete",
|
|
5284
5285
|
edit: "Edit",
|
|
5285
5286
|
saveChanges: "Save changes",
|
|
@@ -5303,13 +5304,16 @@ var template = {
|
|
|
5303
5304
|
sendTestEmail: "Send test email",
|
|
5304
5305
|
sendTestSms: "Send test sms",
|
|
5305
5306
|
filtersEmptyState: "There are no {{type}} to show for applied filters.",
|
|
5307
|
+
preview: "Template Preview",
|
|
5308
|
+
resolveVariable: "Resolve {{type}} variables",
|
|
5306
5309
|
validation: {
|
|
5307
5310
|
namePresence: "Name is required",
|
|
5308
5311
|
subjectPresence: "Subject is required",
|
|
5309
5312
|
bodyPresence: "Body is required",
|
|
5310
5313
|
emailAddressPresence: "Email address is required",
|
|
5311
5314
|
emailAddressFormatValidation: "Invalid email address",
|
|
5312
|
-
validPhoneNumber: "Enter valid phone number"
|
|
5315
|
+
validPhoneNumber: "Enter valid phone number",
|
|
5316
|
+
variablePresence: "Variable should not be empty"
|
|
5313
5317
|
}
|
|
5314
5318
|
};
|
|
5315
5319
|
var sendMessage = {
|
|
@@ -6086,7 +6090,7 @@ var TestMessage = function TestMessage(_ref) {
|
|
|
6086
6090
|
|
|
6087
6091
|
function ownKeys$2(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
6088
6092
|
function _objectSpread$2(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$2(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$2(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6089
|
-
var Form
|
|
6093
|
+
var Form = function Form(_ref) {
|
|
6090
6094
|
var onClose = _ref.onClose,
|
|
6091
6095
|
isEdit = _ref.isEdit,
|
|
6092
6096
|
_ref$template = _ref.template,
|
|
@@ -6204,7 +6208,7 @@ var AddEdit = function AddEdit(_ref) {
|
|
|
6204
6208
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
6205
6209
|
style: "h2",
|
|
6206
6210
|
weight: "semibold"
|
|
6207
|
-
}, label)), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement(Form
|
|
6211
|
+
}, label)), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement(Form, {
|
|
6208
6212
|
createUpdateTemplate: createUpdateTemplate,
|
|
6209
6213
|
handleSubmitTestTemplate: handleSubmitTestTemplate,
|
|
6210
6214
|
isEdit: isEdit,
|
|
@@ -6475,13 +6479,13 @@ var MessageTemplates = function MessageTemplates(_ref) {
|
|
|
6475
6479
|
};
|
|
6476
6480
|
var index$1 = withReactQuery(MessageTemplates);
|
|
6477
6481
|
|
|
6482
|
+
var formatEditorContent = function formatEditorContent(value) {
|
|
6483
|
+
return value === null || value === void 0 ? void 0 : value.replaceAll(/<\/?(?!img)\w*\b[^>]*>/gi, "").trim();
|
|
6484
|
+
};
|
|
6478
6485
|
var SEND_MESSAGE_INITIAL_VALUES = {
|
|
6479
6486
|
subject: "",
|
|
6480
6487
|
body: ""
|
|
6481
6488
|
};
|
|
6482
|
-
var formatEditorContent = function formatEditorContent(value) {
|
|
6483
|
-
return value === null || value === void 0 ? void 0 : value.replaceAll(/<\/?(?!img)\w*\b[^>]*>/gi, "").trim();
|
|
6484
|
-
};
|
|
6485
6489
|
var EMAIL_MESSAGE_FORM_SCHEMA = yup__namespace.object().shape({
|
|
6486
6490
|
subject: yup__namespace.string().trim().required(t$1("template.validation.subjectPresence")),
|
|
6487
6491
|
body: yup__namespace.string().test("body", t$1("template.validation.bodyPresence"), function (value) {
|
|
@@ -6493,10 +6497,15 @@ var SMS_MESSAGE_FORM_VALIDATION_SCHEMA = yup__namespace.object().shape({
|
|
|
6493
6497
|
return !!formatEditorContent(value);
|
|
6494
6498
|
})
|
|
6495
6499
|
});
|
|
6500
|
+
var WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA = yup__namespace.object().shape({
|
|
6501
|
+
variableContents: yup__namespace.object().shape({
|
|
6502
|
+
body: yup__namespace.array().of(yup__namespace.string().required(t$1("template.validation.variablePresence")))
|
|
6503
|
+
})
|
|
6504
|
+
});
|
|
6496
6505
|
|
|
6497
6506
|
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
6498
6507
|
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
6499
|
-
var
|
|
6508
|
+
var EmailAndSms = function EmailAndSms(_ref) {
|
|
6500
6509
|
var isEmailTemplate = _ref.isEmailTemplate,
|
|
6501
6510
|
onClose = _ref.onClose,
|
|
6502
6511
|
templates = _ref.templates,
|
|
@@ -6585,6 +6594,125 @@ var Form = function Form(_ref) {
|
|
|
6585
6594
|
});
|
|
6586
6595
|
};
|
|
6587
6596
|
|
|
6597
|
+
var Whatsapp = function Whatsapp(_ref) {
|
|
6598
|
+
var _templates$, _templates$2, _templates$3, _templates$4;
|
|
6599
|
+
var templates = _ref.templates,
|
|
6600
|
+
onClose = _ref.onClose,
|
|
6601
|
+
handleSubmit = _ref.handleSubmit;
|
|
6602
|
+
var _useTranslation = useTranslation(),
|
|
6603
|
+
t = _useTranslation.t;
|
|
6604
|
+
var getInitialVariableComponents = function getInitialVariableComponents(variables) {
|
|
6605
|
+
var initialComponents = {};
|
|
6606
|
+
variables.forEach(function (_ref2) {
|
|
6607
|
+
var type = _ref2.type,
|
|
6608
|
+
count = _ref2.count;
|
|
6609
|
+
initialComponents[type] = Array(count).fill("");
|
|
6610
|
+
});
|
|
6611
|
+
return initialComponents;
|
|
6612
|
+
};
|
|
6613
|
+
var getTemplateMessage = function getTemplateMessage(components) {
|
|
6614
|
+
return pure.nullSafe(ramda.pluck)("text", components).join("\n");
|
|
6615
|
+
};
|
|
6616
|
+
if (ramda.isEmpty(templates)) {
|
|
6617
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, null, t("template.emptyState", {
|
|
6618
|
+
type: t("template.whatsappTemplates")
|
|
6619
|
+
})), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Footer, {
|
|
6620
|
+
className: "absolute bottom-0 left-0"
|
|
6621
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
6622
|
+
label: t("template.close"),
|
|
6623
|
+
onClick: onClose
|
|
6624
|
+
})));
|
|
6625
|
+
}
|
|
6626
|
+
var initialFormValues = {
|
|
6627
|
+
selectedTemplate: {
|
|
6628
|
+
label: (_templates$ = templates[0]) === null || _templates$ === void 0 ? void 0 : _templates$.name,
|
|
6629
|
+
value: (_templates$2 = templates[0]) === null || _templates$2 === void 0 ? void 0 : _templates$2.id
|
|
6630
|
+
},
|
|
6631
|
+
templateMessage: getTemplateMessage((_templates$3 = templates[0]) === null || _templates$3 === void 0 ? void 0 : _templates$3.components),
|
|
6632
|
+
variableContents: getInitialVariableComponents((_templates$4 = templates[0]) === null || _templates$4 === void 0 ? void 0 : _templates$4.variableCount)
|
|
6633
|
+
};
|
|
6634
|
+
return /*#__PURE__*/React__default["default"].createElement(formik$1.Form, {
|
|
6635
|
+
formProps: {
|
|
6636
|
+
noValidate: true,
|
|
6637
|
+
className: "flex w-full flex-col gap-y-4 pb-6"
|
|
6638
|
+
},
|
|
6639
|
+
formikProps: {
|
|
6640
|
+
initialValues: initialFormValues,
|
|
6641
|
+
validationSchema: WHATSAPP_MESSAGE_FORM_VALIDATIONS_SCHEMA,
|
|
6642
|
+
onSubmit: handleSubmit
|
|
6643
|
+
}
|
|
6644
|
+
}, function (_ref3) {
|
|
6645
|
+
var dirty = _ref3.dirty,
|
|
6646
|
+
isSubmitting = _ref3.isSubmitting,
|
|
6647
|
+
values = _ref3.values,
|
|
6648
|
+
setValues = _ref3.setValues;
|
|
6649
|
+
var handleTemplateChange = function handleTemplateChange(value) {
|
|
6650
|
+
if (!value) return;
|
|
6651
|
+
var template = pure.findBy({
|
|
6652
|
+
id: value === null || value === void 0 ? void 0 : value.value
|
|
6653
|
+
}, templates);
|
|
6654
|
+
setValues({
|
|
6655
|
+
selectedTemplate: {
|
|
6656
|
+
label: template.name,
|
|
6657
|
+
value: template.id
|
|
6658
|
+
},
|
|
6659
|
+
templateMessage: getTemplateMessage(template.components),
|
|
6660
|
+
variableContents: getInitialVariableComponents(template.variableCount)
|
|
6661
|
+
});
|
|
6662
|
+
};
|
|
6663
|
+
return /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, /*#__PURE__*/React__default["default"].createElement(formik$1.Select, {
|
|
6664
|
+
required: true,
|
|
6665
|
+
defaultValue: initialFormValues.selectedTemplate,
|
|
6666
|
+
label: t("template.title"),
|
|
6667
|
+
name: "selectedTemplate",
|
|
6668
|
+
options: templates.map(function (_ref4) {
|
|
6669
|
+
var name = _ref4.name,
|
|
6670
|
+
id = _ref4.id;
|
|
6671
|
+
return {
|
|
6672
|
+
label: name,
|
|
6673
|
+
value: id
|
|
6674
|
+
};
|
|
6675
|
+
}),
|
|
6676
|
+
onChange: handleTemplateChange
|
|
6677
|
+
}), /*#__PURE__*/React__default["default"].createElement(neetoui.Textarea, {
|
|
6678
|
+
disabled: true,
|
|
6679
|
+
nakedTextarea: true,
|
|
6680
|
+
label: t("template.preview"),
|
|
6681
|
+
value: values.templateMessage
|
|
6682
|
+
}), pure.isNotEmpty(values.variableContents) && /*#__PURE__*/React__default["default"].createElement(React__default["default"].Fragment, null, Object.keys(values.variableContents).map(function (group) {
|
|
6683
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
6684
|
+
className: "flex flex-col gap-y-2",
|
|
6685
|
+
key: group
|
|
6686
|
+
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
6687
|
+
style: "h4"
|
|
6688
|
+
}, t("template.resolveVariable", {
|
|
6689
|
+
type: pure.capitalize(group)
|
|
6690
|
+
})), values.variableContents[group].map(function (_, index) {
|
|
6691
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
6692
|
+
key: "".concat(group, "-").concat(index)
|
|
6693
|
+
}, /*#__PURE__*/React__default["default"].createElement(formik$1.Input, {
|
|
6694
|
+
required: true,
|
|
6695
|
+
key: "".concat(group, "-").concat(index),
|
|
6696
|
+
label: "{{".concat(index + 1, "}}"),
|
|
6697
|
+
name: "variableContents.".concat(group, ".").concat(index)
|
|
6698
|
+
}));
|
|
6699
|
+
}));
|
|
6700
|
+
})), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Footer, {
|
|
6701
|
+
className: "absolute bottom-0 left-0 flex gap-x-2"
|
|
6702
|
+
}, /*#__PURE__*/React__default["default"].createElement(formik$1.Button, {
|
|
6703
|
+
disabled: !dirty || isSubmitting,
|
|
6704
|
+
label: t("template.saveChanges"),
|
|
6705
|
+
loading: isSubmitting,
|
|
6706
|
+
type: "submit"
|
|
6707
|
+
}), /*#__PURE__*/React__default["default"].createElement(formik$1.Button, {
|
|
6708
|
+
label: t("template.cancel"),
|
|
6709
|
+
style: "text",
|
|
6710
|
+
type: "reset",
|
|
6711
|
+
onClick: onClose
|
|
6712
|
+
})));
|
|
6713
|
+
});
|
|
6714
|
+
};
|
|
6715
|
+
|
|
6588
6716
|
var SendMessagePane = function SendMessagePane(_ref) {
|
|
6589
6717
|
var _ref$isOpen = _ref.isOpen,
|
|
6590
6718
|
isOpen = _ref$isOpen === void 0 ? false : _ref$isOpen,
|
|
@@ -6619,6 +6747,7 @@ var SendMessagePane = function SendMessagePane(_ref) {
|
|
|
6619
6747
|
_useFetchTemplates$da3 = _useFetchTemplates$da2.templates,
|
|
6620
6748
|
templates = _useFetchTemplates$da3 === void 0 ? [] : _useFetchTemplates$da3;
|
|
6621
6749
|
var isEmailTemplate = type === "email";
|
|
6750
|
+
var isWhatsappTemplate = type === "whatsapp";
|
|
6622
6751
|
return /*#__PURE__*/React__default["default"].createElement(neetoui.Pane, {
|
|
6623
6752
|
initialFocusRef: initialFocusField,
|
|
6624
6753
|
isOpen: isOpen,
|
|
@@ -6626,7 +6755,11 @@ var SendMessagePane = function SendMessagePane(_ref) {
|
|
|
6626
6755
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Header, null, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
6627
6756
|
style: "h2",
|
|
6628
6757
|
weight: "semibold"
|
|
6629
|
-
}, t("common.send"), " ", type)), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, /*#__PURE__*/React__default["default"].createElement(
|
|
6758
|
+
}, t("common.send"), " ", type)), /*#__PURE__*/React__default["default"].createElement(neetoui.Pane.Body, null, isWhatsappTemplate ? /*#__PURE__*/React__default["default"].createElement(Whatsapp, {
|
|
6759
|
+
handleSubmit: handleSubmit,
|
|
6760
|
+
templates: templates,
|
|
6761
|
+
onClose: onClose
|
|
6762
|
+
}) : /*#__PURE__*/React__default["default"].createElement(EmailAndSms, {
|
|
6630
6763
|
customFields: customFields,
|
|
6631
6764
|
customFieldsInitialValues: customFieldsInitialValues,
|
|
6632
6765
|
customFieldsValidationSchema: customFieldsValidationSchema,
|