@bigbinary/neeto-message-templates-frontend 0.7.2 → 0.7.4
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 +2 -0
- package/app/javascript/src/translations/en.json +1 -0
- package/dist/index.cjs.js +108 -36
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +107 -36
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
- package/types.d.ts +2 -0
package/README.md
CHANGED
|
@@ -128,6 +128,7 @@ along with filtering and search capabilities.
|
|
|
128
128
|
templates pane.
|
|
129
129
|
- `onMutationSuccess`: The callback function which is triggered on the success
|
|
130
130
|
of mutation functions(create, update & delete).
|
|
131
|
+
- `helpDocUrl`: Help article link.
|
|
131
132
|
|
|
132
133
|
##### Usage
|
|
133
134
|
|
|
@@ -270,6 +271,7 @@ filtering and search capabilities.
|
|
|
270
271
|
- `breadcrumbs`: An array of objects that specify breadcrumbs for navigation.
|
|
271
272
|
- `onMutationSuccess`: The callback function which is triggered on the success
|
|
272
273
|
of mutation functions(create, update & delete).
|
|
274
|
+
- `helpDocUrl`: Help article link.
|
|
273
275
|
|
|
274
276
|
##### Usage
|
|
275
277
|
|
|
@@ -24,6 +24,7 @@
|
|
|
24
24
|
"subject": "Subject",
|
|
25
25
|
"title": "Template",
|
|
26
26
|
"active": "Active",
|
|
27
|
+
"linkToHelpArticle": "Here is how you can use <Link>{{entity}}</Link>.",
|
|
27
28
|
"templateDeleteConfirmation": "You are deleting the template <strong>{{name}}</strong>. This can't be undone.",
|
|
28
29
|
"deleteTemplate": "Delete {{label, anyCase}}?",
|
|
29
30
|
"emailTemplates": "Email templates",
|
package/dist/index.cjs.js
CHANGED
|
@@ -7,6 +7,7 @@ var neetoCist = require('@bigbinary/neeto-cist');
|
|
|
7
7
|
var neetoFiltersFrontend = require('@bigbinary/neeto-filters-frontend');
|
|
8
8
|
var Container = require('@bigbinary/neeto-molecules/Container');
|
|
9
9
|
var NeetoHeader = require('@bigbinary/neeto-molecules/Header');
|
|
10
|
+
var HelpPopover = require('@bigbinary/neeto-molecules/HelpPopover');
|
|
10
11
|
var SubHeader = require('@bigbinary/neeto-molecules/SubHeader');
|
|
11
12
|
var Button = require('@bigbinary/neetoui/Button');
|
|
12
13
|
var Typography = require('@bigbinary/neetoui/Typography');
|
|
@@ -63,6 +64,7 @@ function _interopNamespace(e) {
|
|
|
63
64
|
|
|
64
65
|
var Container__default = /*#__PURE__*/_interopDefaultLegacy(Container);
|
|
65
66
|
var NeetoHeader__default = /*#__PURE__*/_interopDefaultLegacy(NeetoHeader);
|
|
67
|
+
var HelpPopover__default = /*#__PURE__*/_interopDefaultLegacy(HelpPopover);
|
|
66
68
|
var SubHeader__default = /*#__PURE__*/_interopDefaultLegacy(SubHeader);
|
|
67
69
|
var Button__default = /*#__PURE__*/_interopDefaultLegacy(Button);
|
|
68
70
|
var Typography__default = /*#__PURE__*/_interopDefaultLegacy(Typography);
|
|
@@ -3339,7 +3341,8 @@ var List = function List(_ref) {
|
|
|
3339
3341
|
isFilterApplied = _ref.isFilterApplied,
|
|
3340
3342
|
ownerId = _ref.ownerId,
|
|
3341
3343
|
type = _ref.type,
|
|
3342
|
-
onMutationSuccess = _ref.onMutationSuccess
|
|
3344
|
+
onMutationSuccess = _ref.onMutationSuccess,
|
|
3345
|
+
helpDocUrl = _ref.helpDocUrl;
|
|
3343
3346
|
var _useTranslation = reactI18next.useTranslation(),
|
|
3344
3347
|
t = _useTranslation.t;
|
|
3345
3348
|
var _useDeleteTemplate = useDeleteTemplate(ownerId),
|
|
@@ -3354,6 +3357,34 @@ var List = function List(_ref) {
|
|
|
3354
3357
|
var isSms = type === "sms";
|
|
3355
3358
|
var typeLabelSingular = isSms ? labelSingular : labelSingular.toLowerCase();
|
|
3356
3359
|
var emptyStateLabel = isSms ? label : label.toLowerCase();
|
|
3360
|
+
var noDataProps = _objectSpread$7(_objectSpread$7({}, !isFilterApplied && {
|
|
3361
|
+
primaryButtonProps: {
|
|
3362
|
+
label: addText,
|
|
3363
|
+
onClick: function onClick() {
|
|
3364
|
+
return setManageTemplatePane(ramda.assoc("isOpen", true));
|
|
3365
|
+
}
|
|
3366
|
+
},
|
|
3367
|
+
helpText: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
|
|
3368
|
+
i18nKey: "neetoMessageTemplate.template.linkToHelpArticle",
|
|
3369
|
+
values: {
|
|
3370
|
+
entity: label
|
|
3371
|
+
},
|
|
3372
|
+
components: {
|
|
3373
|
+
Link: /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
3374
|
+
className: "underline",
|
|
3375
|
+
href: helpDocUrl,
|
|
3376
|
+
style: "link",
|
|
3377
|
+
target: "_blank"
|
|
3378
|
+
})
|
|
3379
|
+
}
|
|
3380
|
+
})
|
|
3381
|
+
}), {}, {
|
|
3382
|
+
title: isFilterApplied ? t("neetoMessageTemplate.template.filtersEmptyState", {
|
|
3383
|
+
type: emptyStateLabel
|
|
3384
|
+
}) : t("neetoMessageTemplate.template.emptyState", {
|
|
3385
|
+
type: emptyStateLabel
|
|
3386
|
+
})
|
|
3387
|
+
});
|
|
3357
3388
|
var handleDelete = function handleDelete() {
|
|
3358
3389
|
deleteTemplate(template.id, {
|
|
3359
3390
|
onSuccess: onMutationSuccess,
|
|
@@ -3385,20 +3416,7 @@ var List = function List(_ref) {
|
|
|
3385
3416
|
})
|
|
3386
3417
|
}) : /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
3387
3418
|
className: "flex h-full w-full items-center justify-center",
|
|
3388
|
-
children: /*#__PURE__*/jsxRuntime.jsx(NoData__default["default"], _objectSpread$7(
|
|
3389
|
-
primaryButtonProps: {
|
|
3390
|
-
label: addText,
|
|
3391
|
-
onClick: function onClick() {
|
|
3392
|
-
return setManageTemplatePane(ramda.assoc("isOpen", true));
|
|
3393
|
-
}
|
|
3394
|
-
}
|
|
3395
|
-
}), {}, {
|
|
3396
|
-
title: isFilterApplied ? t("neetoMessageTemplate.template.filtersEmptyState", {
|
|
3397
|
-
type: emptyStateLabel
|
|
3398
|
-
}) : t("neetoMessageTemplate.template.emptyState", {
|
|
3399
|
-
type: emptyStateLabel
|
|
3400
|
-
})
|
|
3401
|
-
}))
|
|
3419
|
+
children: /*#__PURE__*/jsxRuntime.jsx(NoData__default["default"], _objectSpread$7({}, noDataProps))
|
|
3402
3420
|
}), /*#__PURE__*/jsxRuntime.jsx(Alert__default["default"], {
|
|
3403
3421
|
isOpen: isDelete,
|
|
3404
3422
|
isSubmitting: isDeleting,
|
|
@@ -3442,7 +3460,9 @@ var MessageTemplates = function MessageTemplates(_ref) {
|
|
|
3442
3460
|
_ref$manageTemplatesP = _ref.manageTemplatesPaneCustomFields,
|
|
3443
3461
|
manageTemplatesPaneCustomFields = _ref$manageTemplatesP === void 0 ? null : _ref$manageTemplatesP,
|
|
3444
3462
|
_ref$onMutationSucces = _ref.onMutationSuccess,
|
|
3445
|
-
onMutationSuccess = _ref$onMutationSucces === void 0 ? neetoCist.noop : _ref$onMutationSucces
|
|
3463
|
+
onMutationSuccess = _ref$onMutationSucces === void 0 ? neetoCist.noop : _ref$onMutationSucces,
|
|
3464
|
+
_ref$helpDocUrl = _ref.helpDocUrl,
|
|
3465
|
+
helpDocUrl = _ref$helpDocUrl === void 0 ? "" : _ref$helpDocUrl;
|
|
3446
3466
|
var _useState = react.useState(MESSAGE_TEMPLATE_INITIAL_STATE),
|
|
3447
3467
|
_useState2 = _slicedToArray(_useState, 2),
|
|
3448
3468
|
manageTemplatePane = _useState2[0],
|
|
@@ -3498,11 +3518,20 @@ var MessageTemplates = function MessageTemplates(_ref) {
|
|
|
3498
3518
|
breadcrumbs: breadcrumbs,
|
|
3499
3519
|
searchProps: renderSearchProps(label, value),
|
|
3500
3520
|
size: "small",
|
|
3501
|
-
title: label,
|
|
3502
3521
|
actionBlock: /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
3503
3522
|
"data-cy": "add-".concat(neetoCist.hyphenate(value), "-button"),
|
|
3504
3523
|
label: addText,
|
|
3505
3524
|
onClick: handleActionClick
|
|
3525
|
+
}),
|
|
3526
|
+
title: /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
3527
|
+
className: "flex",
|
|
3528
|
+
children: [label, /*#__PURE__*/jsxRuntime.jsx(HelpPopover__default["default"], {
|
|
3529
|
+
className: "ml-2 self-center",
|
|
3530
|
+
helpLinkProps: {
|
|
3531
|
+
href: helpDocUrl
|
|
3532
|
+
},
|
|
3533
|
+
title: label
|
|
3534
|
+
})]
|
|
3506
3535
|
})
|
|
3507
3536
|
}), /*#__PURE__*/jsxRuntime.jsx(SubHeader__default["default"], {
|
|
3508
3537
|
leftActionBlock: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
@@ -3531,6 +3560,7 @@ var MessageTemplates = function MessageTemplates(_ref) {
|
|
|
3531
3560
|
onChange: handleChange
|
|
3532
3561
|
}), /*#__PURE__*/jsxRuntime.jsx(List, {
|
|
3533
3562
|
addText: addText,
|
|
3563
|
+
helpDocUrl: helpDocUrl,
|
|
3534
3564
|
isFilterApplied: isFilterApplied,
|
|
3535
3565
|
isLoading: isLoading,
|
|
3536
3566
|
label: label,
|
|
@@ -4031,13 +4061,16 @@ var KeyValuePairs = reactUtils.withT(function (_ref) {
|
|
|
4031
4061
|
className: "flex h-8 space-x-3",
|
|
4032
4062
|
children: [/*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
|
|
4033
4063
|
className: "w-2/5",
|
|
4064
|
+
"data-cy": "key-input-".concat(index),
|
|
4034
4065
|
name: "".concat(name, ".").concat(index, ".key"),
|
|
4035
4066
|
placeholder: t("neetoMessageTemplate.api.key")
|
|
4036
4067
|
}), /*#__PURE__*/jsxRuntime.jsx(Input__default["default"], {
|
|
4037
4068
|
className: "w-3/5",
|
|
4069
|
+
"data-cy": "value-input-".concat(index),
|
|
4038
4070
|
name: "".concat(name, ".").concat(index, ".value"),
|
|
4039
4071
|
placeholder: t("neetoMessageTemplate.api.value"),
|
|
4040
4072
|
suffix: showDeleteButton && /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
4073
|
+
"data-cy": "delete-key-value-pair-".concat(index),
|
|
4041
4074
|
icon: neetoIcons.Delete,
|
|
4042
4075
|
size: "small",
|
|
4043
4076
|
style: "text",
|
|
@@ -4053,6 +4086,7 @@ var KeyValuePairs = reactUtils.withT(function (_ref) {
|
|
|
4053
4086
|
}, index);
|
|
4054
4087
|
}), /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
4055
4088
|
className: "w-full justify-center",
|
|
4089
|
+
"data-cy": "add-key-value-pair-button",
|
|
4056
4090
|
label: t("neetoMessageTemplate.api.addKeyValuePair"),
|
|
4057
4091
|
style: "secondary",
|
|
4058
4092
|
onClick: function onClick() {
|
|
@@ -4093,30 +4127,37 @@ var buildTableColumnData = function buildTableColumnData(_ref) {
|
|
|
4093
4127
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
4094
4128
|
className: "flex items-center justify-between gap-x-3",
|
|
4095
4129
|
children: [/*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
4130
|
+
"data-cy": "api-template-name-link",
|
|
4096
4131
|
label: name,
|
|
4097
4132
|
style: "link",
|
|
4098
4133
|
onClick: function onClick() {
|
|
4099
4134
|
return handleOpenEditPane(apiTemplate);
|
|
4100
4135
|
}
|
|
4101
4136
|
}), /*#__PURE__*/jsxRuntime.jsx(MoreDropdown__default["default"], {
|
|
4137
|
+
dropdownButtonProps: {
|
|
4138
|
+
"data-cy": "api-template-dropdown"
|
|
4139
|
+
},
|
|
4102
4140
|
dropdownProps: {
|
|
4103
4141
|
strategy: "fixed"
|
|
4104
4142
|
},
|
|
4105
4143
|
menuItems: [{
|
|
4106
4144
|
key: "edit",
|
|
4107
4145
|
label: i18next.t("neetoMessageTemplate.template.edit"),
|
|
4146
|
+
"data-cy": "api-template-button-edit-button",
|
|
4108
4147
|
onClick: function onClick() {
|
|
4109
4148
|
return handleOpenEditPane(apiTemplate);
|
|
4110
4149
|
}
|
|
4111
4150
|
}, {
|
|
4112
4151
|
key: "status",
|
|
4113
4152
|
label: ramda.equals(apiTemplate.status, TEMPLATE_STATUS.ACTIVE) ? i18next.t("neetoMessageTemplate.template.markAsInactive") : i18next.t("neetoMessageTemplate.template.markAsActive"),
|
|
4153
|
+
"data-cy": "api-template-button-status-button",
|
|
4114
4154
|
onClick: function onClick() {
|
|
4115
4155
|
return handleMarkAsActiveOrInactive(apiTemplate);
|
|
4116
4156
|
}
|
|
4117
4157
|
}, {
|
|
4118
4158
|
key: "delete",
|
|
4119
4159
|
label: i18next.t("neetoMessageTemplate.template.delete"),
|
|
4160
|
+
"data-cy": "api-template-button-delete-button",
|
|
4120
4161
|
onClick: function onClick() {
|
|
4121
4162
|
return handleOpenDeleteAlert(apiTemplate);
|
|
4122
4163
|
}
|
|
@@ -4228,6 +4269,8 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
4228
4269
|
var ownerId = _ref.ownerId,
|
|
4229
4270
|
_ref$breadcrumbs = _ref.breadcrumbs,
|
|
4230
4271
|
breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
|
|
4272
|
+
_ref$helpDocUrl = _ref.helpDocUrl,
|
|
4273
|
+
helpDocUrl = _ref$helpDocUrl === void 0 ? "" : _ref$helpDocUrl,
|
|
4231
4274
|
_ref$onMutationSucces = _ref.onMutationSuccess,
|
|
4232
4275
|
onMutationSuccess = _ref$onMutationSucces === void 0 ? neetoCist.noop : _ref$onMutationSucces;
|
|
4233
4276
|
var _useTranslation = reactI18next.useTranslation(),
|
|
@@ -4279,6 +4322,7 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
4279
4322
|
totalCount = _useFetchTemplates$da2.totalCount,
|
|
4280
4323
|
isLoading = _useFetchTemplates.isLoading,
|
|
4281
4324
|
isFetching = _useFetchTemplates.isFetching;
|
|
4325
|
+
var title = t("neetoMessageTemplate.template.apiTemplates");
|
|
4282
4326
|
var isFilterApplied = neetoCist.isNotEmpty(filters);
|
|
4283
4327
|
var handleFiltersChange = function handleFiltersChange(filters) {
|
|
4284
4328
|
setFilters(filters);
|
|
@@ -4324,20 +4368,59 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
4324
4368
|
}
|
|
4325
4369
|
});
|
|
4326
4370
|
};
|
|
4371
|
+
var noDataProps = _objectSpread$1(_objectSpread$1({}, !isFilterApplied && {
|
|
4372
|
+
primaryButtonProps: {
|
|
4373
|
+
label: t("neetoMessageTemplate.api.addApiTemplate"),
|
|
4374
|
+
onClick: function onClick() {
|
|
4375
|
+
return setIsFormPaneOpen(true);
|
|
4376
|
+
}
|
|
4377
|
+
},
|
|
4378
|
+
helpText: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
|
|
4379
|
+
i18nKey: "neetoMessageTemplate.template.linkToHelpArticle",
|
|
4380
|
+
values: {
|
|
4381
|
+
entity: title
|
|
4382
|
+
},
|
|
4383
|
+
components: {
|
|
4384
|
+
Link: /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
4385
|
+
className: "underline",
|
|
4386
|
+
href: helpDocUrl,
|
|
4387
|
+
style: "link",
|
|
4388
|
+
target: "_blank"
|
|
4389
|
+
})
|
|
4390
|
+
}
|
|
4391
|
+
})
|
|
4392
|
+
}), {}, {
|
|
4393
|
+
title: isFilterApplied ? t("neetoMessageTemplate.template.filtersEmptyState", {
|
|
4394
|
+
type: title
|
|
4395
|
+
}) : t("neetoMessageTemplate.template.emptyState", {
|
|
4396
|
+
type: title
|
|
4397
|
+
})
|
|
4398
|
+
});
|
|
4327
4399
|
return /*#__PURE__*/jsxRuntime.jsxs(Container__default["default"], {
|
|
4328
4400
|
children: [/*#__PURE__*/jsxRuntime.jsx(NeetoHeader__default["default"], {
|
|
4329
4401
|
breadcrumbs: breadcrumbs,
|
|
4330
4402
|
size: "small",
|
|
4331
|
-
title: t("neetoMessageTemplate.template.apiTemplates"),
|
|
4332
4403
|
actionBlock: /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
4404
|
+
"data-cy": "add-api-templates-button",
|
|
4333
4405
|
label: t("neetoMessageTemplate.api.addApiTemplate"),
|
|
4334
4406
|
onClick: function onClick() {
|
|
4335
4407
|
return setIsFormPaneOpen(true);
|
|
4336
4408
|
}
|
|
4337
4409
|
}),
|
|
4338
4410
|
searchProps: {
|
|
4339
|
-
placeholder: t("neetoMessageTemplate.template.searchApiTemplates")
|
|
4340
|
-
|
|
4411
|
+
placeholder: t("neetoMessageTemplate.template.searchApiTemplates"),
|
|
4412
|
+
"data-cy": "api-templates-search-input"
|
|
4413
|
+
},
|
|
4414
|
+
title: /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
4415
|
+
className: "flex",
|
|
4416
|
+
children: [title, /*#__PURE__*/jsxRuntime.jsx(HelpPopover__default["default"], {
|
|
4417
|
+
title: title,
|
|
4418
|
+
className: "ml-2 self-center",
|
|
4419
|
+
helpLinkProps: {
|
|
4420
|
+
href: helpDocUrl
|
|
4421
|
+
}
|
|
4422
|
+
})]
|
|
4423
|
+
})
|
|
4341
4424
|
}), /*#__PURE__*/jsxRuntime.jsx(SubHeader__default["default"], {
|
|
4342
4425
|
leftActionBlock: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
4343
4426
|
component: "h4",
|
|
@@ -4389,20 +4472,7 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
4389
4472
|
})
|
|
4390
4473
|
}) : /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
4391
4474
|
className: "flex h-full w-full items-center justify-center",
|
|
4392
|
-
children: /*#__PURE__*/jsxRuntime.jsx(NoData__default["default"], _objectSpread$1(
|
|
4393
|
-
primaryButtonProps: {
|
|
4394
|
-
label: t("neetoMessageTemplate.api.addApiTemplate"),
|
|
4395
|
-
onClick: function onClick() {
|
|
4396
|
-
return setIsFormPaneOpen(true);
|
|
4397
|
-
}
|
|
4398
|
-
}
|
|
4399
|
-
}), {}, {
|
|
4400
|
-
title: isFilterApplied ? t("neetoMessageTemplate.template.filtersEmptyState", {
|
|
4401
|
-
type: t("neetoMessageTemplate.template.apiTemplates")
|
|
4402
|
-
}) : t("neetoMessageTemplate.template.emptyState", {
|
|
4403
|
-
type: t("neetoMessageTemplate.template.apiTemplates")
|
|
4404
|
-
})
|
|
4405
|
-
}))
|
|
4475
|
+
children: /*#__PURE__*/jsxRuntime.jsx(NoData__default["default"], _objectSpread$1({}, noDataProps))
|
|
4406
4476
|
}), /*#__PURE__*/jsxRuntime.jsx(Pane__default["default"], {
|
|
4407
4477
|
isOpen: isFormPaneOpen,
|
|
4408
4478
|
onClose: handleCloseDeleteAlertAndFormPane,
|
|
@@ -4538,10 +4608,12 @@ var SendToApiForm = function SendToApiForm(_ref) {
|
|
|
4538
4608
|
children: /*#__PURE__*/jsxRuntime.jsx(ActionBlock__default["default"], {
|
|
4539
4609
|
isSubmitting: isSubmitting,
|
|
4540
4610
|
cancelButtonProps: {
|
|
4541
|
-
onClick: onClose
|
|
4611
|
+
onClick: onClose,
|
|
4612
|
+
"data-cy": "api-template-cancel-button"
|
|
4542
4613
|
},
|
|
4543
4614
|
submitButtonProps: {
|
|
4544
|
-
label: t("neetoMessageTemplate.template.send")
|
|
4615
|
+
label: t("neetoMessageTemplate.template.send"),
|
|
4616
|
+
"data-cy": "api-template-send-button"
|
|
4545
4617
|
}
|
|
4546
4618
|
})
|
|
4547
4619
|
})]
|