@bigbinary/neeto-message-templates-frontend 1.3.10 → 1.4.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 +69 -17
- package/app/javascript/src/translations/en.json +18 -6
- package/dist/ApiTemplates.js +52 -19
- package/dist/ApiTemplates.js.map +1 -1
- package/dist/JsonEditor-ChlZYDDV.js +404 -0
- package/dist/JsonEditor-ChlZYDDV.js.map +1 -0
- package/dist/JsonEditor-Cz_76w4s.js +436 -0
- package/dist/JsonEditor-Cz_76w4s.js.map +1 -0
- package/dist/MessageTemplates.js +4 -1
- package/dist/MessageTemplates.js.map +1 -1
- package/dist/SendMessagePane.js +1 -4
- package/dist/SendMessagePane.js.map +1 -1
- package/dist/SendToApiPane.js +65 -60
- package/dist/SendToApiPane.js.map +1 -1
- package/dist/cjs/ApiTemplates.js +61 -28
- package/dist/cjs/ApiTemplates.js.map +1 -1
- package/dist/cjs/MessageTemplates.js +4 -1
- package/dist/cjs/MessageTemplates.js.map +1 -1
- package/dist/cjs/SendMessagePane.js +1 -4
- package/dist/cjs/SendMessagePane.js.map +1 -1
- package/dist/cjs/SendToApiPane.js +68 -63
- package/dist/cjs/SendToApiPane.js.map +1 -1
- package/dist/cjs/index.js +7 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/index.js +7 -5
- package/dist/index.js.map +1 -1
- package/dist/inject-css-DmrvuTKK.js +4 -0
- package/dist/inject-css-DmrvuTKK.js.map +1 -0
- package/dist/inject-css-vQvjPR2x.js +6 -0
- package/dist/inject-css-vQvjPR2x.js.map +1 -0
- package/dist/utils-3fvk3PIJ.js +54 -0
- package/dist/utils-3fvk3PIJ.js.map +1 -0
- package/dist/utils-o_45ksFf.js +51 -0
- package/dist/utils-o_45ksFf.js.map +1 -0
- package/package.json +21 -17
- package/types.d.ts +30 -3
- package/dist/utils-CdkVjz8p.js +0 -80
- package/dist/utils-CdkVjz8p.js.map +0 -1
- package/dist/utils-D7y24q1q.js +0 -186
- package/dist/utils-D7y24q1q.js.map +0 -1
- package/dist/utils-DCNzEjAw.js +0 -83
- package/dist/utils-DCNzEjAw.js.map +0 -1
- package/dist/utils-oljkG5EG.js +0 -156
- package/dist/utils-oljkG5EG.js.map +0 -1
package/README.md
CHANGED
|
@@ -168,9 +168,11 @@ const App = () => {
|
|
|
168
168
|
type={type}
|
|
169
169
|
isTestingTemplateDisabled={isTestingTemplateDisabled}
|
|
170
170
|
manageTemplatesPaneCustomFields={manageTemplatesPaneCustomFields()}
|
|
171
|
-
onMutationSuccess={() =>
|
|
172
|
-
|
|
173
|
-
|
|
171
|
+
onMutationSuccess={() =>
|
|
172
|
+
queryClient.invalidateQueries({
|
|
173
|
+
queryKey: ["rules"],
|
|
174
|
+
})
|
|
175
|
+
}
|
|
174
176
|
/>
|
|
175
177
|
);
|
|
176
178
|
};
|
|
@@ -200,7 +202,8 @@ to compose and send messages.
|
|
|
200
202
|
model. If the owner is an Organization, this prop can be left unspecified.
|
|
201
203
|
- `isSaveAsTemplateEnabled` - To allow users to save the contents of current
|
|
202
204
|
message as a new template.
|
|
203
|
-
- `canManageTemplates` - When this is set to false, `save as template` option
|
|
205
|
+
- `canManageTemplates` - When this is set to false, `save as template` option
|
|
206
|
+
won't be displayed to users.
|
|
204
207
|
|
|
205
208
|
##### Usage
|
|
206
209
|
|
|
@@ -267,11 +270,19 @@ filtering and search capabilities.
|
|
|
267
270
|
- `breadcrumbs`: An array of objects that specify breadcrumbs for navigation.
|
|
268
271
|
- `onMutationSuccess`: The callback function which is triggered on the success
|
|
269
272
|
of mutation functions(create, update & delete).
|
|
270
|
-
- `
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
273
|
+
- `initialPayload`: To specify the initial value of the body as an object.
|
|
274
|
+
- `templateVariables`: To add dynamic variables to body field.
|
|
275
|
+
- `helpPopoverProps` - To add help popovers to various sections.
|
|
276
|
+
|
|
277
|
+
- **Header**: Define popover props under `apiTemplates`. NOTE: `href` from
|
|
278
|
+
`helpLinkProps` will be used for displaying the help doc link in `NoData`
|
|
279
|
+
component. Header title will be used as the help popover title if no title
|
|
280
|
+
is provided.
|
|
281
|
+
- **Custom headers**: Define popover props under `customHeaders`.
|
|
282
|
+
- **Body**: Define popover props under `body`.
|
|
283
|
+
|
|
284
|
+
For more details. For more details, refer to the
|
|
285
|
+
[HelpPopover component documentation](https://neeto-molecules.neeto.com/?path=/docs/helppopover--docs).
|
|
275
286
|
|
|
276
287
|
##### Usage
|
|
277
288
|
|
|
@@ -286,10 +297,36 @@ const App = () => {
|
|
|
286
297
|
const breadcrumbs = [{ link: "/settings", text: "Settings" }];
|
|
287
298
|
const ownerId = "ownerId";
|
|
288
299
|
|
|
300
|
+
const HELP_POPOVER_PROPS = {
|
|
301
|
+
apiTemplates: {
|
|
302
|
+
title: "Title for the popover displayed in header",
|
|
303
|
+
description: "Description for the popover displayed in header.",
|
|
304
|
+
helpLinkProps: { href: SEND_TO_API_HELP_DOC_URL },
|
|
305
|
+
},
|
|
306
|
+
customHeaders: {
|
|
307
|
+
title: "Title for custom headers popover",
|
|
308
|
+
description: "Description for custom headers popover.",
|
|
309
|
+
helpLinkProps: { href: CUSTOM_HEADERS_HELP_DOC_URL },
|
|
310
|
+
},
|
|
311
|
+
body: {
|
|
312
|
+
title: "Title for API payload popover",
|
|
313
|
+
description: "Description for API payload popover.",
|
|
314
|
+
helpLinkProps: { href: API_PAYLOAD_HELP_DOC_URL },
|
|
315
|
+
},
|
|
316
|
+
};
|
|
317
|
+
|
|
318
|
+
TEMPLATE_VARIABLES = [
|
|
319
|
+
{ label: t("form.allAnswers"), key: "all-answers" },
|
|
320
|
+
{ label: t("common.formName"), key: "form-name" },
|
|
321
|
+
];
|
|
322
|
+
|
|
289
323
|
return (
|
|
290
324
|
<ApiTemplates
|
|
291
325
|
{...{ breadcrumbs, ownerId }}
|
|
292
|
-
|
|
326
|
+
templateVariables={TEMPLATE_VARIABLES}
|
|
327
|
+
onMutationSuccess={() =>
|
|
328
|
+
queryClient.invalidateQueries({ queryKey: ["rules"] })
|
|
329
|
+
}
|
|
293
330
|
/>
|
|
294
331
|
);
|
|
295
332
|
};
|
|
@@ -306,13 +343,17 @@ it if needed and send the data to the specified HTTP(S) endpoint.
|
|
|
306
343
|
- `onClose`: This function will be executed while closing the pane.
|
|
307
344
|
- `onSubmit`: This function will be executed while submitting the form.
|
|
308
345
|
- `isSubmitting`: A boolean to know the form submission status
|
|
309
|
-
- `canManageTemplates` - When this is set to false, `save as template` option
|
|
346
|
+
- `canManageTemplates` - When this is set to false, `save as template` option
|
|
347
|
+
won't be displayed to users.
|
|
348
|
+
- `templateVariables`: To add dynamic variables to body field.
|
|
310
349
|
- `helpPopoverProps` - To add help popovers to various sections in the pane.
|
|
350
|
+
|
|
311
351
|
- **Pane title**: Define popover props under `sendToApi`.
|
|
312
|
-
- **
|
|
352
|
+
- **Custom headers**: Define popover props under `customHeaders`.
|
|
353
|
+
- **Body**: Define popover props under `body`.
|
|
313
354
|
|
|
314
355
|
For more details. For more details, refer to the
|
|
315
|
-
|
|
356
|
+
[HelpPopover component documentation](https://neeto-molecules.neeto.com/?path=/docs/helppopover--docs).
|
|
316
357
|
|
|
317
358
|
##### Usage
|
|
318
359
|
|
|
@@ -333,13 +374,23 @@ const App = () => {
|
|
|
333
374
|
description: "Description for send to API popover.",
|
|
334
375
|
helpLinkProps: { href: SEND_TO_API_HELP_DOC_URL },
|
|
335
376
|
},
|
|
336
|
-
|
|
337
|
-
title: "Title for
|
|
338
|
-
description: "Description for
|
|
339
|
-
helpLinkProps: { href:
|
|
377
|
+
customHeaders: {
|
|
378
|
+
title: "Title for custom headers popover",
|
|
379
|
+
description: "Description for custom headers popover.",
|
|
380
|
+
helpLinkProps: { href: CUSTOM_HEADERS_HELP_DOC_URL },
|
|
381
|
+
},
|
|
382
|
+
body: {
|
|
383
|
+
title: "Title for API payload popover",
|
|
384
|
+
description: "Description for API payload popover.",
|
|
385
|
+
helpLinkProps: { href: API_PAYLOAD_HELP_DOC_URL },
|
|
340
386
|
},
|
|
341
387
|
};
|
|
342
388
|
|
|
389
|
+
TEMPLATE_VARIABLES = [
|
|
390
|
+
{ label: t("form.allAnswers"), key: "all-answers" },
|
|
391
|
+
{ label: t("common.formName"), key: "form-name" },
|
|
392
|
+
];
|
|
393
|
+
|
|
343
394
|
const handleSubmit = () => {
|
|
344
395
|
setIsSubmitting(true);
|
|
345
396
|
// API call
|
|
@@ -353,6 +404,7 @@ const App = () => {
|
|
|
353
404
|
onClose={() => setIsSendToApiPaneOpen(false)}
|
|
354
405
|
onSubmit={handleSubmit}
|
|
355
406
|
helpPopoverProps={HELP_POPOVER_PROPS}
|
|
407
|
+
templateVariables={TEMPLATE_VARIABLES}
|
|
356
408
|
/>
|
|
357
409
|
);
|
|
358
410
|
};
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"whatsappTemplates": "Whatsapp Templates",
|
|
35
35
|
"whatsappTemplate": "Whatsapp Template",
|
|
36
36
|
"apiTemplates": "API templates",
|
|
37
|
-
"emptyState": "There are no {{type, anyCase}} to show",
|
|
37
|
+
"emptyState": "There are no {{type, anyCase}} to show.",
|
|
38
38
|
"whatsapp": {
|
|
39
39
|
"helpDocText": "You can create and add new WhatsApp templates by referring to this <Link>help document</Link>."
|
|
40
40
|
},
|
|
@@ -62,6 +62,9 @@
|
|
|
62
62
|
"messageTemplatesWithCount_other": "{{count}} {{type, anyCase}} templates",
|
|
63
63
|
"viewHelpArticle": "View help article"
|
|
64
64
|
},
|
|
65
|
+
"validations": {
|
|
66
|
+
"requiredEntity": "{{entity}} is required"
|
|
67
|
+
},
|
|
65
68
|
"sendMessage": {
|
|
66
69
|
"email": "Send email",
|
|
67
70
|
"sms": "Send SMS",
|
|
@@ -77,23 +80,32 @@
|
|
|
77
80
|
"api": {
|
|
78
81
|
"sendToApi": "Send to API",
|
|
79
82
|
"endpoint": "Endpoint",
|
|
80
|
-
"
|
|
83
|
+
"headers": "Headers",
|
|
84
|
+
"includeHeaders": "Include headers",
|
|
81
85
|
"addApiTemplate": "Add new API template",
|
|
82
86
|
"editApiTemplate": "Edit API template",
|
|
83
|
-
"
|
|
87
|
+
"addEntity": "Add {{entity}}",
|
|
84
88
|
"key": "Key",
|
|
85
89
|
"value": "Value",
|
|
86
90
|
"deleteApiTemplate": "Delete API template?",
|
|
91
|
+
"insertPlaceholder": "Insert placeholder: {{label}}",
|
|
87
92
|
"validation": {
|
|
88
93
|
"endpointPresence": "Endpoint is required",
|
|
89
|
-
"validEndpoint": "Endpoint should be valid URL"
|
|
94
|
+
"validEndpoint": "Endpoint should be valid URL",
|
|
95
|
+
"invalidJsonBody": "Body should be a valid JSON"
|
|
90
96
|
},
|
|
91
97
|
"helpPopovers": {
|
|
98
|
+
"apiTemplates": {
|
|
99
|
+
"description": "You can create and customize templates for API requests that can be sent to external services."
|
|
100
|
+
},
|
|
92
101
|
"sendToApi": {
|
|
93
102
|
"description": "In certain cases, you might want to send data to an external service. This allows you to send the selected data via an API request."
|
|
94
103
|
},
|
|
95
|
-
"
|
|
96
|
-
"description": "
|
|
104
|
+
"customHeaders": {
|
|
105
|
+
"description": "Add custom headers to include in the API request, such as authentication tokens."
|
|
106
|
+
},
|
|
107
|
+
"body": {
|
|
108
|
+
"description": "Define the request payload. You can include placeholders and structure it to match your API requirements."
|
|
97
109
|
}
|
|
98
110
|
}
|
|
99
111
|
}
|
package/dist/ApiTemplates.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
2
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
3
3
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
4
|
-
import { useState } from 'react';
|
|
4
|
+
import { useMemo, useState } from 'react';
|
|
5
5
|
import { truncate, isNotEmpty, noop } from '@bigbinary/neeto-cist';
|
|
6
6
|
import { useQueryParams } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
7
7
|
import FiltersBar from '@bigbinary/neeto-filters-frontend/Bar';
|
|
@@ -16,9 +16,9 @@ import NoData from '@bigbinary/neetoui/NoData';
|
|
|
16
16
|
import Pane from '@bigbinary/neetoui/Pane';
|
|
17
17
|
import Table from '@bigbinary/neetoui/Table';
|
|
18
18
|
import Typography from '@bigbinary/neetoui/Typography';
|
|
19
|
-
import { equals, isEmpty, pick } from 'ramda';
|
|
19
|
+
import { equals, assoc, isEmpty, pick } from 'ramda';
|
|
20
20
|
import { useTranslation, Trans } from 'react-i18next';
|
|
21
|
-
import { T as TEMPLATE_STATUS, A as API_TEMPLATE_INITIAL_VALUES,
|
|
21
|
+
import { T as TEMPLATE_STATUS, A as API_TEMPLATE_INITIAL_VALUES, C as CUSTOM_HEADERS_INITIAL_VALUE, r as rejectEmptyKeyValuePairs, a as API_TEMPLATE_TYPE, b as API_TEMPLATE_FORM_VALIDATION_SCHEMA, S as SAMPLE_URL, c as CustomHeaders, J as JsonEditor, F as FILTER_COLUMNS, d as buildHelpPopoverProps } from './JsonEditor-ChlZYDDV.js';
|
|
22
22
|
import { D as DEFAULT_PAGE_PROPERTIES } from './constants-D4v0xTUu.js';
|
|
23
23
|
import { u as useCreateTemplate, a as useUpdateTemplate, b as useFetchTemplates, c as useDeleteTemplate } from './useTemplatesApi-D63swqeh.js';
|
|
24
24
|
import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
|
|
@@ -29,8 +29,13 @@ import MoreDropdown from '@bigbinary/neeto-molecules/MoreDropdown';
|
|
|
29
29
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
30
30
|
import 'yup';
|
|
31
31
|
import 'formik';
|
|
32
|
+
import '@bigbinary/neetoui/formik/Switch';
|
|
32
33
|
import '@bigbinary/neeto-icons/Delete';
|
|
34
|
+
import '@monaco-editor/react';
|
|
35
|
+
import '@bigbinary/neeto-icons/Help';
|
|
36
|
+
import '@bigbinary/neeto-molecules/DynamicVariables';
|
|
33
37
|
import '@bigbinary/neetoui/Label';
|
|
38
|
+
import './inject-css-DmrvuTKK.js';
|
|
34
39
|
import '@bigbinary/neeto-commons-frontend/constants';
|
|
35
40
|
import '@tanstack/react-query';
|
|
36
41
|
import 'axios';
|
|
@@ -43,7 +48,9 @@ var buildApiTemplatePayload = function buildApiTemplatePayload(values, templateI
|
|
|
43
48
|
entity: {
|
|
44
49
|
id: templateId,
|
|
45
50
|
endpoint: values.endpoint,
|
|
46
|
-
|
|
51
|
+
enableCustomHeaders: values.enableCustomHeaders,
|
|
52
|
+
customHeaders: rejectEmptyKeyValuePairs(values.customHeaders || []),
|
|
53
|
+
body: values.body
|
|
47
54
|
},
|
|
48
55
|
templateType: API_TEMPLATE_TYPE,
|
|
49
56
|
name: values.name
|
|
@@ -109,11 +116,13 @@ var buildTableColumnData = function buildTableColumnData(_ref) {
|
|
|
109
116
|
width: "20%"
|
|
110
117
|
}];
|
|
111
118
|
};
|
|
112
|
-
var buildApiTemplateInitialValues = function buildApiTemplateInitialValues(isEdit, apiTemplate) {
|
|
113
|
-
if (!isEdit)
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
119
|
+
var buildApiTemplateInitialValues = function buildApiTemplateInitialValues(isEdit, apiTemplate, initialPayload) {
|
|
120
|
+
if (!isEdit) {
|
|
121
|
+
return assoc("body", initialPayload, API_TEMPLATE_INITIAL_VALUES);
|
|
122
|
+
}
|
|
123
|
+
var customHeaders = isEmpty(apiTemplate.customHeaders) ? [CUSTOM_HEADERS_INITIAL_VALUE] : apiTemplate.customHeaders;
|
|
124
|
+
return _objectSpread$1(_objectSpread$1({}, pick(["name", "endpoint", "body", "enableCustomHeaders"], apiTemplate)), {}, {
|
|
125
|
+
customHeaders: customHeaders
|
|
117
126
|
});
|
|
118
127
|
};
|
|
119
128
|
|
|
@@ -122,7 +131,11 @@ var Form = function Form(_ref) {
|
|
|
122
131
|
onClose = _ref.onClose,
|
|
123
132
|
ownerId = _ref.ownerId,
|
|
124
133
|
selectedApiTemplate = _ref.selectedApiTemplate,
|
|
125
|
-
onMutationSuccess = _ref.onMutationSuccess
|
|
134
|
+
onMutationSuccess = _ref.onMutationSuccess,
|
|
135
|
+
initialPayload = _ref.initialPayload,
|
|
136
|
+
templateVariables = _ref.templateVariables,
|
|
137
|
+
bodyHelpPopoverProps = _ref.bodyHelpPopoverProps,
|
|
138
|
+
customHeadersHelpPopoverProps = _ref.customHeadersHelpPopoverProps;
|
|
126
139
|
var _useTranslation = useTranslation(),
|
|
127
140
|
t = _useTranslation.t;
|
|
128
141
|
var _useCreateTemplate = useCreateTemplate(ownerId),
|
|
@@ -154,6 +167,9 @@ var Form = function Form(_ref) {
|
|
|
154
167
|
createApiTemplate(payload, options);
|
|
155
168
|
};
|
|
156
169
|
var isMutating = isUpdating || isCreating;
|
|
170
|
+
var initialValues = useMemo(function () {
|
|
171
|
+
return buildApiTemplateInitialValues(isEdit, selectedApiTemplate, initialPayload);
|
|
172
|
+
}, [isEdit, selectedApiTemplate, initialPayload]);
|
|
157
173
|
return /*#__PURE__*/jsxs(Fragment, {
|
|
158
174
|
children: [/*#__PURE__*/jsx(Pane.Header, {
|
|
159
175
|
children: /*#__PURE__*/jsx(Typography, {
|
|
@@ -163,13 +179,13 @@ var Form = function Form(_ref) {
|
|
|
163
179
|
})
|
|
164
180
|
}), /*#__PURE__*/jsxs(NeetoUIForm, {
|
|
165
181
|
formikProps: {
|
|
166
|
-
initialValues:
|
|
182
|
+
initialValues: initialValues,
|
|
167
183
|
validationSchema: API_TEMPLATE_FORM_VALIDATION_SCHEMA,
|
|
168
184
|
onSubmit: handleSubmit
|
|
169
185
|
},
|
|
170
186
|
children: [/*#__PURE__*/jsx(Pane.Body, {
|
|
171
187
|
children: /*#__PURE__*/jsxs("div", {
|
|
172
|
-
className: "w-full space-y-5",
|
|
188
|
+
className: "w-full space-y-5 mb-10",
|
|
173
189
|
children: [/*#__PURE__*/jsx(Input, {
|
|
174
190
|
required: true,
|
|
175
191
|
label: t("neetoMessageTemplate.template.name"),
|
|
@@ -180,9 +196,13 @@ var Form = function Form(_ref) {
|
|
|
180
196
|
label: t("neetoMessageTemplate.api.endpoint"),
|
|
181
197
|
name: "endpoint",
|
|
182
198
|
placeholder: SAMPLE_URL
|
|
183
|
-
}), /*#__PURE__*/jsx(
|
|
184
|
-
|
|
185
|
-
|
|
199
|
+
}), /*#__PURE__*/jsx(CustomHeaders, {
|
|
200
|
+
helpPopoverProps: customHeadersHelpPopoverProps
|
|
201
|
+
}), /*#__PURE__*/jsx(JsonEditor, {
|
|
202
|
+
templateVariables: templateVariables,
|
|
203
|
+
helpPopoverProps: bodyHelpPopoverProps,
|
|
204
|
+
initialValue: initialValues.body,
|
|
205
|
+
name: "body"
|
|
186
206
|
})]
|
|
187
207
|
})
|
|
188
208
|
}), /*#__PURE__*/jsx(Pane.Footer, {
|
|
@@ -200,12 +220,16 @@ var Form = function Form(_ref) {
|
|
|
200
220
|
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; }
|
|
201
221
|
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).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; }
|
|
202
222
|
var ApiTemplates = function ApiTemplates(_ref) {
|
|
203
|
-
var
|
|
223
|
+
var _apiTemplatesHelpPopo;
|
|
204
224
|
var ownerId = _ref.ownerId,
|
|
205
225
|
_ref$breadcrumbs = _ref.breadcrumbs,
|
|
206
226
|
breadcrumbs = _ref$breadcrumbs === void 0 ? [] : _ref$breadcrumbs,
|
|
207
227
|
_ref$helpPopoverProps = _ref.helpPopoverProps,
|
|
208
228
|
helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps,
|
|
229
|
+
_ref$initialPayload = _ref.initialPayload,
|
|
230
|
+
initialPayload = _ref$initialPayload === void 0 ? {} : _ref$initialPayload,
|
|
231
|
+
_ref$templateVariable = _ref.templateVariables,
|
|
232
|
+
templateVariables = _ref$templateVariable === void 0 ? [] : _ref$templateVariable,
|
|
209
233
|
_ref$onMutationSucces = _ref.onMutationSuccess,
|
|
210
234
|
onMutationSuccess = _ref$onMutationSucces === void 0 ? noop : _ref$onMutationSucces;
|
|
211
235
|
var _useTranslation = useTranslation(),
|
|
@@ -303,7 +327,11 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
303
327
|
}
|
|
304
328
|
});
|
|
305
329
|
};
|
|
306
|
-
var
|
|
330
|
+
var _buildHelpPopoverProp = buildHelpPopoverProps(helpPopoverProps),
|
|
331
|
+
apiTemplatesHelpPopoverProps = _buildHelpPopoverProp.apiTemplates,
|
|
332
|
+
customHeadersHelpPopoverProps = _buildHelpPopoverProp.customHeaders,
|
|
333
|
+
bodyHelpPopoverProps = _buildHelpPopoverProp.body;
|
|
334
|
+
var helpDocUrl = (apiTemplatesHelpPopoverProps === null || apiTemplatesHelpPopoverProps === void 0 || (_apiTemplatesHelpPopo = apiTemplatesHelpPopoverProps.helpLinkProps) === null || _apiTemplatesHelpPopo === void 0 ? void 0 : _apiTemplatesHelpPopo.href) || "";
|
|
307
335
|
var noDataProps = _objectSpread(_objectSpread({}, !isFilterApplied && {
|
|
308
336
|
primaryButtonProps: {
|
|
309
337
|
label: t("neetoMessageTemplate.api.addApiTemplate"),
|
|
@@ -348,8 +376,8 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
348
376
|
placeholder: t("neetoMessageTemplate.template.searchApiTemplates"),
|
|
349
377
|
"data-cy": "api-templates-search-input"
|
|
350
378
|
},
|
|
351
|
-
titleHelpPopoverProps:
|
|
352
|
-
title: (
|
|
379
|
+
titleHelpPopoverProps: apiTemplatesHelpPopoverProps && _objectSpread(_objectSpread({}, apiTemplatesHelpPopoverProps), {}, {
|
|
380
|
+
title: (apiTemplatesHelpPopoverProps === null || apiTemplatesHelpPopoverProps === void 0 ? void 0 : apiTemplatesHelpPopoverProps.title) || title
|
|
353
381
|
})
|
|
354
382
|
}), /*#__PURE__*/jsx(SubHeader, {
|
|
355
383
|
className: "mb-4",
|
|
@@ -406,14 +434,19 @@ var ApiTemplates = function ApiTemplates(_ref) {
|
|
|
406
434
|
children: /*#__PURE__*/jsx(NoData, _objectSpread({}, noDataProps))
|
|
407
435
|
}), /*#__PURE__*/jsx(Pane, {
|
|
408
436
|
isOpen: isFormPaneOpen,
|
|
437
|
+
size: "large",
|
|
409
438
|
onClose: handleCloseDeleteAlertAndFormPane,
|
|
410
439
|
children: function children(_ref3) {
|
|
411
440
|
var setFocusField = _ref3.setFocusField;
|
|
412
441
|
return /*#__PURE__*/jsx(Form, {
|
|
442
|
+
bodyHelpPopoverProps: bodyHelpPopoverProps,
|
|
443
|
+
customHeadersHelpPopoverProps: customHeadersHelpPopoverProps,
|
|
413
444
|
onMutationSuccess: onMutationSuccess,
|
|
414
445
|
ownerId: ownerId,
|
|
415
446
|
selectedApiTemplate: selectedApiTemplate,
|
|
416
447
|
setFocusField: setFocusField,
|
|
448
|
+
templateVariables: templateVariables,
|
|
449
|
+
initialPayload: JSON.stringify(initialPayload, null, 2),
|
|
417
450
|
onClose: handleCloseDeleteAlertAndFormPane
|
|
418
451
|
});
|
|
419
452
|
}
|
package/dist/ApiTemplates.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ApiTemplates.js","sources":["../app/javascript/src/components/Api/ApiTemplates/utils.jsx","../app/javascript/src/components/Api/ApiTemplates/Form.jsx","../app/javascript/src/components/Api/ApiTemplates/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport MoreDropdown from \"neetomolecules/MoreDropdown\";\nimport { Button } from \"neetoui\";\nimport { equals, isEmpty, pick } from \"ramda\";\nimport { truncate } from \"neetocist\";\n\nimport {\n ADDITIONAL_DATA_INITIAL_VALUE,\n API_TEMPLATE_TYPE,\n} from \"components/Api/constants\";\nimport { rejectEmptyKeyValuePairs } from \"components/Api/utils\";\n\nimport { API_TEMPLATE_INITIAL_VALUES, TEMPLATE_STATUS } from \"./constants\";\n\nexport const buildApiTemplatePayload = (values, templateId) => ({\n entity: {\n id: templateId,\n endpoint: values.endpoint,\n additionalData: rejectEmptyKeyValuePairs(values.additionalData),\n },\n templateType: API_TEMPLATE_TYPE,\n name: values.name,\n});\n\nexport const buildTableColumnData = ({\n handleMarkAsActiveOrInactive,\n handleOpenDeleteAlert,\n handleOpenEditPane,\n}) => [\n {\n dataIndex: \"name\",\n key: \"name\",\n title: t(\"neetoMessageTemplate.template.name\"),\n render: (name, apiTemplate) => (\n <div className=\"flex items-center justify-between gap-x-3\">\n <Button\n data-cy=\"api-template-name-link\"\n label={truncate(name, 100)}\n style=\"link\"\n onClick={() => handleOpenEditPane(apiTemplate)}\n />\n <MoreDropdown\n dropdownButtonProps={{ \"data-cy\": \"api-template-dropdown\" }}\n dropdownProps={{ strategy: \"fixed\" }}\n menuItems={[\n {\n key: \"edit\",\n label: t(\"neetoMessageTemplate.template.edit\"),\n \"data-cy\": \"api-template-button-edit-button\",\n onClick: () => handleOpenEditPane(apiTemplate),\n },\n {\n key: \"status\",\n label: equals(apiTemplate.status, TEMPLATE_STATUS.ACTIVE)\n ? t(\"neetoMessageTemplate.template.markAsInactive\")\n : t(\"neetoMessageTemplate.template.markAsActive\"),\n \"data-cy\": \"api-template-button-status-button\",\n onClick: () => handleMarkAsActiveOrInactive(apiTemplate),\n },\n {\n key: \"delete\",\n label: t(\"neetoMessageTemplate.template.delete\"),\n \"data-cy\": \"api-template-button-delete-button\",\n onClick: () => handleOpenDeleteAlert(apiTemplate),\n },\n ]}\n />\n </div>\n ),\n },\n {\n dataIndex: \"status\",\n key: \"status\",\n title: t(\"neetoMessageTemplate.template.active\"),\n render: status =>\n status === \"active\"\n ? t(\"neetoMessageTemplate.yes\")\n : t(\"neetoMessageTemplate.no\"),\n width: \"20%\",\n },\n];\n\nexport const buildApiTemplateInitialValues = (isEdit, apiTemplate) => {\n if (!isEdit) return API_TEMPLATE_INITIAL_VALUES;\n\n const additionalData = isEmpty(apiTemplate.additionalData)\n ? [ADDITIONAL_DATA_INITIAL_VALUE]\n : apiTemplate.additionalData;\n\n return { ...pick([\"name\", \"endpoint\"], apiTemplate), additionalData };\n};\n","import { isNotEmpty } from \"neetocist\";\nimport { Pane, Typography } from \"neetoui\";\nimport { ActionBlock, Input, Form as NeetoUIForm } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport KeyValuePairs from \"components/commons/KeyValuePairs\";\nimport {\n useCreateTemplate,\n useUpdateTemplate,\n} from \"hooks/reactQuery/useTemplatesApi\";\n\nimport { API_TEMPLATE_FORM_VALIDATION_SCHEMA, SAMPLE_URL } from \"./constants\";\nimport {\n buildApiTemplateInitialValues,\n buildApiTemplatePayload,\n} from \"./utils\";\n\nconst Form = ({\n setFocusField,\n onClose,\n ownerId,\n selectedApiTemplate,\n onMutationSuccess,\n}) => {\n const { t } = useTranslation();\n const { mutate: createApiTemplate, isPending: isCreating } =\n useCreateTemplate(ownerId);\n\n const { mutate: updateApiTemplate, isPending: isUpdating } =\n useUpdateTemplate(ownerId);\n\n const isEdit = isNotEmpty(selectedApiTemplate);\n\n const handleSubmit = (values, { setSubmitting }) => {\n const payload = buildApiTemplatePayload(values, selectedApiTemplate?.id);\n const options = {\n onSuccess: (...args) => {\n onMutationSuccess(...args);\n onClose();\n },\n onSettled: () => setSubmitting(false),\n };\n\n if (isEdit) {\n updateApiTemplate({ id: selectedApiTemplate.id, payload }, options);\n\n return;\n }\n\n createApiTemplate(payload, options);\n };\n\n const isMutating = isUpdating || isCreating;\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {isEdit\n ? t(\"neetoMessageTemplate.api.editApiTemplate\")\n : t(\"neetoMessageTemplate.api.addApiTemplate\")}\n </Typography>\n </Pane.Header>\n <NeetoUIForm\n formikProps={{\n initialValues: buildApiTemplateInitialValues(\n isEdit,\n selectedApiTemplate\n ),\n validationSchema: API_TEMPLATE_FORM_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n <Pane.Body>\n <div className=\"w-full space-y-5\">\n <Input\n required\n label={t(\"neetoMessageTemplate.template.name\")}\n name=\"name\"\n ref={setFocusField}\n />\n <Input\n required\n label={t(\"neetoMessageTemplate.api.endpoint\")}\n name=\"endpoint\"\n placeholder={SAMPLE_URL}\n />\n <KeyValuePairs\n label={t(\"neetoMessageTemplate.api.additionalData\")}\n name=\"additionalData\"\n />\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n cancelButtonProps={{ onClick: onClose }}\n isSubmitting={isMutating}\n />\n </Pane.Footer>\n </NeetoUIForm>\n </>\n );\n};\n\nexport default Form;\n","import { useState } from \"react\";\n\nimport { noop, isNotEmpty } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { Bar as FiltersBar, buildFiltersFromURL } from \"neetofilters\";\nimport Container from \"neetomolecules/Container\";\nimport Header from \"neetomolecules/Header\";\nimport SubHeader from \"neetomolecules/SubHeader\";\nimport TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Alert, Button, NoData, Pane, Table, Typography } from \"neetoui\";\nimport { equals, isEmpty } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { API_TEMPLATE_TYPE } from \"components/Api/constants\";\nimport { DEFAULT_PAGE_PROPERTIES } from \"components/constants\";\nimport {\n useDeleteTemplate,\n useFetchTemplates,\n useUpdateTemplate,\n} from \"hooks/reactQuery/useTemplatesApi\";\n\nimport { FILTER_COLUMNS, TEMPLATE_STATUS } from \"./constants\";\nimport Form from \"./Form\";\nimport { buildTableColumnData } from \"./utils\";\n\nconst ApiTemplates = ({\n ownerId,\n breadcrumbs = [],\n helpPopoverProps = {},\n onMutationSuccess = noop,\n}) => {\n const { t } = useTranslation();\n\n const [pageParams, setPageParams] = useState(DEFAULT_PAGE_PROPERTIES);\n const [isFiltersPaneOpen, setIsFiltersPaneOpen] = useState(false);\n const [isFormPaneOpen, setIsFormPaneOpen] = useState(false);\n const [selectedApiTemplate, setSelectedApiTemplate] = useState({});\n const [isDeleteAlertOpen, setIsDeleteAlertOpen] = useState(false);\n\n const { searchTerm = \"\" } = useQueryParams();\n\n const searchKeywordProps = {\n key: \"search_term\",\n node: \"name\",\n value: searchTerm,\n };\n\n const [filters, setFilters] = useState(() =>\n buildFiltersFromURL([...FILTER_COLUMNS, searchKeywordProps])\n );\n\n const {\n data: { templates, totalCount } = {},\n isLoading,\n isFetching,\n } = useFetchTemplates({\n filters,\n page: pageParams.index,\n pageSize: pageParams.size,\n templateType: API_TEMPLATE_TYPE,\n ownerId: isEmpty(ownerId) ? undefined : ownerId,\n });\n\n const title = t(\"neetoMessageTemplate.template.apiTemplates\");\n\n const isFilterApplied = isNotEmpty(filters);\n\n const handleFiltersChange = filters => {\n setFilters(filters);\n setPageParams(DEFAULT_PAGE_PROPERTIES);\n };\n\n const { mutate: deleteTemplate, isPending: isDeleting } =\n useDeleteTemplate(ownerId);\n const { mutate: updateTemplate } = useUpdateTemplate(ownerId);\n\n const handleOpenEditPane = apiTemplate => {\n setSelectedApiTemplate(apiTemplate);\n setIsFormPaneOpen(true);\n };\n\n const handleOpenDeleteAlert = apiTemplate => {\n setSelectedApiTemplate(apiTemplate);\n setIsDeleteAlertOpen(true);\n };\n\n const handleCloseDeleteAlertAndFormPane = () => {\n setIsDeleteAlertOpen(false);\n setIsFormPaneOpen(false);\n setSelectedApiTemplate({});\n };\n\n const handleMarkAsActiveOrInactive = ({ status, id }) => {\n const newStatus = equals(status, TEMPLATE_STATUS.ACTIVE)\n ? TEMPLATE_STATUS.INACTIVE\n : TEMPLATE_STATUS.ACTIVE;\n\n updateTemplate(\n {\n payload: { status: newStatus, templateType: API_TEMPLATE_TYPE },\n id,\n },\n { onSuccess: onMutationSuccess }\n );\n };\n\n const handleDeleteApiTemplate = () =>\n deleteTemplate(selectedApiTemplate.id, {\n onSuccess: (...args) => {\n onMutationSuccess(...args);\n handleCloseDeleteAlertAndFormPane();\n },\n });\n\n const helpDocUrl = helpPopoverProps?.helpLinkProps?.href || \"\";\n\n const noDataProps = {\n ...(!isFilterApplied && {\n primaryButtonProps: {\n label: t(\"neetoMessageTemplate.api.addApiTemplate\"),\n onClick: () => setIsFormPaneOpen(true),\n },\n helpText: (\n <Trans\n i18nKey=\"neetoMessageTemplate.template.linkToHelpArticle\"\n values={{ entity: title }}\n components={{\n Link: <Button href={helpDocUrl} style=\"link\" target=\"_blank\" />,\n }}\n />\n ),\n }),\n title: isFilterApplied\n ? t(\"neetoMessageTemplate.template.filtersEmptyState\", { type: title })\n : t(\"neetoMessageTemplate.template.emptyState\", { type: title }),\n };\n\n const shouldShowTemplatesCount =\n !isLoading && (isFilterApplied || totalCount > 0);\n\n return (\n <Container>\n <Header\n {...{ breadcrumbs, title }}\n size=\"small\"\n actionBlock={\n <Button\n data-cy=\"add-api-templates-button\"\n label={t(\"neetoMessageTemplate.api.addApiTemplate\")}\n onClick={() => setIsFormPaneOpen(true)}\n />\n }\n searchProps={\n shouldShowTemplatesCount && {\n placeholder: t(\"neetoMessageTemplate.template.searchApiTemplates\"),\n \"data-cy\": \"api-templates-search-input\",\n }\n }\n titleHelpPopoverProps={\n helpPopoverProps && {\n ...helpPopoverProps,\n title: helpPopoverProps?.title || title,\n }\n }\n />\n <SubHeader\n className=\"mb-4\"\n leftActionBlock={\n shouldShowTemplatesCount && (\n <Typography component=\"h4\">\n {t(\"neetoMessageTemplate.template.messageTemplatesWithCount\", {\n type: t(\"messageType.api\"),\n count: totalCount,\n })}\n </Typography>\n )\n }\n rightActionBlock={\n <SubHeader.RightBlock\n dataProps={{ totalCount: isFilterApplied ? null : totalCount }}\n filterProps={{\n columns: FILTER_COLUMNS,\n isOpen: isFiltersPaneOpen,\n keyword: searchKeywordProps,\n setIsOpen: setIsFiltersPaneOpen,\n onChange: handleFiltersChange,\n }}\n />\n }\n />\n <FiltersBar\n columns={FILTER_COLUMNS}\n keyword={searchKeywordProps}\n setIsPaneOpen={setIsFiltersPaneOpen}\n onChange={handleFiltersChange}\n />\n {isNotEmpty(templates) ? (\n <TableWrapper hasPagination={totalCount > pageParams.size}>\n <Table\n {...{ totalCount }}\n fixedHeight\n currentPageNumber={pageParams.index}\n defaultPageSize={pageParams.size}\n handlePageChange={(index, size) => setPageParams({ index, size })}\n loading={isLoading || isFetching}\n rowData={templates}\n scroll={{ x: \"100%\" }}\n columnData={buildTableColumnData({\n handleMarkAsActiveOrInactive,\n handleOpenDeleteAlert,\n handleOpenEditPane,\n })}\n />\n </TableWrapper>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData {...noDataProps} />\n </div>\n )}\n <Pane isOpen={isFormPaneOpen} onClose={handleCloseDeleteAlertAndFormPane}>\n {({ setFocusField }) => (\n <Form\n {...{\n onMutationSuccess,\n ownerId,\n selectedApiTemplate,\n setFocusField,\n }}\n onClose={handleCloseDeleteAlertAndFormPane}\n />\n )}\n </Pane>\n <Alert\n isOpen={isDeleteAlertOpen}\n isSubmitting={isDeleting}\n submitButtonLabel={t(\"neetoMessageTemplate.template.delete\")}\n title={t(\"neetoMessageTemplate.api.deleteApiTemplate\")}\n message={\n <Trans\n i18nKey=\"neetoMessageTemplate.template.templateDeleteConfirmation\"\n values={{ name: selectedApiTemplate.name }}\n />\n }\n onClose={handleCloseDeleteAlertAndFormPane}\n onSubmit={handleDeleteApiTemplate}\n />\n </Container>\n );\n};\n\nexport default ApiTemplates;\n"],"names":["buildApiTemplatePayload","values","templateId","entity","id","endpoint","additionalData","rejectEmptyKeyValuePairs","templateType","API_TEMPLATE_TYPE","name","buildTableColumnData","_ref","handleMarkAsActiveOrInactive","handleOpenDeleteAlert","handleOpenEditPane","dataIndex","key","title","t","render","apiTemplate","_jsxs","className","children","_jsx","Button","label","truncate","style","onClick","MoreDropdown","dropdownButtonProps","dropdownProps","strategy","menuItems","equals","status","TEMPLATE_STATUS","ACTIVE","width","buildApiTemplateInitialValues","isEdit","API_TEMPLATE_INITIAL_VALUES","isEmpty","ADDITIONAL_DATA_INITIAL_VALUE","_objectSpread","pick","Form","setFocusField","onClose","ownerId","selectedApiTemplate","onMutationSuccess","_useTranslation","useTranslation","_useCreateTemplate","useCreateTemplate","createApiTemplate","mutate","isCreating","isPending","_useUpdateTemplate","useUpdateTemplate","updateApiTemplate","isUpdating","isNotEmpty","handleSubmit","_ref2","setSubmitting","payload","options","onSuccess","apply","arguments","onSettled","isMutating","_Fragment","Pane","Header","Typography","weight","NeetoUIForm","formikProps","initialValues","validationSchema","API_TEMPLATE_FORM_VALIDATION_SCHEMA","onSubmit","Body","Input","required","ref","placeholder","SAMPLE_URL","KeyValuePairs","Footer","ActionBlock","cancelButtonProps","isSubmitting","ApiTemplates","_helpPopoverProps$hel","_ref$breadcrumbs","breadcrumbs","_ref$helpPopoverProps","helpPopoverProps","_ref$onMutationSucces","noop","_useState","useState","DEFAULT_PAGE_PROPERTIES","_useState2","_slicedToArray","pageParams","setPageParams","_useState3","_useState4","isFiltersPaneOpen","setIsFiltersPaneOpen","_useState5","_useState6","isFormPaneOpen","setIsFormPaneOpen","_useState7","_useState8","setSelectedApiTemplate","_useState9","_useState10","isDeleteAlertOpen","setIsDeleteAlertOpen","_useQueryParams","useQueryParams","_useQueryParams$searc","searchTerm","searchKeywordProps","node","value","_useState11","buildFiltersFromURL","concat","_toConsumableArray","FILTER_COLUMNS","_useState12","filters","setFilters","_useFetchTemplates","useFetchTemplates","page","index","pageSize","size","undefined","_useFetchTemplates$da","data","_useFetchTemplates$da2","templates","totalCount","isLoading","isFetching","isFilterApplied","handleFiltersChange","_useDeleteTemplate","useDeleteTemplate","deleteTemplate","isDeleting","updateTemplate","handleCloseDeleteAlertAndFormPane","newStatus","INACTIVE","handleDeleteApiTemplate","helpDocUrl","helpLinkProps","href","noDataProps","primaryButtonProps","helpText","Trans","i18nKey","components","Link","target","type","shouldShowTemplatesCount","Container","actionBlock","searchProps","titleHelpPopoverProps","SubHeader","leftActionBlock","component","count","rightActionBlock","RightBlock","dataProps","filterProps","columns","isOpen","keyword","setIsOpen","onChange","FiltersBar","setIsPaneOpen","TableWrapper","hasPagination","Table","fixedHeight","currentPageNumber","defaultPageSize","handlePageChange","loading","rowData","scroll","x","columnData","NoData","_ref3","Alert","submitButtonLabel","message"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ApiTemplates.js","sources":["../app/javascript/src/components/Api/ApiTemplates/utils.jsx","../app/javascript/src/components/Api/ApiTemplates/Form.jsx","../app/javascript/src/components/Api/ApiTemplates/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { truncate } from \"neetocist\";\nimport MoreDropdown from \"neetomolecules/MoreDropdown\";\nimport { Button } from \"neetoui\";\nimport { assoc, equals, isEmpty, pick } from \"ramda\";\n\nimport {\n CUSTOM_HEADERS_INITIAL_VALUE,\n API_TEMPLATE_TYPE,\n} from \"components/Api/constants\";\nimport { rejectEmptyKeyValuePairs } from \"components/Api/utils\";\n\nimport { API_TEMPLATE_INITIAL_VALUES, TEMPLATE_STATUS } from \"./constants\";\n\nexport const buildApiTemplatePayload = (values, templateId) => ({\n entity: {\n id: templateId,\n endpoint: values.endpoint,\n enableCustomHeaders: values.enableCustomHeaders,\n customHeaders: rejectEmptyKeyValuePairs(values.customHeaders || []),\n body: values.body,\n },\n templateType: API_TEMPLATE_TYPE,\n name: values.name,\n});\n\nexport const buildTableColumnData = ({\n handleMarkAsActiveOrInactive,\n handleOpenDeleteAlert,\n handleOpenEditPane,\n}) => [\n {\n dataIndex: \"name\",\n key: \"name\",\n title: t(\"neetoMessageTemplate.template.name\"),\n render: (name, apiTemplate) => (\n <div className=\"flex items-center justify-between gap-x-3\">\n <Button\n data-cy=\"api-template-name-link\"\n label={truncate(name, 100)}\n style=\"link\"\n onClick={() => handleOpenEditPane(apiTemplate)}\n />\n <MoreDropdown\n dropdownButtonProps={{ \"data-cy\": \"api-template-dropdown\" }}\n dropdownProps={{ strategy: \"fixed\" }}\n menuItems={[\n {\n key: \"edit\",\n label: t(\"neetoMessageTemplate.template.edit\"),\n \"data-cy\": \"api-template-button-edit-button\",\n onClick: () => handleOpenEditPane(apiTemplate),\n },\n {\n key: \"status\",\n label: equals(apiTemplate.status, TEMPLATE_STATUS.ACTIVE)\n ? t(\"neetoMessageTemplate.template.markAsInactive\")\n : t(\"neetoMessageTemplate.template.markAsActive\"),\n \"data-cy\": \"api-template-button-status-button\",\n onClick: () => handleMarkAsActiveOrInactive(apiTemplate),\n },\n {\n key: \"delete\",\n label: t(\"neetoMessageTemplate.template.delete\"),\n \"data-cy\": \"api-template-button-delete-button\",\n onClick: () => handleOpenDeleteAlert(apiTemplate),\n },\n ]}\n />\n </div>\n ),\n },\n {\n dataIndex: \"status\",\n key: \"status\",\n title: t(\"neetoMessageTemplate.template.active\"),\n render: status =>\n status === \"active\"\n ? t(\"neetoMessageTemplate.yes\")\n : t(\"neetoMessageTemplate.no\"),\n width: \"20%\",\n },\n];\n\nexport const buildApiTemplateInitialValues = (\n isEdit,\n apiTemplate,\n initialPayload\n) => {\n if (!isEdit) {\n return assoc(\"body\", initialPayload, API_TEMPLATE_INITIAL_VALUES);\n }\n\n const customHeaders = isEmpty(apiTemplate.customHeaders)\n ? [CUSTOM_HEADERS_INITIAL_VALUE]\n : apiTemplate.customHeaders;\n\n return {\n ...pick([\"name\", \"endpoint\", \"body\", \"enableCustomHeaders\"], apiTemplate),\n customHeaders,\n };\n};\n","import { useMemo } from \"react\";\n\nimport { isNotEmpty } from \"neetocist\";\nimport { Pane, Typography } from \"neetoui\";\nimport { ActionBlock, Input, Form as NeetoUIForm } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n useCreateTemplate,\n useUpdateTemplate,\n} from \"hooks/reactQuery/useTemplatesApi\";\n\nimport { API_TEMPLATE_FORM_VALIDATION_SCHEMA, SAMPLE_URL } from \"./constants\";\nimport {\n buildApiTemplateInitialValues,\n buildApiTemplatePayload,\n} from \"./utils\";\n\nimport CustomHeaders from \"../CustomHeaders\";\nimport JsonEditor from \"../JsonEditor\";\n\nconst Form = ({\n setFocusField,\n onClose,\n ownerId,\n selectedApiTemplate,\n onMutationSuccess,\n initialPayload,\n templateVariables,\n bodyHelpPopoverProps,\n customHeadersHelpPopoverProps,\n}) => {\n const { t } = useTranslation();\n const { mutate: createApiTemplate, isPending: isCreating } =\n useCreateTemplate(ownerId);\n\n const { mutate: updateApiTemplate, isPending: isUpdating } =\n useUpdateTemplate(ownerId);\n\n const isEdit = isNotEmpty(selectedApiTemplate);\n\n const handleSubmit = (values, { setSubmitting }) => {\n const payload = buildApiTemplatePayload(values, selectedApiTemplate?.id);\n const options = {\n onSuccess: (...args) => {\n onMutationSuccess(...args);\n onClose();\n },\n onSettled: () => setSubmitting(false),\n };\n\n if (isEdit) {\n updateApiTemplate({ id: selectedApiTemplate.id, payload }, options);\n\n return;\n }\n\n createApiTemplate(payload, options);\n };\n\n const isMutating = isUpdating || isCreating;\n\n const initialValues = useMemo(\n () =>\n buildApiTemplateInitialValues(\n isEdit,\n selectedApiTemplate,\n initialPayload\n ),\n [isEdit, selectedApiTemplate, initialPayload]\n );\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {isEdit\n ? t(\"neetoMessageTemplate.api.editApiTemplate\")\n : t(\"neetoMessageTemplate.api.addApiTemplate\")}\n </Typography>\n </Pane.Header>\n <NeetoUIForm\n formikProps={{\n initialValues,\n validationSchema: API_TEMPLATE_FORM_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n <Pane.Body>\n <div className=\"w-full space-y-5 mb-10\">\n <Input\n required\n label={t(\"neetoMessageTemplate.template.name\")}\n name=\"name\"\n ref={setFocusField}\n />\n <Input\n required\n label={t(\"neetoMessageTemplate.api.endpoint\")}\n name=\"endpoint\"\n placeholder={SAMPLE_URL}\n />\n <CustomHeaders helpPopoverProps={customHeadersHelpPopoverProps} />\n <JsonEditor\n {...{ templateVariables }}\n helpPopoverProps={bodyHelpPopoverProps}\n initialValue={initialValues.body}\n name=\"body\"\n />\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n cancelButtonProps={{ onClick: onClose }}\n isSubmitting={isMutating}\n />\n </Pane.Footer>\n </NeetoUIForm>\n </>\n );\n};\n\nexport default Form;\n","import { useState } from \"react\";\n\nimport { noop, isNotEmpty } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { Bar as FiltersBar, buildFiltersFromURL } from \"neetofilters\";\nimport Container from \"neetomolecules/Container\";\nimport Header from \"neetomolecules/Header\";\nimport SubHeader from \"neetomolecules/SubHeader\";\nimport TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Alert, Button, NoData, Pane, Table, Typography } from \"neetoui\";\nimport { equals, isEmpty } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { API_TEMPLATE_TYPE } from \"components/Api/constants\";\nimport { DEFAULT_PAGE_PROPERTIES } from \"components/constants\";\nimport {\n useDeleteTemplate,\n useFetchTemplates,\n useUpdateTemplate,\n} from \"hooks/reactQuery/useTemplatesApi\";\n\nimport { FILTER_COLUMNS, TEMPLATE_STATUS } from \"./constants\";\nimport Form from \"./Form\";\nimport { buildTableColumnData } from \"./utils\";\n\nimport { buildHelpPopoverProps } from \"../utils\";\n\nconst ApiTemplates = ({\n ownerId,\n breadcrumbs = [],\n helpPopoverProps = {},\n initialPayload = {},\n templateVariables = [],\n onMutationSuccess = noop,\n}) => {\n const { t } = useTranslation();\n\n const [pageParams, setPageParams] = useState(DEFAULT_PAGE_PROPERTIES);\n const [isFiltersPaneOpen, setIsFiltersPaneOpen] = useState(false);\n const [isFormPaneOpen, setIsFormPaneOpen] = useState(false);\n const [selectedApiTemplate, setSelectedApiTemplate] = useState({});\n const [isDeleteAlertOpen, setIsDeleteAlertOpen] = useState(false);\n\n const { searchTerm = \"\" } = useQueryParams();\n\n const searchKeywordProps = {\n key: \"search_term\",\n node: \"name\",\n value: searchTerm,\n };\n\n const [filters, setFilters] = useState(() =>\n buildFiltersFromURL([...FILTER_COLUMNS, searchKeywordProps])\n );\n\n const {\n data: { templates, totalCount } = {},\n isLoading,\n isFetching,\n } = useFetchTemplates({\n filters,\n page: pageParams.index,\n pageSize: pageParams.size,\n templateType: API_TEMPLATE_TYPE,\n ownerId: isEmpty(ownerId) ? undefined : ownerId,\n });\n\n const title = t(\"neetoMessageTemplate.template.apiTemplates\");\n\n const isFilterApplied = isNotEmpty(filters);\n\n const handleFiltersChange = filters => {\n setFilters(filters);\n setPageParams(DEFAULT_PAGE_PROPERTIES);\n };\n\n const { mutate: deleteTemplate, isPending: isDeleting } =\n useDeleteTemplate(ownerId);\n const { mutate: updateTemplate } = useUpdateTemplate(ownerId);\n\n const handleOpenEditPane = apiTemplate => {\n setSelectedApiTemplate(apiTemplate);\n setIsFormPaneOpen(true);\n };\n\n const handleOpenDeleteAlert = apiTemplate => {\n setSelectedApiTemplate(apiTemplate);\n setIsDeleteAlertOpen(true);\n };\n\n const handleCloseDeleteAlertAndFormPane = () => {\n setIsDeleteAlertOpen(false);\n setIsFormPaneOpen(false);\n setSelectedApiTemplate({});\n };\n\n const handleMarkAsActiveOrInactive = ({ status, id }) => {\n const newStatus = equals(status, TEMPLATE_STATUS.ACTIVE)\n ? TEMPLATE_STATUS.INACTIVE\n : TEMPLATE_STATUS.ACTIVE;\n\n updateTemplate(\n {\n payload: { status: newStatus, templateType: API_TEMPLATE_TYPE },\n id,\n },\n { onSuccess: onMutationSuccess }\n );\n };\n\n const handleDeleteApiTemplate = () =>\n deleteTemplate(selectedApiTemplate.id, {\n onSuccess: (...args) => {\n onMutationSuccess(...args);\n handleCloseDeleteAlertAndFormPane();\n },\n });\n\n const {\n apiTemplates: apiTemplatesHelpPopoverProps,\n customHeaders: customHeadersHelpPopoverProps,\n body: bodyHelpPopoverProps,\n } = buildHelpPopoverProps(helpPopoverProps);\n\n const helpDocUrl = apiTemplatesHelpPopoverProps?.helpLinkProps?.href || \"\";\n\n const noDataProps = {\n ...(!isFilterApplied && {\n primaryButtonProps: {\n label: t(\"neetoMessageTemplate.api.addApiTemplate\"),\n onClick: () => setIsFormPaneOpen(true),\n },\n helpText: (\n <Trans\n i18nKey=\"neetoMessageTemplate.template.linkToHelpArticle\"\n values={{ entity: title }}\n components={{\n Link: <Button href={helpDocUrl} style=\"link\" target=\"_blank\" />,\n }}\n />\n ),\n }),\n title: isFilterApplied\n ? t(\"neetoMessageTemplate.template.filtersEmptyState\", { type: title })\n : t(\"neetoMessageTemplate.template.emptyState\", { type: title }),\n };\n\n const shouldShowTemplatesCount =\n !isLoading && (isFilterApplied || totalCount > 0);\n\n return (\n <Container>\n <Header\n {...{ breadcrumbs, title }}\n size=\"small\"\n actionBlock={\n <Button\n data-cy=\"add-api-templates-button\"\n label={t(\"neetoMessageTemplate.api.addApiTemplate\")}\n onClick={() => setIsFormPaneOpen(true)}\n />\n }\n searchProps={\n shouldShowTemplatesCount && {\n placeholder: t(\"neetoMessageTemplate.template.searchApiTemplates\"),\n \"data-cy\": \"api-templates-search-input\",\n }\n }\n titleHelpPopoverProps={\n apiTemplatesHelpPopoverProps && {\n ...apiTemplatesHelpPopoverProps,\n title: apiTemplatesHelpPopoverProps?.title || title,\n }\n }\n />\n <SubHeader\n className=\"mb-4\"\n leftActionBlock={\n shouldShowTemplatesCount && (\n <Typography component=\"h4\">\n {t(\"neetoMessageTemplate.template.messageTemplatesWithCount\", {\n type: t(\"messageType.api\"),\n count: totalCount,\n })}\n </Typography>\n )\n }\n rightActionBlock={\n <SubHeader.RightBlock\n dataProps={{ totalCount: isFilterApplied ? null : totalCount }}\n filterProps={{\n columns: FILTER_COLUMNS,\n isOpen: isFiltersPaneOpen,\n keyword: searchKeywordProps,\n setIsOpen: setIsFiltersPaneOpen,\n onChange: handleFiltersChange,\n }}\n />\n }\n />\n <FiltersBar\n columns={FILTER_COLUMNS}\n keyword={searchKeywordProps}\n setIsPaneOpen={setIsFiltersPaneOpen}\n onChange={handleFiltersChange}\n />\n {isNotEmpty(templates) ? (\n <TableWrapper hasPagination={totalCount > pageParams.size}>\n <Table\n {...{ totalCount }}\n fixedHeight\n currentPageNumber={pageParams.index}\n defaultPageSize={pageParams.size}\n handlePageChange={(index, size) => setPageParams({ index, size })}\n loading={isLoading || isFetching}\n rowData={templates}\n scroll={{ x: \"100%\" }}\n columnData={buildTableColumnData({\n handleMarkAsActiveOrInactive,\n handleOpenDeleteAlert,\n handleOpenEditPane,\n })}\n />\n </TableWrapper>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData {...noDataProps} />\n </div>\n )}\n <Pane\n isOpen={isFormPaneOpen}\n size=\"large\"\n onClose={handleCloseDeleteAlertAndFormPane}\n >\n {({ setFocusField }) => (\n <Form\n {...{\n bodyHelpPopoverProps,\n customHeadersHelpPopoverProps,\n onMutationSuccess,\n ownerId,\n selectedApiTemplate,\n setFocusField,\n templateVariables,\n }}\n initialPayload={JSON.stringify(initialPayload, null, 2)}\n onClose={handleCloseDeleteAlertAndFormPane}\n />\n )}\n </Pane>\n <Alert\n isOpen={isDeleteAlertOpen}\n isSubmitting={isDeleting}\n submitButtonLabel={t(\"neetoMessageTemplate.template.delete\")}\n title={t(\"neetoMessageTemplate.api.deleteApiTemplate\")}\n message={\n <Trans\n i18nKey=\"neetoMessageTemplate.template.templateDeleteConfirmation\"\n values={{ name: selectedApiTemplate.name }}\n />\n }\n onClose={handleCloseDeleteAlertAndFormPane}\n onSubmit={handleDeleteApiTemplate}\n />\n </Container>\n );\n};\n\nexport default ApiTemplates;\n"],"names":["buildApiTemplatePayload","values","templateId","entity","id","endpoint","enableCustomHeaders","customHeaders","rejectEmptyKeyValuePairs","body","templateType","API_TEMPLATE_TYPE","name","buildTableColumnData","_ref","handleMarkAsActiveOrInactive","handleOpenDeleteAlert","handleOpenEditPane","dataIndex","key","title","t","render","apiTemplate","_jsxs","className","children","_jsx","Button","label","truncate","style","onClick","MoreDropdown","dropdownButtonProps","dropdownProps","strategy","menuItems","equals","status","TEMPLATE_STATUS","ACTIVE","width","buildApiTemplateInitialValues","isEdit","initialPayload","assoc","API_TEMPLATE_INITIAL_VALUES","isEmpty","CUSTOM_HEADERS_INITIAL_VALUE","_objectSpread","pick","Form","setFocusField","onClose","ownerId","selectedApiTemplate","onMutationSuccess","templateVariables","bodyHelpPopoverProps","customHeadersHelpPopoverProps","_useTranslation","useTranslation","_useCreateTemplate","useCreateTemplate","createApiTemplate","mutate","isCreating","isPending","_useUpdateTemplate","useUpdateTemplate","updateApiTemplate","isUpdating","isNotEmpty","handleSubmit","_ref2","setSubmitting","payload","options","onSuccess","apply","arguments","onSettled","isMutating","initialValues","useMemo","_Fragment","Pane","Header","Typography","weight","NeetoUIForm","formikProps","validationSchema","API_TEMPLATE_FORM_VALIDATION_SCHEMA","onSubmit","Body","Input","required","ref","placeholder","SAMPLE_URL","CustomHeaders","helpPopoverProps","JsonEditor","initialValue","Footer","ActionBlock","cancelButtonProps","isSubmitting","ApiTemplates","_apiTemplatesHelpPopo","_ref$breadcrumbs","breadcrumbs","_ref$helpPopoverProps","_ref$initialPayload","_ref$templateVariable","_ref$onMutationSucces","noop","_useState","useState","DEFAULT_PAGE_PROPERTIES","_useState2","_slicedToArray","pageParams","setPageParams","_useState3","_useState4","isFiltersPaneOpen","setIsFiltersPaneOpen","_useState5","_useState6","isFormPaneOpen","setIsFormPaneOpen","_useState7","_useState8","setSelectedApiTemplate","_useState9","_useState10","isDeleteAlertOpen","setIsDeleteAlertOpen","_useQueryParams","useQueryParams","_useQueryParams$searc","searchTerm","searchKeywordProps","node","value","_useState11","buildFiltersFromURL","concat","_toConsumableArray","FILTER_COLUMNS","_useState12","filters","setFilters","_useFetchTemplates","useFetchTemplates","page","index","pageSize","size","undefined","_useFetchTemplates$da","data","_useFetchTemplates$da2","templates","totalCount","isLoading","isFetching","isFilterApplied","handleFiltersChange","_useDeleteTemplate","useDeleteTemplate","deleteTemplate","isDeleting","updateTemplate","handleCloseDeleteAlertAndFormPane","newStatus","INACTIVE","handleDeleteApiTemplate","_buildHelpPopoverProp","buildHelpPopoverProps","apiTemplatesHelpPopoverProps","apiTemplates","helpDocUrl","helpLinkProps","href","noDataProps","primaryButtonProps","helpText","Trans","i18nKey","components","Link","target","type","shouldShowTemplatesCount","Container","actionBlock","searchProps","titleHelpPopoverProps","SubHeader","leftActionBlock","component","count","rightActionBlock","RightBlock","dataProps","filterProps","columns","isOpen","keyword","setIsOpen","onChange","FiltersBar","setIsPaneOpen","TableWrapper","hasPagination","Table","fixedHeight","currentPageNumber","defaultPageSize","handlePageChange","loading","rowData","scroll","x","columnData","NoData","_ref3","JSON","stringify","Alert","submitButtonLabel","message"],"mappings":"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"}
|