@bigbinary/neeto-message-templates-frontend 0.7.2 → 0.7.3

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 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(_objectSpread$7({}, !isFilterApplied && {
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,
@@ -4228,6 +4258,8 @@ var ApiTemplates = function ApiTemplates(_ref) {
4228
4258
  var ownerId = _ref.ownerId,
4229
4259
  _ref$breadcrumbs = _ref.breadcrumbs,
4230
4260
  breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
4261
+ _ref$helpDocUrl = _ref.helpDocUrl,
4262
+ helpDocUrl = _ref$helpDocUrl === void 0 ? "" : _ref$helpDocUrl,
4231
4263
  _ref$onMutationSucces = _ref.onMutationSuccess,
4232
4264
  onMutationSuccess = _ref$onMutationSucces === void 0 ? neetoCist.noop : _ref$onMutationSucces;
4233
4265
  var _useTranslation = reactI18next.useTranslation(),
@@ -4279,6 +4311,7 @@ var ApiTemplates = function ApiTemplates(_ref) {
4279
4311
  totalCount = _useFetchTemplates$da2.totalCount,
4280
4312
  isLoading = _useFetchTemplates.isLoading,
4281
4313
  isFetching = _useFetchTemplates.isFetching;
4314
+ var title = t("neetoMessageTemplate.template.apiTemplates");
4282
4315
  var isFilterApplied = neetoCist.isNotEmpty(filters);
4283
4316
  var handleFiltersChange = function handleFiltersChange(filters) {
4284
4317
  setFilters(filters);
@@ -4324,11 +4357,38 @@ var ApiTemplates = function ApiTemplates(_ref) {
4324
4357
  }
4325
4358
  });
4326
4359
  };
4360
+ var noDataProps = _objectSpread$1(_objectSpread$1({}, !isFilterApplied && {
4361
+ primaryButtonProps: {
4362
+ label: t("neetoMessageTemplate.api.addApiTemplate"),
4363
+ onClick: function onClick() {
4364
+ return setIsFormPaneOpen(true);
4365
+ }
4366
+ },
4367
+ helpText: /*#__PURE__*/jsxRuntime.jsx(reactI18next.Trans, {
4368
+ i18nKey: "neetoMessageTemplate.template.linkToHelpArticle",
4369
+ values: {
4370
+ entity: title
4371
+ },
4372
+ components: {
4373
+ Link: /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
4374
+ className: "underline",
4375
+ href: helpDocUrl,
4376
+ style: "link",
4377
+ target: "_blank"
4378
+ })
4379
+ }
4380
+ })
4381
+ }), {}, {
4382
+ title: isFilterApplied ? t("neetoMessageTemplate.template.filtersEmptyState", {
4383
+ type: title
4384
+ }) : t("neetoMessageTemplate.template.emptyState", {
4385
+ type: title
4386
+ })
4387
+ });
4327
4388
  return /*#__PURE__*/jsxRuntime.jsxs(Container__default["default"], {
4328
4389
  children: [/*#__PURE__*/jsxRuntime.jsx(NeetoHeader__default["default"], {
4329
4390
  breadcrumbs: breadcrumbs,
4330
4391
  size: "small",
4331
- title: t("neetoMessageTemplate.template.apiTemplates"),
4332
4392
  actionBlock: /*#__PURE__*/jsxRuntime.jsx(Button__default["default"], {
4333
4393
  label: t("neetoMessageTemplate.api.addApiTemplate"),
4334
4394
  onClick: function onClick() {
@@ -4337,7 +4397,17 @@ var ApiTemplates = function ApiTemplates(_ref) {
4337
4397
  }),
4338
4398
  searchProps: {
4339
4399
  placeholder: t("neetoMessageTemplate.template.searchApiTemplates")
4340
- }
4400
+ },
4401
+ title: /*#__PURE__*/jsxRuntime.jsxs("span", {
4402
+ className: "flex",
4403
+ children: [title, /*#__PURE__*/jsxRuntime.jsx(HelpPopover__default["default"], {
4404
+ title: title,
4405
+ className: "ml-2 self-center",
4406
+ helpLinkProps: {
4407
+ href: helpDocUrl
4408
+ }
4409
+ })]
4410
+ })
4341
4411
  }), /*#__PURE__*/jsxRuntime.jsx(SubHeader__default["default"], {
4342
4412
  leftActionBlock: /*#__PURE__*/jsxRuntime.jsx(Typography__default["default"], {
4343
4413
  component: "h4",
@@ -4389,20 +4459,7 @@ var ApiTemplates = function ApiTemplates(_ref) {
4389
4459
  })
4390
4460
  }) : /*#__PURE__*/jsxRuntime.jsx("div", {
4391
4461
  className: "flex h-full w-full items-center justify-center",
4392
- children: /*#__PURE__*/jsxRuntime.jsx(NoData__default["default"], _objectSpread$1(_objectSpread$1({}, !isFilterApplied && {
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
- }))
4462
+ children: /*#__PURE__*/jsxRuntime.jsx(NoData__default["default"], _objectSpread$1({}, noDataProps))
4406
4463
  }), /*#__PURE__*/jsxRuntime.jsx(Pane__default["default"], {
4407
4464
  isOpen: isFormPaneOpen,
4408
4465
  onClose: handleCloseDeleteAlertAndFormPane,