@bigbinary/neeto-message-templates-frontend 0.1.0 → 0.2.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 +19 -2
- package/dist/index.cjs.js +73 -45
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +75 -47
- package/dist/index.js.map +1 -1
- package/package.json +3 -2
- package/types.d.ts +2 -0
package/README.md
CHANGED
|
@@ -21,10 +21,10 @@ the creation of SMS, Email and Whatsapp templates.
|
|
|
21
21
|
bundle install
|
|
22
22
|
```
|
|
23
23
|
|
|
24
|
-
3. Configure the
|
|
24
|
+
3. Configure the owner model in the host application.
|
|
25
25
|
|
|
26
26
|
```ruby
|
|
27
|
-
has_many :message_templates, class_name: "NeetoMessageTemplatesEngine::MessageTemplate", dependent: :destroy
|
|
27
|
+
has_many :message_templates, as: :owner, class_name: "NeetoMessageTemplatesEngine::MessageTemplate", dependent: :destroy
|
|
28
28
|
```
|
|
29
29
|
|
|
30
30
|
4. Add this line to your application's `config/routes.rb` file
|
|
@@ -55,6 +55,15 @@ the creation of SMS, Email and Whatsapp templates.
|
|
|
55
55
|
end
|
|
56
56
|
```
|
|
57
57
|
|
|
58
|
+
7. Create an initializer file in the host app under
|
|
59
|
+
`configs/initializers/neeto-message-templates.rb` & provide the name of owner
|
|
60
|
+
model for the message templates. The message_templates `belongs_to` this
|
|
61
|
+
`owner`.
|
|
62
|
+
|
|
63
|
+
```ruby
|
|
64
|
+
NeetoMessageTemplatesEngine.owner_class = "Organization"
|
|
65
|
+
```
|
|
66
|
+
|
|
58
67
|
# Frontend Package Installation
|
|
59
68
|
|
|
60
69
|
Install the latest `neetoMessageTemplates` package using the below command:
|
|
@@ -80,6 +89,10 @@ yarn add @bigbinary/neeto-message-templates-frontend
|
|
|
80
89
|
|
|
81
90
|
- `templateVariables`: (optional) To add dynamic variables to form body field.
|
|
82
91
|
|
|
92
|
+
- `ownerId`: (optional) To provide the `id` of the owner if it is not an
|
|
93
|
+
Organization model. If the owner is an Organization, this prop can be left
|
|
94
|
+
unspecified.
|
|
95
|
+
|
|
83
96
|
### Usage
|
|
84
97
|
|
|
85
98
|
```javascript
|
|
@@ -141,6 +154,10 @@ const App = () => {
|
|
|
141
154
|
|
|
142
155
|
- `templateVariables`: (optional) To add dynamic variables to form body field.
|
|
143
156
|
|
|
157
|
+
- `ownerId`: (optional) To provide the `id` of the owner if it is not an
|
|
158
|
+
Organization model. If the owner is an Organization, this prop can be left
|
|
159
|
+
unspecified.
|
|
160
|
+
|
|
144
161
|
### Usage
|
|
145
162
|
|
|
146
163
|
```js
|
package/dist/index.cjs.js
CHANGED
|
@@ -13,8 +13,8 @@ var ramda = require('ramda');
|
|
|
13
13
|
var reactQuery = require('react-query');
|
|
14
14
|
var devtools = require('react-query/devtools');
|
|
15
15
|
var neetoIcons = require('@bigbinary/neeto-icons');
|
|
16
|
-
var axios = require('axios');
|
|
17
16
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
17
|
+
var axios = require('axios');
|
|
18
18
|
var zustand = require('zustand');
|
|
19
19
|
var neetoEditor = require('@bigbinary/neeto-editor');
|
|
20
20
|
var formik$1 = require('@bigbinary/neetoui/formik');
|
|
@@ -5284,6 +5284,7 @@ var template = {
|
|
|
5284
5284
|
"delete": "Delete",
|
|
5285
5285
|
edit: "Edit",
|
|
5286
5286
|
saveChanges: "Save changes",
|
|
5287
|
+
send: "Send",
|
|
5287
5288
|
cancel: "Cancel",
|
|
5288
5289
|
emailAddress: "Email address",
|
|
5289
5290
|
phoneNumber: "Phone number",
|
|
@@ -5426,18 +5427,31 @@ var fetchMessageTemplates = function fetchMessageTemplates(params) {
|
|
|
5426
5427
|
params: params
|
|
5427
5428
|
});
|
|
5428
5429
|
};
|
|
5429
|
-
var createMessageTemplate = function createMessageTemplate(
|
|
5430
|
+
var createMessageTemplate = function createMessageTemplate(_ref) {
|
|
5431
|
+
var messageTemplate = _ref.messageTemplate,
|
|
5432
|
+
ownerId = _ref.ownerId;
|
|
5430
5433
|
return axios__default["default"].post(MESSAGE_TEMPLATE_BASE_URL, {
|
|
5431
|
-
messageTemplate:
|
|
5434
|
+
messageTemplate: messageTemplate,
|
|
5435
|
+
ownerId: ownerId
|
|
5432
5436
|
});
|
|
5433
5437
|
};
|
|
5434
|
-
var updateMessageTemplate = function updateMessageTemplate(
|
|
5438
|
+
var updateMessageTemplate = function updateMessageTemplate(_ref2) {
|
|
5439
|
+
var id = _ref2.id,
|
|
5440
|
+
messageTemplate = _ref2.messageTemplate,
|
|
5441
|
+
ownerId = _ref2.ownerId;
|
|
5435
5442
|
return axios__default["default"].patch("".concat(MESSAGE_TEMPLATE_BASE_URL, "/").concat(id), {
|
|
5436
|
-
messageTemplate:
|
|
5443
|
+
messageTemplate: messageTemplate,
|
|
5444
|
+
ownerId: ownerId
|
|
5437
5445
|
});
|
|
5438
5446
|
};
|
|
5439
|
-
var deleteMessageTemplate = function deleteMessageTemplate(
|
|
5440
|
-
|
|
5447
|
+
var deleteMessageTemplate = function deleteMessageTemplate(_ref3) {
|
|
5448
|
+
var id = _ref3.id,
|
|
5449
|
+
ownerId = _ref3.ownerId;
|
|
5450
|
+
return axios__default["default"]["delete"]("".concat(MESSAGE_TEMPLATE_BASE_URL, "/").concat(id), {
|
|
5451
|
+
data: {
|
|
5452
|
+
ownerId: ownerId
|
|
5453
|
+
}
|
|
5454
|
+
});
|
|
5441
5455
|
};
|
|
5442
5456
|
var messageTemplatesApi = {
|
|
5443
5457
|
fetchAll: fetchMessageTemplates,
|
|
@@ -5450,42 +5464,46 @@ var QUERY_KEYS = {
|
|
|
5450
5464
|
MESSAGE_TEMPLATE: "message-templates"
|
|
5451
5465
|
};
|
|
5452
5466
|
|
|
5467
|
+
var ownerIdValue = function ownerIdValue(ownerId) {
|
|
5468
|
+
return ramda.isEmpty(ownerId) ? undefined : ownerId;
|
|
5469
|
+
};
|
|
5453
5470
|
var useFetchTemplates = function useFetchTemplates(params) {
|
|
5454
5471
|
return reactQuery.useQuery([QUERY_KEYS.MESSAGE_TEMPLATE, params], function () {
|
|
5455
5472
|
return messageTemplatesApi.fetchAll(params);
|
|
5456
5473
|
});
|
|
5457
5474
|
};
|
|
5458
|
-
var useCreateTemplate = function useCreateTemplate(options) {
|
|
5459
|
-
|
|
5460
|
-
|
|
5461
|
-
|
|
5475
|
+
var useCreateTemplate = function useCreateTemplate(ownerId, options) {
|
|
5476
|
+
return reactUtils.useMutationWithInvalidation(function (messageTemplate) {
|
|
5477
|
+
return messageTemplatesApi.create({
|
|
5478
|
+
messageTemplate: messageTemplate,
|
|
5479
|
+
ownerId: ownerIdValue(ownerId)
|
|
5480
|
+
});
|
|
5462
5481
|
}, {
|
|
5463
|
-
|
|
5464
|
-
|
|
5465
|
-
options === null || options === void 0 ? void 0 : options.onSuccess();
|
|
5466
|
-
}
|
|
5482
|
+
keysToInvalidate: [QUERY_KEYS.MESSAGE_TEMPLATE],
|
|
5483
|
+
onSuccess: options === null || options === void 0 ? void 0 : options.onSuccess
|
|
5467
5484
|
});
|
|
5468
5485
|
};
|
|
5469
|
-
var useUpdateTemplate = function useUpdateTemplate() {
|
|
5470
|
-
|
|
5471
|
-
return reactQuery.useMutation(function (_ref) {
|
|
5486
|
+
var useUpdateTemplate = function useUpdateTemplate(ownerId) {
|
|
5487
|
+
return reactUtils.useMutationWithInvalidation(function (_ref) {
|
|
5472
5488
|
var id = _ref.id,
|
|
5473
5489
|
payload = _ref.payload;
|
|
5474
|
-
return messageTemplatesApi.update(
|
|
5490
|
+
return messageTemplatesApi.update({
|
|
5491
|
+
id: id,
|
|
5492
|
+
messageTemplate: payload,
|
|
5493
|
+
ownerId: ownerIdValue(ownerId)
|
|
5494
|
+
});
|
|
5475
5495
|
}, {
|
|
5476
|
-
|
|
5477
|
-
queryClient.invalidateQueries(QUERY_KEYS.MESSAGE_TEMPLATE);
|
|
5478
|
-
}
|
|
5496
|
+
keysToInvalidate: [QUERY_KEYS.MESSAGE_TEMPLATE]
|
|
5479
5497
|
});
|
|
5480
5498
|
};
|
|
5481
|
-
var useDeleteTemplate = function useDeleteTemplate() {
|
|
5482
|
-
|
|
5483
|
-
|
|
5484
|
-
|
|
5499
|
+
var useDeleteTemplate = function useDeleteTemplate(ownerId) {
|
|
5500
|
+
return reactUtils.useMutationWithInvalidation(function (id) {
|
|
5501
|
+
return messageTemplatesApi["delete"]({
|
|
5502
|
+
id: id,
|
|
5503
|
+
ownerId: ownerIdValue(ownerId)
|
|
5504
|
+
});
|
|
5485
5505
|
}, {
|
|
5486
|
-
|
|
5487
|
-
queryClient.invalidateQueries(QUERY_KEYS.MESSAGE_TEMPLATE);
|
|
5488
|
-
}
|
|
5506
|
+
keysToInvalidate: [QUERY_KEYS.MESSAGE_TEMPLATE]
|
|
5489
5507
|
});
|
|
5490
5508
|
};
|
|
5491
5509
|
|
|
@@ -5501,10 +5519,11 @@ function ownKeys$3(object, enumerableOnly) { var keys = Object.keys(object); if
|
|
|
5501
5519
|
function _objectSpread$3(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys$3(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys$3(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
5502
5520
|
var RowActions = function RowActions(_ref) {
|
|
5503
5521
|
var template = _ref.template,
|
|
5504
|
-
setManageTemplatePane = _ref.setManageTemplatePane
|
|
5522
|
+
setManageTemplatePane = _ref.setManageTemplatePane,
|
|
5523
|
+
ownerId = _ref.ownerId;
|
|
5505
5524
|
var _useTranslation = useTranslation(),
|
|
5506
5525
|
t = _useTranslation.t;
|
|
5507
|
-
var _useUpdateTemplate = useUpdateTemplate(),
|
|
5526
|
+
var _useUpdateTemplate = useUpdateTemplate(ownerId),
|
|
5508
5527
|
update = _useUpdateTemplate.mutate;
|
|
5509
5528
|
var Menu = neetoui.Dropdown.Menu,
|
|
5510
5529
|
MenuItem = neetoui.Dropdown.MenuItem;
|
|
@@ -5562,7 +5581,7 @@ var renderSearchProps = function renderSearchProps(label, setSearchTerm, searchT
|
|
|
5562
5581
|
value: searchTerm
|
|
5563
5582
|
};
|
|
5564
5583
|
};
|
|
5565
|
-
var buildTableColumnData = function buildTableColumnData(setManageTemplatePane) {
|
|
5584
|
+
var buildTableColumnData = function buildTableColumnData(setManageTemplatePane, ownerId) {
|
|
5566
5585
|
return [{
|
|
5567
5586
|
dataIndex: "name",
|
|
5568
5587
|
key: "name",
|
|
@@ -5576,6 +5595,7 @@ var buildTableColumnData = function buildTableColumnData(setManageTemplatePane)
|
|
|
5576
5595
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Typography, {
|
|
5577
5596
|
style: "body2"
|
|
5578
5597
|
}, name), /*#__PURE__*/React__default["default"].createElement(RowActions, {
|
|
5598
|
+
ownerId: ownerId,
|
|
5579
5599
|
setManageTemplatePane: setManageTemplatePane,
|
|
5580
5600
|
template: template
|
|
5581
5601
|
}));
|
|
@@ -6240,7 +6260,7 @@ var useFilters = function useFilters() {
|
|
|
6240
6260
|
};
|
|
6241
6261
|
};
|
|
6242
6262
|
|
|
6243
|
-
var useTemplates = function useTemplates(type) {
|
|
6263
|
+
var useTemplates = function useTemplates(type, ownerId) {
|
|
6244
6264
|
var _useState = React.useState(neetoFiltersFrontend.buildFiltersFromURL(buildTableColumnData().filter(ramda.prop("node")))),
|
|
6245
6265
|
_useState2 = _slicedToArray(_useState, 2),
|
|
6246
6266
|
filters = _useState2[0],
|
|
@@ -6255,16 +6275,17 @@ var useTemplates = function useTemplates(type) {
|
|
|
6255
6275
|
pageIndex: pageIndex,
|
|
6256
6276
|
pageSize: pageSize,
|
|
6257
6277
|
filters: JSON.stringify(filters),
|
|
6258
|
-
templateType: MESSAGE_TEMPLATES[type].value
|
|
6278
|
+
templateType: MESSAGE_TEMPLATES[type].value,
|
|
6279
|
+
ownerId: ramda.isEmpty(ownerId) ? undefined : ownerId
|
|
6259
6280
|
};
|
|
6260
6281
|
var _useFetchTemplates = useFetchTemplates(templateParams),
|
|
6261
6282
|
_useFetchTemplates$da = _useFetchTemplates.data,
|
|
6262
6283
|
templatesData = _useFetchTemplates$da === void 0 ? {} : _useFetchTemplates$da,
|
|
6263
6284
|
isLoadingTemplates = _useFetchTemplates.isLoading,
|
|
6264
6285
|
isFetching = _useFetchTemplates.isFetching;
|
|
6265
|
-
var _useCreateTemplate = useCreateTemplate(),
|
|
6286
|
+
var _useCreateTemplate = useCreateTemplate(ownerId),
|
|
6266
6287
|
create = _useCreateTemplate.mutate;
|
|
6267
|
-
var _useUpdateTemplate = useUpdateTemplate(),
|
|
6288
|
+
var _useUpdateTemplate = useUpdateTemplate(ownerId),
|
|
6268
6289
|
update = _useUpdateTemplate.mutate;
|
|
6269
6290
|
var createUpdateTemplate = function createUpdateTemplate(_ref, options) {
|
|
6270
6291
|
var isEdit = _ref.isEdit,
|
|
@@ -6298,10 +6319,11 @@ var List = function List(_ref) {
|
|
|
6298
6319
|
pageProperties = _ref.pageProperties,
|
|
6299
6320
|
label = _ref.label,
|
|
6300
6321
|
addText = _ref.addText,
|
|
6301
|
-
isFilterApplied = _ref.isFilterApplied
|
|
6322
|
+
isFilterApplied = _ref.isFilterApplied,
|
|
6323
|
+
ownerId = _ref.ownerId;
|
|
6302
6324
|
var _useTranslation = useTranslation(),
|
|
6303
6325
|
t = _useTranslation.t;
|
|
6304
|
-
var _useDeleteTemplate = useDeleteTemplate(),
|
|
6326
|
+
var _useDeleteTemplate = useDeleteTemplate(ownerId),
|
|
6305
6327
|
deleteTemplate = _useDeleteTemplate.mutate,
|
|
6306
6328
|
isDeleting = _useDeleteTemplate.isLoading;
|
|
6307
6329
|
var templates = templatesData.templates,
|
|
@@ -6322,7 +6344,7 @@ var List = function List(_ref) {
|
|
|
6322
6344
|
}, !ramda.isEmpty(templates) ? /*#__PURE__*/React__default["default"].createElement(TableWrapper__default["default"], {
|
|
6323
6345
|
hasPagination: totalCount > pageSize
|
|
6324
6346
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Table, {
|
|
6325
|
-
columnData: buildTableColumnData(setManageTemplatePane),
|
|
6347
|
+
columnData: buildTableColumnData(setManageTemplatePane, ownerId),
|
|
6326
6348
|
currentPageNumber: pageIndex,
|
|
6327
6349
|
defaultPageSize: pageSize,
|
|
6328
6350
|
loading: isLoading,
|
|
@@ -6384,7 +6406,9 @@ var MessageTemplates = function MessageTemplates(_ref) {
|
|
|
6384
6406
|
_ref$shouldIncludeTes = _ref.shouldIncludeTestTemplate,
|
|
6385
6407
|
shouldIncludeTestTemplate = _ref$shouldIncludeTes === void 0 ? true : _ref$shouldIncludeTes,
|
|
6386
6408
|
_ref$templateVariable = _ref.templateVariables,
|
|
6387
|
-
templateVariables = _ref$templateVariable === void 0 ? {} : _ref$templateVariable
|
|
6409
|
+
templateVariables = _ref$templateVariable === void 0 ? {} : _ref$templateVariable,
|
|
6410
|
+
_ref$ownerId = _ref.ownerId,
|
|
6411
|
+
ownerId = _ref$ownerId === void 0 ? "" : _ref$ownerId;
|
|
6388
6412
|
var _useState = React.useState(MESSAGE_TEMPLATE_INITIAL_STATE),
|
|
6389
6413
|
_useState2 = _slicedToArray(_useState, 2),
|
|
6390
6414
|
manageTemplatePane = _useState2[0],
|
|
@@ -6398,7 +6422,7 @@ var MessageTemplates = function MessageTemplates(_ref) {
|
|
|
6398
6422
|
filterColumns = _useFilters.filterColumns,
|
|
6399
6423
|
setSearchTerm = _useFilters.setSearchTerm,
|
|
6400
6424
|
searchTerm = _useFilters.searchTerm;
|
|
6401
|
-
var _useTemplates = useTemplates(type),
|
|
6425
|
+
var _useTemplates = useTemplates(type, ownerId),
|
|
6402
6426
|
isLoading = _useTemplates.isLoading,
|
|
6403
6427
|
templatesData = _useTemplates.templatesData,
|
|
6404
6428
|
createUpdateTemplate = _useTemplates.createUpdateTemplate,
|
|
@@ -6459,6 +6483,7 @@ var MessageTemplates = function MessageTemplates(_ref) {
|
|
|
6459
6483
|
label: label,
|
|
6460
6484
|
labelSingular: labelSingular,
|
|
6461
6485
|
manageTemplatePane: manageTemplatePane,
|
|
6486
|
+
ownerId: ownerId,
|
|
6462
6487
|
pageProperties: pageProperties,
|
|
6463
6488
|
setManageTemplatePane: setManageTemplatePane,
|
|
6464
6489
|
setPageProperties: setPageProperties,
|
|
@@ -6582,7 +6607,7 @@ var EmailAndSms = function EmailAndSms(_ref) {
|
|
|
6582
6607
|
className: "absolute bottom-0 left-0 flex gap-x-2"
|
|
6583
6608
|
}, /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
6584
6609
|
disabled: !dirty || isSubmitting,
|
|
6585
|
-
label: t("template.
|
|
6610
|
+
label: t("template.send"),
|
|
6586
6611
|
loading: isSubmitting,
|
|
6587
6612
|
type: "submit"
|
|
6588
6613
|
}), /*#__PURE__*/React__default["default"].createElement(neetoui.Button, {
|
|
@@ -6701,7 +6726,7 @@ var Whatsapp = function Whatsapp(_ref) {
|
|
|
6701
6726
|
className: "absolute bottom-0 left-0 flex gap-x-2"
|
|
6702
6727
|
}, /*#__PURE__*/React__default["default"].createElement(formik$1.Button, {
|
|
6703
6728
|
disabled: !dirty || isSubmitting,
|
|
6704
|
-
label: t("template.
|
|
6729
|
+
label: t("template.send"),
|
|
6705
6730
|
loading: isSubmitting,
|
|
6706
6731
|
type: "submit"
|
|
6707
6732
|
}), /*#__PURE__*/React__default["default"].createElement(formik$1.Button, {
|
|
@@ -6729,7 +6754,9 @@ var SendMessagePane = function SendMessagePane(_ref) {
|
|
|
6729
6754
|
_ref$customFieldsVali = _ref.customFieldsValidationSchema,
|
|
6730
6755
|
customFieldsValidationSchema = _ref$customFieldsVali === void 0 ? {} : _ref$customFieldsVali,
|
|
6731
6756
|
_ref$templateVariable = _ref.templateVariables,
|
|
6732
|
-
templateVariables = _ref$templateVariable === void 0 ? {} : _ref$templateVariable
|
|
6757
|
+
templateVariables = _ref$templateVariable === void 0 ? {} : _ref$templateVariable,
|
|
6758
|
+
_ref$ownerId = _ref.ownerId,
|
|
6759
|
+
ownerId = _ref$ownerId === void 0 ? "" : _ref$ownerId;
|
|
6733
6760
|
var _useTranslation = useTranslation(),
|
|
6734
6761
|
t = _useTranslation.t;
|
|
6735
6762
|
var initialFocusField = React.useRef();
|
|
@@ -6739,7 +6766,8 @@ var SendMessagePane = function SendMessagePane(_ref) {
|
|
|
6739
6766
|
var value = MESSAGE_TEMPLATES[type].value;
|
|
6740
6767
|
var templateParams = {
|
|
6741
6768
|
status: "active",
|
|
6742
|
-
templateType: value
|
|
6769
|
+
templateType: value,
|
|
6770
|
+
ownerId: ownerId
|
|
6743
6771
|
};
|
|
6744
6772
|
var _useFetchTemplates = useFetchTemplates(templateParams),
|
|
6745
6773
|
_useFetchTemplates$da = _useFetchTemplates.data,
|