@bigbinary/neeto-message-templates-frontend 0.7.2 → 0.8.0-beta1
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 +6 -2
- package/app/javascript/src/translations/en.json +1 -0
- package/dist/index.cjs.js +101 -41
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.js +100 -41
- package/dist/index.js.map +1 -1
- package/package.json +9 -9
- 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
|
|
|
@@ -173,7 +174,9 @@ const App = () => {
|
|
|
173
174
|
type={type}
|
|
174
175
|
isTestingTemplateDisabled={isTestingTemplateDisabled}
|
|
175
176
|
manageTemplatesPaneCustomFields={manageTemplatesPaneCustomFields()}
|
|
176
|
-
onMutationSuccess={() => queryClient.invalidateQueries(
|
|
177
|
+
onMutationSuccess={() => queryClient.invalidateQueries({
|
|
178
|
+
queryKey: ["rules"],
|
|
179
|
+
})}
|
|
177
180
|
/>
|
|
178
181
|
);
|
|
179
182
|
};
|
|
@@ -270,6 +273,7 @@ filtering and search capabilities.
|
|
|
270
273
|
- `breadcrumbs`: An array of objects that specify breadcrumbs for navigation.
|
|
271
274
|
- `onMutationSuccess`: The callback function which is triggered on the success
|
|
272
275
|
of mutation functions(create, update & delete).
|
|
276
|
+
- `helpDocUrl`: Help article link.
|
|
273
277
|
|
|
274
278
|
##### Usage
|
|
275
279
|
|
|
@@ -287,7 +291,7 @@ const App = () => {
|
|
|
287
291
|
return (
|
|
288
292
|
<ApiTemplates
|
|
289
293
|
{...{ breadcrumbs, ownerId }}
|
|
290
|
-
onMutationSuccess={() => queryClient.invalidateQueries(["rules"])}
|
|
294
|
+
onMutationSuccess={() => queryClient.invalidateQueries({ queryKey: ["rules"] })}
|
|
291
295
|
/>
|
|
292
296
|
);
|
|
293
297
|
};
|
|
@@ -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');
|
|
@@ -15,8 +16,8 @@ var reactI18next = require('react-i18next');
|
|
|
15
16
|
var i18next = require('i18next');
|
|
16
17
|
var constants = require('@bigbinary/neeto-commons-frontend/constants');
|
|
17
18
|
var MoreDropdown = require('@bigbinary/neeto-molecules/MoreDropdown');
|
|
19
|
+
var reactQuery = require('@tanstack/react-query');
|
|
18
20
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
19
|
-
var reactQuery = require('react-query');
|
|
20
21
|
var axios = require('axios');
|
|
21
22
|
var require$$0 = require('util');
|
|
22
23
|
var zustand = require('zustand');
|
|
@@ -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);
|
|
@@ -2336,9 +2338,12 @@ var ownerIdValue = function ownerIdValue(ownerId) {
|
|
|
2336
2338
|
return ramda.isEmpty(ownerId) ? undefined : ownerId;
|
|
2337
2339
|
};
|
|
2338
2340
|
var useFetchTemplates = function useFetchTemplates(params, options) {
|
|
2339
|
-
return reactQuery.useQuery(
|
|
2340
|
-
|
|
2341
|
-
|
|
2341
|
+
return reactQuery.useQuery(_objectSpread$d({
|
|
2342
|
+
queryKey: [QUERY_KEYS.NEETO_MESSAGE_TEMPLATES, params],
|
|
2343
|
+
queryFn: function queryFn() {
|
|
2344
|
+
return messageTemplatesApi.fetchAll(params);
|
|
2345
|
+
}
|
|
2346
|
+
}, options));
|
|
2342
2347
|
};
|
|
2343
2348
|
var useCreateTemplate = function useCreateTemplate(ownerId, options) {
|
|
2344
2349
|
return reactUtils.useMutationWithInvalidation(function (messageTemplate) {
|
|
@@ -3339,12 +3344,13 @@ var List = function List(_ref) {
|
|
|
3339
3344
|
isFilterApplied = _ref.isFilterApplied,
|
|
3340
3345
|
ownerId = _ref.ownerId,
|
|
3341
3346
|
type = _ref.type,
|
|
3342
|
-
onMutationSuccess = _ref.onMutationSuccess
|
|
3347
|
+
onMutationSuccess = _ref.onMutationSuccess,
|
|
3348
|
+
helpDocUrl = _ref.helpDocUrl;
|
|
3343
3349
|
var _useTranslation = reactI18next.useTranslation(),
|
|
3344
3350
|
t = _useTranslation.t;
|
|
3345
3351
|
var _useDeleteTemplate = useDeleteTemplate(ownerId),
|
|
3346
3352
|
deleteTemplate = _useDeleteTemplate.mutate,
|
|
3347
|
-
isDeleting = _useDeleteTemplate.
|
|
3353
|
+
isDeleting = _useDeleteTemplate.isPending;
|
|
3348
3354
|
var templates = templatesData.templates,
|
|
3349
3355
|
totalCount = templatesData.totalCount;
|
|
3350
3356
|
var template = manageTemplatePane.template,
|
|
@@ -3354,6 +3360,34 @@ var List = function List(_ref) {
|
|
|
3354
3360
|
var isSms = type === "sms";
|
|
3355
3361
|
var typeLabelSingular = isSms ? labelSingular : labelSingular.toLowerCase();
|
|
3356
3362
|
var emptyStateLabel = isSms ? label : label.toLowerCase();
|
|
3363
|
+
var noDataProps = _objectSpread$7(_objectSpread$7({}, !isFilterApplied && {
|
|
3364
|
+
primaryButtonProps: {
|
|
3365
|
+
label: addText,
|
|
3366
|
+
onClick: function onClick() {
|
|
3367
|
+
return setManageTemplatePane(ramda.assoc("isOpen", true));
|
|
3368
|
+
}
|
|
3369
|
+
},
|
|
3370
|
+
helpText: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
|
|
3371
|
+
i18nKey: "neetoMessageTemplate.template.linkToHelpArticle",
|
|
3372
|
+
values: {
|
|
3373
|
+
entity: label
|
|
3374
|
+
},
|
|
3375
|
+
components: {
|
|
3376
|
+
Link: /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
3377
|
+
className: "underline",
|
|
3378
|
+
href: helpDocUrl,
|
|
3379
|
+
style: "link",
|
|
3380
|
+
target: "_blank"
|
|
3381
|
+
})
|
|
3382
|
+
}
|
|
3383
|
+
})
|
|
3384
|
+
}), {}, {
|
|
3385
|
+
title: isFilterApplied ? t("neetoMessageTemplate.template.filtersEmptyState", {
|
|
3386
|
+
type: emptyStateLabel
|
|
3387
|
+
}) : t("neetoMessageTemplate.template.emptyState", {
|
|
3388
|
+
type: emptyStateLabel
|
|
3389
|
+
})
|
|
3390
|
+
});
|
|
3357
3391
|
var handleDelete = function handleDelete() {
|
|
3358
3392
|
deleteTemplate(template.id, {
|
|
3359
3393
|
onSuccess: onMutationSuccess,
|
|
@@ -3385,20 +3419,7 @@ var List = function List(_ref) {
|
|
|
3385
3419
|
})
|
|
3386
3420
|
}) : /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
3387
3421
|
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
|
-
}))
|
|
3422
|
+
children: /*#__PURE__*/jsxRuntime.jsx(NoData__default["default"], _objectSpread$7({}, noDataProps))
|
|
3402
3423
|
}), /*#__PURE__*/jsxRuntime.jsx(Alert__default["default"], {
|
|
3403
3424
|
isOpen: isDelete,
|
|
3404
3425
|
isSubmitting: isDeleting,
|
|
@@ -3442,7 +3463,9 @@ var MessageTemplates = function MessageTemplates(_ref) {
|
|
|
3442
3463
|
_ref$manageTemplatesP = _ref.manageTemplatesPaneCustomFields,
|
|
3443
3464
|
manageTemplatesPaneCustomFields = _ref$manageTemplatesP === void 0 ? null : _ref$manageTemplatesP,
|
|
3444
3465
|
_ref$onMutationSucces = _ref.onMutationSuccess,
|
|
3445
|
-
onMutationSuccess = _ref$onMutationSucces === void 0 ? neetoCist.noop : _ref$onMutationSucces
|
|
3466
|
+
onMutationSuccess = _ref$onMutationSucces === void 0 ? neetoCist.noop : _ref$onMutationSucces,
|
|
3467
|
+
_ref$helpDocUrl = _ref.helpDocUrl,
|
|
3468
|
+
helpDocUrl = _ref$helpDocUrl === void 0 ? "" : _ref$helpDocUrl;
|
|
3446
3469
|
var _useState = react.useState(MESSAGE_TEMPLATE_INITIAL_STATE),
|
|
3447
3470
|
_useState2 = _slicedToArray(_useState, 2),
|
|
3448
3471
|
manageTemplatePane = _useState2[0],
|
|
@@ -3498,11 +3521,20 @@ var MessageTemplates = function MessageTemplates(_ref) {
|
|
|
3498
3521
|
breadcrumbs: breadcrumbs,
|
|
3499
3522
|
searchProps: renderSearchProps(label, value),
|
|
3500
3523
|
size: "small",
|
|
3501
|
-
title: label,
|
|
3502
3524
|
actionBlock: /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
3503
3525
|
"data-cy": "add-".concat(neetoCist.hyphenate(value), "-button"),
|
|
3504
3526
|
label: addText,
|
|
3505
3527
|
onClick: handleActionClick
|
|
3528
|
+
}),
|
|
3529
|
+
title: /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
3530
|
+
className: "flex",
|
|
3531
|
+
children: [label, /*#__PURE__*/jsxRuntime.jsx(HelpPopover__default["default"], {
|
|
3532
|
+
className: "ml-2 self-center",
|
|
3533
|
+
helpLinkProps: {
|
|
3534
|
+
href: helpDocUrl
|
|
3535
|
+
},
|
|
3536
|
+
title: label
|
|
3537
|
+
})]
|
|
3506
3538
|
})
|
|
3507
3539
|
}), /*#__PURE__*/jsxRuntime.jsx(SubHeader__default["default"], {
|
|
3508
3540
|
leftActionBlock: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
@@ -3531,6 +3563,7 @@ var MessageTemplates = function MessageTemplates(_ref) {
|
|
|
3531
3563
|
onChange: handleChange
|
|
3532
3564
|
}), /*#__PURE__*/jsxRuntime.jsx(List, {
|
|
3533
3565
|
addText: addText,
|
|
3566
|
+
helpDocUrl: helpDocUrl,
|
|
3534
3567
|
isFilterApplied: isFilterApplied,
|
|
3535
3568
|
isLoading: isLoading,
|
|
3536
3569
|
label: label,
|
|
@@ -4152,10 +4185,10 @@ var Form = function Form(_ref) {
|
|
|
4152
4185
|
t = _useTranslation.t;
|
|
4153
4186
|
var _useCreateTemplate = useCreateTemplate(ownerId),
|
|
4154
4187
|
createApiTemplate = _useCreateTemplate.mutate,
|
|
4155
|
-
isCreating = _useCreateTemplate.
|
|
4188
|
+
isCreating = _useCreateTemplate.isPending;
|
|
4156
4189
|
var _useUpdateTemplate = useUpdateTemplate(ownerId),
|
|
4157
4190
|
updateApiTemplate = _useUpdateTemplate.mutate,
|
|
4158
|
-
isUpdating = _useUpdateTemplate.
|
|
4191
|
+
isUpdating = _useUpdateTemplate.isPending;
|
|
4159
4192
|
var isEdit = neetoCist.isNotEmpty(selectedApiTemplate);
|
|
4160
4193
|
var handleSubmit = function handleSubmit(values, _ref2) {
|
|
4161
4194
|
var setSubmitting = _ref2.setSubmitting;
|
|
@@ -4228,6 +4261,8 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
4228
4261
|
var ownerId = _ref.ownerId,
|
|
4229
4262
|
_ref$breadcrumbs = _ref.breadcrumbs,
|
|
4230
4263
|
breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
|
|
4264
|
+
_ref$helpDocUrl = _ref.helpDocUrl,
|
|
4265
|
+
helpDocUrl = _ref$helpDocUrl === void 0 ? "" : _ref$helpDocUrl,
|
|
4231
4266
|
_ref$onMutationSucces = _ref.onMutationSuccess,
|
|
4232
4267
|
onMutationSuccess = _ref$onMutationSucces === void 0 ? neetoCist.noop : _ref$onMutationSucces;
|
|
4233
4268
|
var _useTranslation = reactI18next.useTranslation(),
|
|
@@ -4279,6 +4314,7 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
4279
4314
|
totalCount = _useFetchTemplates$da2.totalCount,
|
|
4280
4315
|
isLoading = _useFetchTemplates.isLoading,
|
|
4281
4316
|
isFetching = _useFetchTemplates.isFetching;
|
|
4317
|
+
var title = t("neetoMessageTemplate.template.apiTemplates");
|
|
4282
4318
|
var isFilterApplied = neetoCist.isNotEmpty(filters);
|
|
4283
4319
|
var handleFiltersChange = function handleFiltersChange(filters) {
|
|
4284
4320
|
setFilters(filters);
|
|
@@ -4286,7 +4322,7 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
4286
4322
|
};
|
|
4287
4323
|
var _useDeleteTemplate = useDeleteTemplate(ownerId),
|
|
4288
4324
|
deleteTemplate = _useDeleteTemplate.mutate,
|
|
4289
|
-
isDeleting = _useDeleteTemplate.
|
|
4325
|
+
isDeleting = _useDeleteTemplate.isPending;
|
|
4290
4326
|
var _useUpdateTemplate = useUpdateTemplate(ownerId),
|
|
4291
4327
|
updateTemplate = _useUpdateTemplate.mutate;
|
|
4292
4328
|
var handleOpenEditPane = function handleOpenEditPane(apiTemplate) {
|
|
@@ -4324,11 +4360,38 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
4324
4360
|
}
|
|
4325
4361
|
});
|
|
4326
4362
|
};
|
|
4363
|
+
var noDataProps = _objectSpread$1(_objectSpread$1({}, !isFilterApplied && {
|
|
4364
|
+
primaryButtonProps: {
|
|
4365
|
+
label: t("neetoMessageTemplate.api.addApiTemplate"),
|
|
4366
|
+
onClick: function onClick() {
|
|
4367
|
+
return setIsFormPaneOpen(true);
|
|
4368
|
+
}
|
|
4369
|
+
},
|
|
4370
|
+
helpText: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
|
|
4371
|
+
i18nKey: "neetoMessageTemplate.template.linkToHelpArticle",
|
|
4372
|
+
values: {
|
|
4373
|
+
entity: title
|
|
4374
|
+
},
|
|
4375
|
+
components: {
|
|
4376
|
+
Link: /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
4377
|
+
className: "underline",
|
|
4378
|
+
href: helpDocUrl,
|
|
4379
|
+
style: "link",
|
|
4380
|
+
target: "_blank"
|
|
4381
|
+
})
|
|
4382
|
+
}
|
|
4383
|
+
})
|
|
4384
|
+
}), {}, {
|
|
4385
|
+
title: isFilterApplied ? t("neetoMessageTemplate.template.filtersEmptyState", {
|
|
4386
|
+
type: title
|
|
4387
|
+
}) : t("neetoMessageTemplate.template.emptyState", {
|
|
4388
|
+
type: title
|
|
4389
|
+
})
|
|
4390
|
+
});
|
|
4327
4391
|
return /*#__PURE__*/jsxRuntime.jsxs(Container__default["default"], {
|
|
4328
4392
|
children: [/*#__PURE__*/jsxRuntime.jsx(NeetoHeader__default["default"], {
|
|
4329
4393
|
breadcrumbs: breadcrumbs,
|
|
4330
4394
|
size: "small",
|
|
4331
|
-
title: t("neetoMessageTemplate.template.apiTemplates"),
|
|
4332
4395
|
actionBlock: /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
|
|
4333
4396
|
label: t("neetoMessageTemplate.api.addApiTemplate"),
|
|
4334
4397
|
onClick: function onClick() {
|
|
@@ -4337,7 +4400,17 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
4337
4400
|
}),
|
|
4338
4401
|
searchProps: {
|
|
4339
4402
|
placeholder: t("neetoMessageTemplate.template.searchApiTemplates")
|
|
4340
|
-
}
|
|
4403
|
+
},
|
|
4404
|
+
title: /*#__PURE__*/jsxRuntime.jsxs("span", {
|
|
4405
|
+
className: "flex",
|
|
4406
|
+
children: [title, /*#__PURE__*/jsxRuntime.jsx(HelpPopover__default["default"], {
|
|
4407
|
+
title: title,
|
|
4408
|
+
className: "ml-2 self-center",
|
|
4409
|
+
helpLinkProps: {
|
|
4410
|
+
href: helpDocUrl
|
|
4411
|
+
}
|
|
4412
|
+
})]
|
|
4413
|
+
})
|
|
4341
4414
|
}), /*#__PURE__*/jsxRuntime.jsx(SubHeader__default["default"], {
|
|
4342
4415
|
leftActionBlock: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
|
|
4343
4416
|
component: "h4",
|
|
@@ -4389,20 +4462,7 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
4389
4462
|
})
|
|
4390
4463
|
}) : /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
4391
4464
|
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
|
-
}))
|
|
4465
|
+
children: /*#__PURE__*/jsxRuntime.jsx(NoData__default["default"], _objectSpread$1({}, noDataProps))
|
|
4406
4466
|
}), /*#__PURE__*/jsxRuntime.jsx(Pane__default["default"], {
|
|
4407
4467
|
isOpen: isFormPaneOpen,
|
|
4408
4468
|
onClose: handleCloseDeleteAlertAndFormPane,
|