@bigbinary/neeto-message-templates-frontend 2.0.7 → 2.0.8
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 +0 -2
- package/dist/.ready +1 -0
- package/dist/ApiTemplates.js +14 -13
- package/dist/ApiTemplates.js.map +1 -1
- package/dist/JsonEditor-BHy4s0Bo.js +402 -0
- package/dist/JsonEditor-BHy4s0Bo.js.map +1 -0
- package/dist/JsonEditor-BMMyHPxh.js +434 -0
- package/dist/JsonEditor-BMMyHPxh.js.map +1 -0
- package/dist/{JsonEditor-CGNPIMpX.js → JsonEditor-DEKfDX8p.js} +2 -5
- package/dist/{JsonEditor-CGNPIMpX.js.map → JsonEditor-DEKfDX8p.js.map} +1 -1
- package/dist/{JsonEditor-CLHGjppr.js → JsonEditor-DihhWMI5.js} +2 -5
- package/dist/{JsonEditor-CLHGjppr.js.map → JsonEditor-DihhWMI5.js.map} +1 -1
- package/dist/MessageTemplates.js +33 -43
- package/dist/MessageTemplates.js.map +1 -1
- package/dist/SendMessagePane.js +5 -5
- package/dist/SendMessagePane.js.map +1 -1
- package/dist/SendToApiPane.js +5 -4
- package/dist/SendToApiPane.js.map +1 -1
- package/dist/adaptive_input-BpXdshqg.js +17 -0
- package/dist/adaptive_input-BpXdshqg.js.map +1 -0
- package/dist/adaptive_input-Cd_EArae.js +19 -0
- package/dist/adaptive_input-Cd_EArae.js.map +1 -0
- package/dist/cjs/ApiTemplates.js +13 -12
- package/dist/cjs/ApiTemplates.js.map +1 -1
- package/dist/cjs/MessageTemplates.js +35 -45
- package/dist/cjs/MessageTemplates.js.map +1 -1
- package/dist/cjs/SendMessagePane.js +4 -4
- package/dist/cjs/SendMessagePane.js.map +1 -1
- package/dist/cjs/SendToApiPane.js +5 -4
- package/dist/cjs/SendToApiPane.js.map +1 -1
- package/dist/cjs/index.js +5 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/v2/ApiTemplates.js +461 -0
- package/dist/cjs/v2/ApiTemplates.js.map +1 -0
- package/dist/cjs/v2/MessageTemplates.js +849 -0
- package/dist/cjs/v2/MessageTemplates.js.map +1 -0
- package/dist/cjs/v2/SendMessagePane.js +451 -0
- package/dist/cjs/v2/SendMessagePane.js.map +1 -0
- package/dist/cjs/v2/SendToApiPane.js +244 -0
- package/dist/cjs/v2/SendToApiPane.js.map +1 -0
- package/dist/cjs/v2/index.js +57 -0
- package/dist/cjs/v2/index.js.map +1 -0
- package/dist/{constants-D4v0xTUu.js → constants-B2GWdy9V.js} +2 -2
- package/dist/{constants-D4v0xTUu.js.map → constants-B2GWdy9V.js.map} +1 -1
- package/dist/constants-CX95xIS-.js +44 -0
- package/dist/constants-CX95xIS-.js.map +1 -0
- package/dist/constants-Cvnks2UE.js +49 -0
- package/dist/constants-Cvnks2UE.js.map +1 -0
- package/dist/index.js +6 -5
- package/dist/index.js.map +1 -1
- package/dist/inject-css-B6qYtOJe.js +6 -0
- package/dist/inject-css-B6qYtOJe.js.map +1 -0
- package/dist/inject-css-C2dztUxs.js +4 -0
- package/dist/inject-css-C2dztUxs.js.map +1 -0
- package/dist/json_editor-Co5e3Chh.js +5 -0
- package/dist/json_editor-Co5e3Chh.js.map +1 -0
- package/dist/json_editor-CvRhtSA3.js +7 -0
- package/dist/json_editor-CvRhtSA3.js.map +1 -0
- package/dist/{useTemplatesApi-BBQsbYMK.js → useTemplatesApi-CMkDeBa9.js} +2 -2
- package/dist/{useTemplatesApi-BBQsbYMK.js.map → useTemplatesApi-CMkDeBa9.js.map} +1 -1
- package/dist/{useTemplatesApi-DHrOrdXb.js → useTemplatesApi-byHuEDTl.js} +2 -2
- package/dist/{useTemplatesApi-DHrOrdXb.js.map → useTemplatesApi-byHuEDTl.js.map} +1 -1
- package/dist/utils-BGEmI_om.js +49 -0
- package/dist/utils-BGEmI_om.js.map +1 -0
- package/dist/utils-CLc_-Ysi.js +52 -0
- package/dist/utils-CLc_-Ysi.js.map +1 -0
- package/dist/utils-Cz5W3I3l.js.map +1 -1
- package/dist/utils-DddrNhQe.js.map +1 -1
- package/dist/v2/ApiTemplates.js +459 -0
- package/dist/v2/ApiTemplates.js.map +1 -0
- package/dist/v2/MessageTemplates.js +828 -0
- package/dist/v2/MessageTemplates.js.map +1 -0
- package/dist/v2/SendMessagePane.js +430 -0
- package/dist/v2/SendMessagePane.js.map +1 -0
- package/dist/v2/SendToApiPane.js +223 -0
- package/dist/v2/SendToApiPane.js.map +1 -0
- package/dist/v2/index.js +48 -0
- package/dist/v2/index.js.map +1 -0
- package/package.json +44 -35
- package/dist/inject-css-DmrvuTKK.js +0 -4
- package/dist/inject-css-DmrvuTKK.js.map +0 -1
- package/dist/inject-css-vQvjPR2x.js +0 -6
- package/dist/inject-css-vQvjPR2x.js.map +0 -1
|
@@ -0,0 +1,828 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
3
|
+
import { useState, useRef, useEffect } from 'react';
|
|
4
|
+
import { Button, Typography, Sheet, DataTable, Empty, Alert } from '@bigbinary/neeto-atoms';
|
|
5
|
+
import { hyphenate, truncate, noop, isNotEmpty } from '@bigbinary/neeto-cist';
|
|
6
|
+
import FiltersBar from '@bigbinary/neeto-filters-frontend/Bar';
|
|
7
|
+
import Container from '@bigbinary/neeto-molecules/v2/Container';
|
|
8
|
+
import NeetoHeader from '@bigbinary/neeto-molecules/v2/Header';
|
|
9
|
+
import SubHeader from '@bigbinary/neeto-molecules/v2/SubHeader';
|
|
10
|
+
import { equals, prop, includes, pick, omit, mergeLeft, isEmpty, assoc } from 'ramda';
|
|
11
|
+
import { useTranslation, Trans } from 'react-i18next';
|
|
12
|
+
import { u as useTemplateStore } from '../adaptive_input-BpXdshqg.js';
|
|
13
|
+
import { b as DEFAULT_EDITOR_ROW_COUNT, D as DEFAULT_PAGE_PROPERTIES, M as MESSAGE_TEMPLATES, a as MESSAGE_TYPES } from '../constants-CX95xIS-.js';
|
|
14
|
+
import { t } from 'i18next';
|
|
15
|
+
import MoreDropdown from '@bigbinary/neeto-molecules/v2/MoreDropdown';
|
|
16
|
+
import { a as useUpdateTemplate, b as useFetchTemplates, u as useCreateTemplate, c as useDeleteTemplate } from '../useTemplatesApi-CMkDeBa9.js';
|
|
17
|
+
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
18
|
+
import { Textarea, Input, Form as Form$1, ActionBlock } from '@bigbinary/neeto-atoms/formik';
|
|
19
|
+
import FormikEditor from '@bigbinary/neeto-editor/FormikEditor';
|
|
20
|
+
import _objectWithoutProperties from '@babel/runtime/helpers/objectWithoutProperties';
|
|
21
|
+
import { useFormikContext } from 'formik';
|
|
22
|
+
import { isPhoneNumberValid } from '@bigbinary/neeto-molecules/v2/PhoneNumber';
|
|
23
|
+
import * as yup from 'yup';
|
|
24
|
+
import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
|
|
25
|
+
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
26
|
+
import { useQueryParams } from '@bigbinary/neeto-commons-frontend/v2/react-utils';
|
|
27
|
+
import { buildFiltersFromURL } from '@bigbinary/neeto-filters-frontend/utils';
|
|
28
|
+
import TableWrapper from '@bigbinary/neeto-molecules/v2/TableWrapper';
|
|
29
|
+
import '@bigbinary/neeto-commons-frontend/react-utils';
|
|
30
|
+
import 'zustand';
|
|
31
|
+
import '../inject-css-C2dztUxs.js';
|
|
32
|
+
import '@bigbinary/neeto-commons-frontend/v2/constants';
|
|
33
|
+
import '@tanstack/react-query';
|
|
34
|
+
import 'axios';
|
|
35
|
+
import 'qs';
|
|
36
|
+
|
|
37
|
+
var MESSAGE_TEMPLATE_INITIAL_STATE = {
|
|
38
|
+
isOpen: false,
|
|
39
|
+
isEdit: false,
|
|
40
|
+
isDelete: false,
|
|
41
|
+
template: {}
|
|
42
|
+
};
|
|
43
|
+
|
|
44
|
+
var MENU_ITEMS = {
|
|
45
|
+
EDIT: "edit",
|
|
46
|
+
DELETE: "delete",
|
|
47
|
+
STATUS: "status"
|
|
48
|
+
};
|
|
49
|
+
|
|
50
|
+
var getMenuItems = function getMenuItems(_ref) {
|
|
51
|
+
var handleDeleteTemplate = _ref.handleDeleteTemplate,
|
|
52
|
+
handleEditTemplate = _ref.handleEditTemplate,
|
|
53
|
+
handleMarkActiveInactive = _ref.handleMarkActiveInactive,
|
|
54
|
+
status = _ref.status;
|
|
55
|
+
return [{
|
|
56
|
+
key: MENU_ITEMS.EDIT,
|
|
57
|
+
label: t("neetoMessageTemplate.template.edit"),
|
|
58
|
+
onClick: handleEditTemplate,
|
|
59
|
+
"data-testid": "message-template-edit-button"
|
|
60
|
+
}, {
|
|
61
|
+
key: MENU_ITEMS.STATUS,
|
|
62
|
+
label: equals(status, "active") ? t("neetoMessageTemplate.template.markAsInactive") : t("neetoMessageTemplate.template.markAsActive"),
|
|
63
|
+
onClick: function onClick() {
|
|
64
|
+
return handleMarkActiveInactive(status);
|
|
65
|
+
},
|
|
66
|
+
"data-testid": "message-template-status-button"
|
|
67
|
+
}, {
|
|
68
|
+
key: MENU_ITEMS.DELETE,
|
|
69
|
+
label: t("neetoMessageTemplate.template.delete"),
|
|
70
|
+
onClick: handleDeleteTemplate,
|
|
71
|
+
"data-testid": "message-template-delete-button"
|
|
72
|
+
}];
|
|
73
|
+
};
|
|
74
|
+
|
|
75
|
+
function ownKeys$6(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; }
|
|
76
|
+
function _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
77
|
+
var RowActions = function RowActions(_ref) {
|
|
78
|
+
var template = _ref.template,
|
|
79
|
+
setManageTemplatePane = _ref.setManageTemplatePane,
|
|
80
|
+
ownerId = _ref.ownerId,
|
|
81
|
+
onMutationSuccess = _ref.onMutationSuccess;
|
|
82
|
+
var _useUpdateTemplate = useUpdateTemplate(ownerId),
|
|
83
|
+
update = _useUpdateTemplate.mutate;
|
|
84
|
+
var status = template.status,
|
|
85
|
+
id = template.id;
|
|
86
|
+
var templateType = useTemplateStore(prop("templateType"));
|
|
87
|
+
var handleEditTemplate = function handleEditTemplate() {
|
|
88
|
+
return setManageTemplatePane(_objectSpread$6(_objectSpread$6({}, MESSAGE_TEMPLATE_INITIAL_STATE), {}, {
|
|
89
|
+
isOpen: true,
|
|
90
|
+
isEdit: true,
|
|
91
|
+
template: template
|
|
92
|
+
}));
|
|
93
|
+
};
|
|
94
|
+
var handleDeleteTemplate = function handleDeleteTemplate() {
|
|
95
|
+
return setManageTemplatePane(_objectSpread$6(_objectSpread$6({}, MESSAGE_TEMPLATE_INITIAL_STATE), {}, {
|
|
96
|
+
isDelete: true,
|
|
97
|
+
template: template
|
|
98
|
+
}));
|
|
99
|
+
};
|
|
100
|
+
var handleMarkActiveInactive = function handleMarkActiveInactive(activeState) {
|
|
101
|
+
var status = activeState === "active" ? "inactive" : "active";
|
|
102
|
+
update({
|
|
103
|
+
payload: {
|
|
104
|
+
status: status,
|
|
105
|
+
templateType: templateType
|
|
106
|
+
},
|
|
107
|
+
id: id
|
|
108
|
+
}, {
|
|
109
|
+
onSuccess: onMutationSuccess
|
|
110
|
+
});
|
|
111
|
+
};
|
|
112
|
+
return /*#__PURE__*/jsx(MoreDropdown, {
|
|
113
|
+
dropdownButtonProps: {
|
|
114
|
+
"data-testid": "message-template-dropdown",
|
|
115
|
+
className: "me-1 my-1"
|
|
116
|
+
},
|
|
117
|
+
menuItems: getMenuItems({
|
|
118
|
+
handleDeleteTemplate: handleDeleteTemplate,
|
|
119
|
+
handleEditTemplate: handleEditTemplate,
|
|
120
|
+
handleMarkActiveInactive: handleMarkActiveInactive,
|
|
121
|
+
status: status
|
|
122
|
+
})
|
|
123
|
+
});
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
function ownKeys$5(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; }
|
|
127
|
+
function _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
128
|
+
var handleEditTemplate = function handleEditTemplate(setManageTemplatePane, template) {
|
|
129
|
+
return setManageTemplatePane(_objectSpread$5(_objectSpread$5({}, MESSAGE_TEMPLATE_INITIAL_STATE), {}, {
|
|
130
|
+
isOpen: true,
|
|
131
|
+
isEdit: true,
|
|
132
|
+
template: template
|
|
133
|
+
}));
|
|
134
|
+
};
|
|
135
|
+
var renderSearchProps = function renderSearchProps(label, value) {
|
|
136
|
+
return {
|
|
137
|
+
className: "w-52",
|
|
138
|
+
placeholder: t("neetoMessageTemplate.template.search", {
|
|
139
|
+
what: label
|
|
140
|
+
}),
|
|
141
|
+
"data-testid": "".concat(hyphenate(value), "-search-input")
|
|
142
|
+
};
|
|
143
|
+
};
|
|
144
|
+
|
|
145
|
+
// These column definitions serve double duty, exactly as they did in v1: the
|
|
146
|
+
// TanStack keys (`id`/`accessorKey`/`header`/`size`/`cell`) feed atoms'
|
|
147
|
+
// DataTable, while the filter keys (`key`/`node`/`label`/`type`/`values`) feed
|
|
148
|
+
// neetofilters via `useFilters`. Keep both sets in sync when editing.
|
|
149
|
+
var buildTableColumnData = function buildTableColumnData(setManageTemplatePane, ownerId, onMutationSuccess) {
|
|
150
|
+
return [{
|
|
151
|
+
accessorKey: "name",
|
|
152
|
+
id: "name",
|
|
153
|
+
key: "name",
|
|
154
|
+
node: "name",
|
|
155
|
+
header: t("neetoMessageTemplate.template.name"),
|
|
156
|
+
label: t("neetoMessageTemplate.template.name"),
|
|
157
|
+
type: "text",
|
|
158
|
+
size: 200,
|
|
159
|
+
cell: function cell(_ref) {
|
|
160
|
+
var template = _ref.row.original;
|
|
161
|
+
return /*#__PURE__*/jsxs("div", {
|
|
162
|
+
className: "flex items-center justify-between gap-x-3",
|
|
163
|
+
children: [/*#__PURE__*/jsx(Button, {
|
|
164
|
+
label: truncate(template.name, 100),
|
|
165
|
+
variant: "link",
|
|
166
|
+
onClick: function onClick() {
|
|
167
|
+
return handleEditTemplate(setManageTemplatePane, template);
|
|
168
|
+
}
|
|
169
|
+
}), /*#__PURE__*/jsx(RowActions, {
|
|
170
|
+
onMutationSuccess: onMutationSuccess,
|
|
171
|
+
ownerId: ownerId,
|
|
172
|
+
setManageTemplatePane: setManageTemplatePane,
|
|
173
|
+
template: template
|
|
174
|
+
})]
|
|
175
|
+
});
|
|
176
|
+
}
|
|
177
|
+
}, {
|
|
178
|
+
accessorKey: "status",
|
|
179
|
+
id: "status",
|
|
180
|
+
key: "status",
|
|
181
|
+
node: "status",
|
|
182
|
+
header: t("neetoMessageTemplate.template.active"),
|
|
183
|
+
label: t("neetoMessageTemplate.template.active"),
|
|
184
|
+
type: "single_option",
|
|
185
|
+
values: [{
|
|
186
|
+
label: "Yes",
|
|
187
|
+
value: "active"
|
|
188
|
+
}, {
|
|
189
|
+
label: "No",
|
|
190
|
+
value: "inactive"
|
|
191
|
+
}],
|
|
192
|
+
cell: function cell(_ref2) {
|
|
193
|
+
var getValue = _ref2.getValue;
|
|
194
|
+
return getValue() === "active" ? "Yes" : "No";
|
|
195
|
+
},
|
|
196
|
+
size: 180
|
|
197
|
+
}];
|
|
198
|
+
};
|
|
199
|
+
|
|
200
|
+
var _excluded = ["label", "name"];
|
|
201
|
+
function ownKeys$4(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; }
|
|
202
|
+
function _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
203
|
+
var FormikAdaptiveInput = function FormikAdaptiveInput(_ref) {
|
|
204
|
+
var label = _ref.label,
|
|
205
|
+
name = _ref.name,
|
|
206
|
+
otherProps = _objectWithoutProperties(_ref, _excluded);
|
|
207
|
+
var _useFormikContext = useFormikContext(),
|
|
208
|
+
submitForm = _useFormikContext.submitForm;
|
|
209
|
+
var handleKeyDown = function handleKeyDown(event) {
|
|
210
|
+
if (event.key !== "Enter" || event.shiftKey) return;
|
|
211
|
+
event.preventDefault();
|
|
212
|
+
submitForm();
|
|
213
|
+
};
|
|
214
|
+
return /*#__PURE__*/jsx(Textarea, _objectSpread$4({
|
|
215
|
+
label: label,
|
|
216
|
+
name: name,
|
|
217
|
+
className: "neeto-message-templates-nano-adaptive-input",
|
|
218
|
+
resize: "none",
|
|
219
|
+
size: "small",
|
|
220
|
+
onKeyDown: handleKeyDown
|
|
221
|
+
}, otherProps));
|
|
222
|
+
};
|
|
223
|
+
|
|
224
|
+
// eslint-disable-next-line @bigbinary/neeto/file-name-and-export-name-standards
|
|
225
|
+
var formatEditorContent = function formatEditorContent(value) {
|
|
226
|
+
return value === null || value === void 0 ? void 0 : value.replaceAll(/<\/?(?!img)\w*\b[^>]*>/gi, "").trim();
|
|
227
|
+
};
|
|
228
|
+
var EMAIL_TEMPLATE_INITIAL_VALUES = {
|
|
229
|
+
name: "",
|
|
230
|
+
subject: "",
|
|
231
|
+
body: "",
|
|
232
|
+
testEmailAddress: ""
|
|
233
|
+
};
|
|
234
|
+
var SMS_TEMPLATE_INITIAL_VALUES = {
|
|
235
|
+
name: "",
|
|
236
|
+
body: "",
|
|
237
|
+
testPhoneNumber: ""
|
|
238
|
+
};
|
|
239
|
+
var EMAIL_TEMPLATE_FORM_SCHEMA = yup.object({
|
|
240
|
+
name: yup.string().trim().required(t("neetoMessageTemplate.template.validation.namePresence")),
|
|
241
|
+
subject: yup.string().trim().required(t("neetoMessageTemplate.template.validation.subjectPresence")),
|
|
242
|
+
body: yup.string().test("name", t("neetoMessageTemplate.template.validation.bodyPresence"), function (value) {
|
|
243
|
+
return !!formatEditorContent(value);
|
|
244
|
+
})
|
|
245
|
+
});
|
|
246
|
+
var SMS_TEMPLATE_FORM_VALIDATION_SCHEMA = yup.object({
|
|
247
|
+
name: yup.string().trim().required(t("neetoMessageTemplate.template.validation.namePresence")),
|
|
248
|
+
body: yup.string().test("body", t("neetoMessageTemplate.template.validation.bodyPresence"), function (value) {
|
|
249
|
+
return !!formatEditorContent(value);
|
|
250
|
+
})
|
|
251
|
+
});
|
|
252
|
+
var SEND_TEST_EMAIL_SCHEMA = yup.string().trim().required(t("neetoMessageTemplate.template.validation.emailAddressPresence")).email(t("neetoMessageTemplate.template.validation.emailAddressFormatValidation"));
|
|
253
|
+
var PHONE_NUMBER_VALIDATION_SCHEMA = yup.string().test("testPhoneNumber", t("neetoMessageTemplate.template.validation.validPhoneNumber"), function (value) {
|
|
254
|
+
return isPhoneNumberValid(value);
|
|
255
|
+
});
|
|
256
|
+
|
|
257
|
+
function ownKeys$3(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; }
|
|
258
|
+
function _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
259
|
+
function _regenerator() { /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ var e, t, r = "function" == typeof Symbol ? Symbol : {}, n = r.iterator || "@@iterator", o = r.toStringTag || "@@toStringTag"; function i(r, n, o, i) { var c = n && n.prototype instanceof Generator ? n : Generator, u = Object.create(c.prototype); return _regeneratorDefine2(u, "_invoke", function (r, n, o) { var i, c, u, f = 0, p = o || [], y = false, G = { p: 0, n: 0, v: e, a: d, f: d.bind(e, 4), d: function d(t, r) { return i = t, c = 0, u = e, G.n = r, a; } }; function d(r, n) { for (c = r, u = n, t = 0; !y && f && !o && t < p.length; t++) { var o, i = p[t], d = G.p, l = i[2]; r > 3 ? (o = l === n) && (u = i[(c = i[4]) ? 5 : (c = 3, 3)], i[4] = i[5] = e) : i[0] <= d && ((o = r < 2 && d < i[1]) ? (c = 0, G.v = n, G.n = i[1]) : d < l && (o = r < 3 || i[0] > n || n > l) && (i[4] = r, i[5] = n, G.n = l, c = 0)); } if (o || r > 1) return a; throw y = true, n; } return function (o, p, l) { if (f > 1) throw TypeError("Generator is already running"); for (y && 1 === p && d(p, l), c = p, u = l; (t = c < 2 ? e : u) || !y;) { i || (c ? c < 3 ? (c > 1 && (G.n = -1), d(c, u)) : G.n = u : G.v = u); try { if (f = 2, i) { if (c || (o = "next"), t = i[o]) { if (!(t = t.call(i, u))) throw TypeError("iterator result is not an object"); if (!t.done) return t; u = t.value, c < 2 && (c = 0); } else 1 === c && (t = i["return"]) && t.call(i), c < 2 && (u = TypeError("The iterator does not provide a '" + o + "' method"), c = 1); i = e; } else if ((t = (y = G.n < 0) ? u : r.call(n, G)) !== a) break; } catch (t) { i = e, c = 1, u = t; } finally { f = 1; } } return { value: t, done: y }; }; }(r, o, i), true), u; } var a = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} t = Object.getPrototypeOf; var c = [][n] ? t(t([][n]())) : (_regeneratorDefine2(t = {}, n, function () { return this; }), t), u = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(c); function f(e) { return Object.setPrototypeOf ? Object.setPrototypeOf(e, GeneratorFunctionPrototype) : (e.__proto__ = GeneratorFunctionPrototype, _regeneratorDefine2(e, o, "GeneratorFunction")), e.prototype = Object.create(u), e; } return GeneratorFunction.prototype = GeneratorFunctionPrototype, _regeneratorDefine2(u, "constructor", GeneratorFunctionPrototype), _regeneratorDefine2(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = "GeneratorFunction", _regeneratorDefine2(GeneratorFunctionPrototype, o, "GeneratorFunction"), _regeneratorDefine2(u), _regeneratorDefine2(u, o, "Generator"), _regeneratorDefine2(u, n, function () { return this; }), _regeneratorDefine2(u, "toString", function () { return "[object Generator]"; }), (_regenerator = function _regenerator() { return { w: i, m: f }; })(); }
|
|
260
|
+
function _regeneratorDefine2(e, r, n, t) { var i = Object.defineProperty; try { i({}, "", {}); } catch (e) { i = 0; } _regeneratorDefine2 = function _regeneratorDefine(e, r, n, t) { function o(r, n) { _regeneratorDefine2(e, r, function (e) { return this._invoke(r, n, e); }); } r ? i ? i(e, r, { value: n, enumerable: !t, configurable: !t, writable: !t }) : e[r] = n : (o("next", 0), o("throw", 1), o("return", 2)); }, _regeneratorDefine2(e, r, n, t); }
|
|
261
|
+
var TestMessage = function TestMessage(_ref) {
|
|
262
|
+
var isEmailTemplate = _ref.isEmailTemplate,
|
|
263
|
+
handleSubmitTestTemplate = _ref.handleSubmitTestTemplate,
|
|
264
|
+
isTestMessageLoading = _ref.isTestMessageLoading,
|
|
265
|
+
isTestingTemplateDisabled = _ref.isTestingTemplateDisabled,
|
|
266
|
+
customFields = _ref.customFields;
|
|
267
|
+
var _useState = useState(true),
|
|
268
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
269
|
+
isTestingTemplateRestricted = _useState2[0],
|
|
270
|
+
setIsTestingTemplateRestricted = _useState2[1];
|
|
271
|
+
var _useFormikContext = useFormikContext(),
|
|
272
|
+
values = _useFormikContext.values,
|
|
273
|
+
isValid = _useFormikContext.isValid;
|
|
274
|
+
var _useTranslation = useTranslation(),
|
|
275
|
+
t = _useTranslation.t;
|
|
276
|
+
var handleTestValidation = /*#__PURE__*/function () {
|
|
277
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regenerator().m(function _callee(event) {
|
|
278
|
+
var value;
|
|
279
|
+
return _regenerator().w(function (_context) {
|
|
280
|
+
while (1) switch (_context.p = _context.n) {
|
|
281
|
+
case 0:
|
|
282
|
+
value = event.target.value;
|
|
283
|
+
_context.p = 1;
|
|
284
|
+
if (!isEmailTemplate) {
|
|
285
|
+
_context.n = 3;
|
|
286
|
+
break;
|
|
287
|
+
}
|
|
288
|
+
_context.n = 2;
|
|
289
|
+
return SEND_TEST_EMAIL_SCHEMA.validate(value);
|
|
290
|
+
case 2:
|
|
291
|
+
_context.n = 4;
|
|
292
|
+
break;
|
|
293
|
+
case 3:
|
|
294
|
+
_context.n = 4;
|
|
295
|
+
return PHONE_NUMBER_VALIDATION_SCHEMA.validate(value);
|
|
296
|
+
case 4:
|
|
297
|
+
setIsTestingTemplateRestricted(false);
|
|
298
|
+
_context.n = 6;
|
|
299
|
+
break;
|
|
300
|
+
case 5:
|
|
301
|
+
_context.p = 5;
|
|
302
|
+
_context.v;
|
|
303
|
+
setIsTestingTemplateRestricted(true);
|
|
304
|
+
case 6:
|
|
305
|
+
return _context.a(2);
|
|
306
|
+
}
|
|
307
|
+
}, _callee, null, [[1, 5]]);
|
|
308
|
+
}));
|
|
309
|
+
return function handleTestValidation(_x) {
|
|
310
|
+
return _ref2.apply(this, arguments);
|
|
311
|
+
};
|
|
312
|
+
}();
|
|
313
|
+
var isTestTemplateButtonDisabled = !isValid || isTestingTemplateDisabled || isTestingTemplateRestricted || isTestMessageLoading;
|
|
314
|
+
var handleKeyDown = function handleKeyDown(event) {
|
|
315
|
+
if (event.key !== "Enter") return;
|
|
316
|
+
event.stopPropagation();
|
|
317
|
+
event.preventDefault();
|
|
318
|
+
!isTestTemplateButtonDisabled && handleSubmitTestTemplate(values);
|
|
319
|
+
};
|
|
320
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
321
|
+
children: [/*#__PURE__*/jsxs("div", {
|
|
322
|
+
className: "start-0 flex items-start gap-x-2",
|
|
323
|
+
children: [/*#__PURE__*/jsx(Input, _objectSpread$3(_objectSpread$3({
|
|
324
|
+
"data-testid": "message-template-test-input"
|
|
325
|
+
}, !isEmailTemplate && {
|
|
326
|
+
helpText: t("neetoMessageTemplate.template.phoneNumberHelpText")
|
|
327
|
+
}), {}, {
|
|
328
|
+
name: isEmailTemplate ? "testEmailAddress" : "testPhoneNumber",
|
|
329
|
+
placeholder: t(isEmailTemplate ? "neetoMessageTemplate.template.emailAddress" : "neetoMessageTemplate.template.phoneNumber"),
|
|
330
|
+
onKeyDown: handleKeyDown,
|
|
331
|
+
onKeyUp: handleTestValidation
|
|
332
|
+
})), /*#__PURE__*/jsx(Button, {
|
|
333
|
+
"data-testid": "message-template-test-button",
|
|
334
|
+
disabled: isTestTemplateButtonDisabled,
|
|
335
|
+
loading: isTestMessageLoading,
|
|
336
|
+
type: "button",
|
|
337
|
+
variant: "default",
|
|
338
|
+
label: isEmailTemplate ? t("neetoMessageTemplate.template.sendTestEmail") : t("neetoMessageTemplate.template.sendTestSms"),
|
|
339
|
+
onClick: function onClick() {
|
|
340
|
+
return handleSubmitTestTemplate(values);
|
|
341
|
+
}
|
|
342
|
+
})]
|
|
343
|
+
}), !isEmailTemplate && /*#__PURE__*/jsx(Typography, {
|
|
344
|
+
variant: "body2",
|
|
345
|
+
children: t("neetoMessageTemplate.sendMessage.testSmsNote")
|
|
346
|
+
}), customFields]
|
|
347
|
+
});
|
|
348
|
+
};
|
|
349
|
+
|
|
350
|
+
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
351
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
352
|
+
var Form = function Form(_ref) {
|
|
353
|
+
var onClose = _ref.onClose,
|
|
354
|
+
isEdit = _ref.isEdit,
|
|
355
|
+
_ref$template = _ref.template,
|
|
356
|
+
template = _ref$template === void 0 ? {} : _ref$template,
|
|
357
|
+
createUpdateTemplate = _ref.createUpdateTemplate,
|
|
358
|
+
setInitialFocusField = _ref.setInitialFocusField,
|
|
359
|
+
handleSubmitTestTemplate = _ref.handleSubmitTestTemplate,
|
|
360
|
+
isTestMessageLoading = _ref.isTestMessageLoading,
|
|
361
|
+
shouldIncludeTestTemplate = _ref.shouldIncludeTestTemplate,
|
|
362
|
+
templateVariables = _ref.templateVariables,
|
|
363
|
+
isTestingTemplateDisabled = _ref.isTestingTemplateDisabled,
|
|
364
|
+
customFields = _ref.customFields,
|
|
365
|
+
onMutationSuccess = _ref.onMutationSuccess;
|
|
366
|
+
var _useTranslation = useTranslation(),
|
|
367
|
+
t = _useTranslation.t;
|
|
368
|
+
var editorRef = useRef(null);
|
|
369
|
+
var templateType = useTemplateStore(prop("templateType"));
|
|
370
|
+
var isEmailTemplate = equals(templateType, "email_template");
|
|
371
|
+
var isTestTemplateVisible = includes(templateType, ["sms_template", "email_template"]) && shouldIncludeTestTemplate;
|
|
372
|
+
var _ref2 = isEmailTemplate ? [_objectSpread$2(_objectSpread$2({}, EMAIL_TEMPLATE_INITIAL_VALUES), pick(["name", "body", "subject", "active"], template)), EMAIL_TEMPLATE_FORM_SCHEMA] : [_objectSpread$2(_objectSpread$2({}, SMS_TEMPLATE_INITIAL_VALUES), pick(["name", "body", "active"], template)), SMS_TEMPLATE_FORM_VALIDATION_SCHEMA],
|
|
373
|
+
_ref3 = _slicedToArray(_ref2, 2),
|
|
374
|
+
TEMPLATE_INITIAL_VALUES = _ref3[0],
|
|
375
|
+
TEMPLATE_FORM_SCHEMA = _ref3[1];
|
|
376
|
+
var handleSubmit = function handleSubmit(values) {
|
|
377
|
+
var filteredValues = isEmailTemplate ? omit(["name", "testEmailAddress"], values) : omit(["name", "testPhoneNumber"], values);
|
|
378
|
+
var payload = {
|
|
379
|
+
templateType: templateType,
|
|
380
|
+
name: values.name,
|
|
381
|
+
entity: mergeLeft({
|
|
382
|
+
id: template.id
|
|
383
|
+
}, filteredValues)
|
|
384
|
+
};
|
|
385
|
+
createUpdateTemplate({
|
|
386
|
+
isEdit: isEdit,
|
|
387
|
+
payload: payload,
|
|
388
|
+
id: template.id
|
|
389
|
+
}, {
|
|
390
|
+
onSuccess: function onSuccess() {
|
|
391
|
+
onMutationSuccess.apply(void 0, arguments);
|
|
392
|
+
onClose();
|
|
393
|
+
}
|
|
394
|
+
});
|
|
395
|
+
};
|
|
396
|
+
var messageBodyLabel = isEmailTemplate ? t("neetoMessageTemplate.template.emailBody") : t("neetoMessageTemplate.template.smsBody");
|
|
397
|
+
return /*#__PURE__*/jsxs(Form$1, {
|
|
398
|
+
formProps: {
|
|
399
|
+
noValidate: true,
|
|
400
|
+
className: "flex w-full flex-col gap-y-4 pb-6"
|
|
401
|
+
},
|
|
402
|
+
formikProps: {
|
|
403
|
+
initialValues: TEMPLATE_INITIAL_VALUES,
|
|
404
|
+
validationSchema: TEMPLATE_FORM_SCHEMA,
|
|
405
|
+
validateOnBlur: true,
|
|
406
|
+
validateOnChange: true,
|
|
407
|
+
onSubmit: handleSubmit
|
|
408
|
+
},
|
|
409
|
+
children: [/*#__PURE__*/jsx(Input, {
|
|
410
|
+
required: true,
|
|
411
|
+
label: t("neetoMessageTemplate.template.templateName"),
|
|
412
|
+
name: "name",
|
|
413
|
+
ref: setInitialFocusField
|
|
414
|
+
}), isEmailTemplate && /*#__PURE__*/jsx(FormikAdaptiveInput, {
|
|
415
|
+
required: true,
|
|
416
|
+
label: t("neetoMessageTemplate.template.emailSubject"),
|
|
417
|
+
name: "subject"
|
|
418
|
+
}), /*#__PURE__*/jsx(FormikEditor, {
|
|
419
|
+
hideSlashCommands: true,
|
|
420
|
+
required: true,
|
|
421
|
+
contentClassName: "max-h-40",
|
|
422
|
+
defaults: isEmailTemplate ? undefined : [],
|
|
423
|
+
label: messageBodyLabel,
|
|
424
|
+
name: "body",
|
|
425
|
+
ref: editorRef,
|
|
426
|
+
rows: DEFAULT_EDITOR_ROW_COUNT,
|
|
427
|
+
variables: templateVariables
|
|
428
|
+
}), isTestTemplateVisible && /*#__PURE__*/jsx(TestMessage, {
|
|
429
|
+
customFields: customFields,
|
|
430
|
+
handleSubmitTestTemplate: handleSubmitTestTemplate,
|
|
431
|
+
isEmailTemplate: isEmailTemplate,
|
|
432
|
+
isTestMessageLoading: isTestMessageLoading,
|
|
433
|
+
isTestingTemplateDisabled: isTestingTemplateDisabled
|
|
434
|
+
}), /*#__PURE__*/jsx(Sheet.Footer, {
|
|
435
|
+
className: "absolute bottom-0 start-0",
|
|
436
|
+
children: /*#__PURE__*/jsx(ActionBlock, {
|
|
437
|
+
cancelButtonProps: {
|
|
438
|
+
"data-testid": "message-template-reset-button",
|
|
439
|
+
onClick: onClose
|
|
440
|
+
},
|
|
441
|
+
submitButtonProps: {
|
|
442
|
+
"data-testid": "message-template-submit-button"
|
|
443
|
+
}
|
|
444
|
+
})
|
|
445
|
+
})]
|
|
446
|
+
});
|
|
447
|
+
};
|
|
448
|
+
|
|
449
|
+
var AddEdit = function AddEdit(_ref) {
|
|
450
|
+
var onClose = _ref.onClose,
|
|
451
|
+
createUpdateTemplate = _ref.createUpdateTemplate,
|
|
452
|
+
manageTemplatePane = _ref.manageTemplatePane,
|
|
453
|
+
isTestMessageLoading = _ref.isTestMessageLoading,
|
|
454
|
+
handleSubmitTestTemplate = _ref.handleSubmitTestTemplate,
|
|
455
|
+
shouldIncludeTestTemplate = _ref.shouldIncludeTestTemplate,
|
|
456
|
+
addText = _ref.addText,
|
|
457
|
+
editText = _ref.editText,
|
|
458
|
+
templateVariables = _ref.templateVariables,
|
|
459
|
+
isTestingTemplateDisabled = _ref.isTestingTemplateDisabled,
|
|
460
|
+
customFields = _ref.customFields,
|
|
461
|
+
onMutationSuccess = _ref.onMutationSuccess;
|
|
462
|
+
var initialFocusField = useRef(null);
|
|
463
|
+
var isOpen = manageTemplatePane.isOpen,
|
|
464
|
+
isEdit = manageTemplatePane.isEdit,
|
|
465
|
+
template = manageTemplatePane.template;
|
|
466
|
+
var label = isEdit ? editText : addText;
|
|
467
|
+
return /*#__PURE__*/jsxs(Sheet, {
|
|
468
|
+
isOpen: isOpen,
|
|
469
|
+
onClose: onClose,
|
|
470
|
+
initialFocusRef: initialFocusField,
|
|
471
|
+
children: [/*#__PURE__*/jsx(Sheet.Header, {
|
|
472
|
+
children: /*#__PURE__*/jsx(Sheet.Title, {
|
|
473
|
+
children: label
|
|
474
|
+
})
|
|
475
|
+
}), /*#__PURE__*/jsx(Sheet.Body, {
|
|
476
|
+
children: /*#__PURE__*/jsx(Form, {
|
|
477
|
+
createUpdateTemplate: createUpdateTemplate,
|
|
478
|
+
customFields: customFields,
|
|
479
|
+
handleSubmitTestTemplate: handleSubmitTestTemplate,
|
|
480
|
+
isEdit: isEdit,
|
|
481
|
+
isTestMessageLoading: isTestMessageLoading,
|
|
482
|
+
isTestingTemplateDisabled: isTestingTemplateDisabled,
|
|
483
|
+
onClose: onClose,
|
|
484
|
+
onMutationSuccess: onMutationSuccess,
|
|
485
|
+
shouldIncludeTestTemplate: shouldIncludeTestTemplate,
|
|
486
|
+
template: template,
|
|
487
|
+
templateVariables: templateVariables,
|
|
488
|
+
setInitialFocusField: initialFocusField
|
|
489
|
+
})
|
|
490
|
+
})]
|
|
491
|
+
});
|
|
492
|
+
};
|
|
493
|
+
|
|
494
|
+
var useFilters = function useFilters() {
|
|
495
|
+
var _useState = useState(DEFAULT_PAGE_PROPERTIES),
|
|
496
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
497
|
+
pageProperties = _useState2[0],
|
|
498
|
+
setPageProperties = _useState2[1];
|
|
499
|
+
var _useQueryParams = useQueryParams(),
|
|
500
|
+
_useQueryParams$searc = _useQueryParams.searchTerm,
|
|
501
|
+
searchTerm = _useQueryParams$searc === void 0 ? "" : _useQueryParams$searc;
|
|
502
|
+
var filterColumns = buildTableColumnData().filter(prop("node"));
|
|
503
|
+
var searchKeywordProps = {
|
|
504
|
+
key: "search_term",
|
|
505
|
+
node: "name",
|
|
506
|
+
value: searchTerm,
|
|
507
|
+
setValue: noop
|
|
508
|
+
};
|
|
509
|
+
var _useState3 = useState(function () {
|
|
510
|
+
return buildFiltersFromURL([].concat(_toConsumableArray(filterColumns), [searchKeywordProps]));
|
|
511
|
+
}),
|
|
512
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
513
|
+
filters = _useState4[0],
|
|
514
|
+
setFilters = _useState4[1];
|
|
515
|
+
return {
|
|
516
|
+
filterColumns: filterColumns,
|
|
517
|
+
searchKeywordProps: searchKeywordProps,
|
|
518
|
+
searchTerm: searchTerm,
|
|
519
|
+
filters: filters,
|
|
520
|
+
setFilters: setFilters,
|
|
521
|
+
pageProperties: pageProperties,
|
|
522
|
+
setPageProperties: setPageProperties
|
|
523
|
+
};
|
|
524
|
+
};
|
|
525
|
+
|
|
526
|
+
var useTemplates = function useTemplates(_ref) {
|
|
527
|
+
var type = _ref.type,
|
|
528
|
+
ownerId = _ref.ownerId,
|
|
529
|
+
filters = _ref.filters,
|
|
530
|
+
pageProperties = _ref.pageProperties;
|
|
531
|
+
var pageIndex = pageProperties.index,
|
|
532
|
+
pageSize = pageProperties.size;
|
|
533
|
+
var templateParams = {
|
|
534
|
+
page: pageIndex,
|
|
535
|
+
pageSize: pageSize,
|
|
536
|
+
filters: filters,
|
|
537
|
+
templateType: MESSAGE_TEMPLATES[type].value,
|
|
538
|
+
ownerId: isEmpty(ownerId) ? undefined : ownerId
|
|
539
|
+
};
|
|
540
|
+
var _useFetchTemplates = useFetchTemplates(templateParams),
|
|
541
|
+
_useFetchTemplates$da = _useFetchTemplates.data,
|
|
542
|
+
templatesData = _useFetchTemplates$da === void 0 ? {} : _useFetchTemplates$da,
|
|
543
|
+
isLoadingTemplates = _useFetchTemplates.isLoading,
|
|
544
|
+
isFetching = _useFetchTemplates.isFetching;
|
|
545
|
+
var _useCreateTemplate = useCreateTemplate(ownerId),
|
|
546
|
+
create = _useCreateTemplate.mutate;
|
|
547
|
+
var _useUpdateTemplate = useUpdateTemplate(ownerId),
|
|
548
|
+
update = _useUpdateTemplate.mutate;
|
|
549
|
+
var createUpdateTemplate = function createUpdateTemplate(_ref2, options) {
|
|
550
|
+
var isEdit = _ref2.isEdit,
|
|
551
|
+
payload = _ref2.payload,
|
|
552
|
+
_ref2$id = _ref2.id,
|
|
553
|
+
id = _ref2$id === void 0 ? null : _ref2$id;
|
|
554
|
+
return isEdit ? update({
|
|
555
|
+
id: id,
|
|
556
|
+
payload: payload
|
|
557
|
+
}, options) : create(payload, options);
|
|
558
|
+
};
|
|
559
|
+
var isLoaderVisible = isLoadingTemplates || isFetching;
|
|
560
|
+
return {
|
|
561
|
+
templatesData: templatesData,
|
|
562
|
+
isLoading: isLoaderVisible,
|
|
563
|
+
createUpdateTemplate: createUpdateTemplate
|
|
564
|
+
};
|
|
565
|
+
};
|
|
566
|
+
|
|
567
|
+
function ownKeys$1(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; }
|
|
568
|
+
function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), true).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
569
|
+
var List = function List(_ref) {
|
|
570
|
+
var setManageTemplatePane = _ref.setManageTemplatePane,
|
|
571
|
+
templatesData = _ref.templatesData,
|
|
572
|
+
isLoading = _ref.isLoading,
|
|
573
|
+
manageTemplatePane = _ref.manageTemplatePane,
|
|
574
|
+
labelSingular = _ref.labelSingular,
|
|
575
|
+
setPageProperties = _ref.setPageProperties,
|
|
576
|
+
pageProperties = _ref.pageProperties,
|
|
577
|
+
label = _ref.label,
|
|
578
|
+
addText = _ref.addText,
|
|
579
|
+
isFilterApplied = _ref.isFilterApplied,
|
|
580
|
+
ownerId = _ref.ownerId,
|
|
581
|
+
type = _ref.type,
|
|
582
|
+
onMutationSuccess = _ref.onMutationSuccess,
|
|
583
|
+
helpDocUrl = _ref.helpDocUrl;
|
|
584
|
+
var _useTranslation = useTranslation(),
|
|
585
|
+
t = _useTranslation.t;
|
|
586
|
+
var _useDeleteTemplate = useDeleteTemplate(ownerId),
|
|
587
|
+
deleteTemplate = _useDeleteTemplate.mutate,
|
|
588
|
+
isDeleting = _useDeleteTemplate.isPending;
|
|
589
|
+
var templates = templatesData.templates,
|
|
590
|
+
totalCount = templatesData.totalCount;
|
|
591
|
+
var template = manageTemplatePane.template,
|
|
592
|
+
isDelete = manageTemplatePane.isDelete;
|
|
593
|
+
var pageIndex = pageProperties.index,
|
|
594
|
+
pageSize = pageProperties.size;
|
|
595
|
+
var isSms = type === "sms";
|
|
596
|
+
var typeLabelSingular = isSms ? labelSingular : labelSingular.toLowerCase();
|
|
597
|
+
var emptyStateLabel = isSms ? label : label.toLowerCase();
|
|
598
|
+
var noDataProps = _objectSpread$1(_objectSpread$1({}, !isFilterApplied && {
|
|
599
|
+
primaryButtonProps: {
|
|
600
|
+
label: addText,
|
|
601
|
+
onClick: function onClick() {
|
|
602
|
+
return setManageTemplatePane(assoc("isOpen", true));
|
|
603
|
+
}
|
|
604
|
+
},
|
|
605
|
+
helpText: /*#__PURE__*/jsx(Trans, {
|
|
606
|
+
i18nKey: "neetoMessageTemplate.template.linkToHelpArticle",
|
|
607
|
+
values: {
|
|
608
|
+
entity: label
|
|
609
|
+
},
|
|
610
|
+
components: {
|
|
611
|
+
Link: /*#__PURE__*/jsx(Button, {
|
|
612
|
+
href: helpDocUrl,
|
|
613
|
+
target: "_blank",
|
|
614
|
+
variant: "link"
|
|
615
|
+
})
|
|
616
|
+
}
|
|
617
|
+
})
|
|
618
|
+
}), {}, {
|
|
619
|
+
title: isFilterApplied ? t("neetoMessageTemplate.template.filtersEmptyState", {
|
|
620
|
+
type: emptyStateLabel
|
|
621
|
+
}) : t("neetoMessageTemplate.template.emptyState", {
|
|
622
|
+
type: emptyStateLabel
|
|
623
|
+
})
|
|
624
|
+
});
|
|
625
|
+
var handleDelete = function handleDelete() {
|
|
626
|
+
deleteTemplate(template.id, {
|
|
627
|
+
onSuccess: onMutationSuccess,
|
|
628
|
+
onSettled: function onSettled() {
|
|
629
|
+
setManageTemplatePane(assoc("isDelete", false));
|
|
630
|
+
}
|
|
631
|
+
});
|
|
632
|
+
};
|
|
633
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
634
|
+
children: [!isEmpty(templates) ? /*#__PURE__*/jsx(TableWrapper, {
|
|
635
|
+
hasPagination: totalCount > pageSize,
|
|
636
|
+
children: /*#__PURE__*/jsx(DataTable, {
|
|
637
|
+
pageSize: pageSize,
|
|
638
|
+
totalCount: totalCount,
|
|
639
|
+
currentPage: pageIndex,
|
|
640
|
+
data: templates,
|
|
641
|
+
enableURLPagination: false,
|
|
642
|
+
loading: isLoading,
|
|
643
|
+
columns: buildTableColumnData(setManageTemplatePane, ownerId, onMutationSuccess),
|
|
644
|
+
onPageChange: function onPageChange(index) {
|
|
645
|
+
return setPageProperties({
|
|
646
|
+
index: index,
|
|
647
|
+
size: pageSize
|
|
648
|
+
});
|
|
649
|
+
}
|
|
650
|
+
})
|
|
651
|
+
}) : /*#__PURE__*/jsx("div", {
|
|
652
|
+
className: "flex h-full w-full items-center justify-center",
|
|
653
|
+
children: /*#__PURE__*/jsx(Empty, _objectSpread$1({}, noDataProps))
|
|
654
|
+
}), /*#__PURE__*/jsx(Alert, {
|
|
655
|
+
isOpen: isDelete,
|
|
656
|
+
isSubmitting: isDeleting,
|
|
657
|
+
submitButtonLabel: t("neetoMessageTemplate.template.delete"),
|
|
658
|
+
message: /*#__PURE__*/jsx(Trans, {
|
|
659
|
+
i18nKey: "neetoMessageTemplate.template.templateDeleteConfirmation",
|
|
660
|
+
values: {
|
|
661
|
+
name: template.name
|
|
662
|
+
}
|
|
663
|
+
}),
|
|
664
|
+
title: t("neetoMessageTemplate.template.deleteTemplate", {
|
|
665
|
+
label: typeLabelSingular
|
|
666
|
+
}),
|
|
667
|
+
onClose: function onClose() {
|
|
668
|
+
return setManageTemplatePane(assoc("isDelete", false));
|
|
669
|
+
},
|
|
670
|
+
onSubmit: handleDelete
|
|
671
|
+
})]
|
|
672
|
+
});
|
|
673
|
+
};
|
|
674
|
+
|
|
675
|
+
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; }
|
|
676
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), true).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; }
|
|
677
|
+
var MessageTemplates = function MessageTemplates(_ref) {
|
|
678
|
+
var _helpPopoverProps$hel;
|
|
679
|
+
var _ref$breadcrumbs = _ref.breadcrumbs,
|
|
680
|
+
breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
|
|
681
|
+
_ref$type = _ref.type,
|
|
682
|
+
type = _ref$type === void 0 ? "" : _ref$type,
|
|
683
|
+
_ref$handleSubmitTest = _ref.handleSubmitTestTemplate,
|
|
684
|
+
handleSubmitTestTemplate = _ref$handleSubmitTest === void 0 ? noop : _ref$handleSubmitTest,
|
|
685
|
+
_ref$isTestMessageLoa = _ref.isTestMessageLoading,
|
|
686
|
+
isTestMessageLoading = _ref$isTestMessageLoa === void 0 ? false : _ref$isTestMessageLoa,
|
|
687
|
+
_ref$shouldIncludeTes = _ref.shouldIncludeTestTemplate,
|
|
688
|
+
shouldIncludeTestTemplate = _ref$shouldIncludeTes === void 0 ? true : _ref$shouldIncludeTes,
|
|
689
|
+
_ref$templateVariable = _ref.templateVariables,
|
|
690
|
+
templateVariables = _ref$templateVariable === void 0 ? {} : _ref$templateVariable,
|
|
691
|
+
_ref$ownerId = _ref.ownerId,
|
|
692
|
+
ownerId = _ref$ownerId === void 0 ? "" : _ref$ownerId,
|
|
693
|
+
_ref$isTestingTemplat = _ref.isTestingTemplateDisabled,
|
|
694
|
+
isTestingTemplateDisabled = _ref$isTestingTemplat === void 0 ? false : _ref$isTestingTemplat,
|
|
695
|
+
_ref$manageTemplatesP = _ref.manageTemplatesPaneCustomFields,
|
|
696
|
+
manageTemplatesPaneCustomFields = _ref$manageTemplatesP === void 0 ? null : _ref$manageTemplatesP,
|
|
697
|
+
_ref$onMutationSucces = _ref.onMutationSuccess,
|
|
698
|
+
onMutationSuccess = _ref$onMutationSucces === void 0 ? noop : _ref$onMutationSucces,
|
|
699
|
+
_ref$helpPopoverProps = _ref.helpPopoverProps,
|
|
700
|
+
helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps;
|
|
701
|
+
var _useState = useState(MESSAGE_TEMPLATE_INITIAL_STATE),
|
|
702
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
703
|
+
manageTemplatePane = _useState2[0],
|
|
704
|
+
setManageTemplatePane = _useState2[1];
|
|
705
|
+
var _useState3 = useState(false),
|
|
706
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
707
|
+
isFilterPaneOpen = _useState4[0],
|
|
708
|
+
setIsFilterPaneOpen = _useState4[1];
|
|
709
|
+
var _useTranslation = useTranslation(),
|
|
710
|
+
t = _useTranslation.t;
|
|
711
|
+
var _useFilters = useFilters(),
|
|
712
|
+
searchKeywordProps = _useFilters.searchKeywordProps,
|
|
713
|
+
filterColumns = _useFilters.filterColumns,
|
|
714
|
+
searchTerm = _useFilters.searchTerm,
|
|
715
|
+
filters = _useFilters.filters,
|
|
716
|
+
setFilters = _useFilters.setFilters,
|
|
717
|
+
pageProperties = _useFilters.pageProperties,
|
|
718
|
+
setPageProperties = _useFilters.setPageProperties;
|
|
719
|
+
var _useTemplates = useTemplates({
|
|
720
|
+
type: type,
|
|
721
|
+
ownerId: ownerId,
|
|
722
|
+
filters: filters,
|
|
723
|
+
pageProperties: pageProperties
|
|
724
|
+
}),
|
|
725
|
+
isLoading = _useTemplates.isLoading,
|
|
726
|
+
templatesData = _useTemplates.templatesData,
|
|
727
|
+
createUpdateTemplate = _useTemplates.createUpdateTemplate;
|
|
728
|
+
var setTemplateState = useTemplateStore(prop("setTemplateState"));
|
|
729
|
+
var _MESSAGE_TEMPLATES$ty = MESSAGE_TEMPLATES[type],
|
|
730
|
+
label = _MESSAGE_TEMPLATES$ty.label,
|
|
731
|
+
value = _MESSAGE_TEMPLATES$ty.value,
|
|
732
|
+
addText = _MESSAGE_TEMPLATES$ty.addText,
|
|
733
|
+
labelSingular = _MESSAGE_TEMPLATES$ty.labelSingular,
|
|
734
|
+
editText = _MESSAGE_TEMPLATES$ty.editText;
|
|
735
|
+
var isFilterApplied = isNotEmpty(filters) || isNotEmpty(searchTerm);
|
|
736
|
+
var handleActionClick = function handleActionClick() {
|
|
737
|
+
return setManageTemplatePane(_objectSpread(_objectSpread({}, MESSAGE_TEMPLATE_INITIAL_STATE), {}, {
|
|
738
|
+
isOpen: true
|
|
739
|
+
}));
|
|
740
|
+
};
|
|
741
|
+
var handleChange = function handleChange(filters) {
|
|
742
|
+
setFilters(filters);
|
|
743
|
+
setPageProperties(DEFAULT_PAGE_PROPERTIES);
|
|
744
|
+
};
|
|
745
|
+
var templatesCount = (templatesData === null || templatesData === void 0 ? void 0 : templatesData.totalCount) || 0;
|
|
746
|
+
useEffect(function () {
|
|
747
|
+
setTemplateState({
|
|
748
|
+
templateType: value
|
|
749
|
+
});
|
|
750
|
+
}, [value]);
|
|
751
|
+
var shouldShowTemplatesCount = !isLoading && (isFilterApplied || templatesCount > 0);
|
|
752
|
+
var helpDocUrl = (helpPopoverProps === null || helpPopoverProps === void 0 || (_helpPopoverProps$hel = helpPopoverProps.helpLinkProps) === null || _helpPopoverProps$hel === void 0 ? void 0 : _helpPopoverProps$hel.href) || "";
|
|
753
|
+
return /*#__PURE__*/jsxs(Container, {
|
|
754
|
+
children: [/*#__PURE__*/jsx(NeetoHeader, {
|
|
755
|
+
breadcrumbs: breadcrumbs,
|
|
756
|
+
size: "small",
|
|
757
|
+
title: label,
|
|
758
|
+
actionBlock: /*#__PURE__*/jsx(Button, {
|
|
759
|
+
"data-testid": "add-".concat(hyphenate(value), "-button"),
|
|
760
|
+
label: addText,
|
|
761
|
+
onClick: handleActionClick
|
|
762
|
+
}),
|
|
763
|
+
searchProps: shouldShowTemplatesCount && renderSearchProps(label, value),
|
|
764
|
+
titleHelpPopoverProps: helpPopoverProps && _objectSpread(_objectSpread({}, helpPopoverProps), {}, {
|
|
765
|
+
title: (helpPopoverProps === null || helpPopoverProps === void 0 ? void 0 : helpPopoverProps.title) || label
|
|
766
|
+
})
|
|
767
|
+
}), /*#__PURE__*/jsx(SubHeader, {
|
|
768
|
+
className: "mb-4",
|
|
769
|
+
leftActionBlock: shouldShowTemplatesCount && /*#__PURE__*/jsx(Typography, {
|
|
770
|
+
as: "h4",
|
|
771
|
+
children: t("neetoMessageTemplate.template.messageTemplatesWithCount", {
|
|
772
|
+
type: MESSAGE_TYPES[type],
|
|
773
|
+
count: templatesCount
|
|
774
|
+
})
|
|
775
|
+
}),
|
|
776
|
+
rightActionBlock: /*#__PURE__*/jsx(SubHeader.RightBlock, {
|
|
777
|
+
dataProps: {
|
|
778
|
+
totalCount: isFilterApplied ? null : templatesCount
|
|
779
|
+
},
|
|
780
|
+
filterProps: {
|
|
781
|
+
columns: filterColumns,
|
|
782
|
+
isOpen: isFilterPaneOpen,
|
|
783
|
+
keyword: searchKeywordProps,
|
|
784
|
+
setIsOpen: setIsFilterPaneOpen,
|
|
785
|
+
onChange: handleChange
|
|
786
|
+
}
|
|
787
|
+
})
|
|
788
|
+
}), /*#__PURE__*/jsx(FiltersBar, {
|
|
789
|
+
columns: filterColumns,
|
|
790
|
+
keyword: searchKeywordProps,
|
|
791
|
+
setIsPaneOpen: setIsFilterPaneOpen,
|
|
792
|
+
onChange: handleChange
|
|
793
|
+
}), /*#__PURE__*/jsx(List, {
|
|
794
|
+
addText: addText,
|
|
795
|
+
helpDocUrl: helpDocUrl,
|
|
796
|
+
isFilterApplied: isFilterApplied,
|
|
797
|
+
isLoading: isLoading,
|
|
798
|
+
label: label,
|
|
799
|
+
labelSingular: labelSingular,
|
|
800
|
+
manageTemplatePane: manageTemplatePane,
|
|
801
|
+
onMutationSuccess: onMutationSuccess,
|
|
802
|
+
ownerId: ownerId,
|
|
803
|
+
pageProperties: pageProperties,
|
|
804
|
+
setManageTemplatePane: setManageTemplatePane,
|
|
805
|
+
setPageProperties: setPageProperties,
|
|
806
|
+
templatesData: templatesData,
|
|
807
|
+
type: type
|
|
808
|
+
}), /*#__PURE__*/jsx(AddEdit, {
|
|
809
|
+
addText: addText,
|
|
810
|
+
createUpdateTemplate: createUpdateTemplate,
|
|
811
|
+
editText: editText,
|
|
812
|
+
handleSubmitTestTemplate: handleSubmitTestTemplate,
|
|
813
|
+
isTestMessageLoading: isTestMessageLoading,
|
|
814
|
+
isTestingTemplateDisabled: isTestingTemplateDisabled,
|
|
815
|
+
manageTemplatePane: manageTemplatePane,
|
|
816
|
+
onMutationSuccess: onMutationSuccess,
|
|
817
|
+
shouldIncludeTestTemplate: shouldIncludeTestTemplate,
|
|
818
|
+
templateVariables: templateVariables,
|
|
819
|
+
customFields: manageTemplatesPaneCustomFields,
|
|
820
|
+
onClose: function onClose() {
|
|
821
|
+
return setManageTemplatePane(assoc("isOpen", false));
|
|
822
|
+
}
|
|
823
|
+
})]
|
|
824
|
+
});
|
|
825
|
+
};
|
|
826
|
+
|
|
827
|
+
export { MessageTemplates as default };
|
|
828
|
+
//# sourceMappingURL=MessageTemplates.js.map
|