@bigbinary/neeto-message-templates-frontend 1.3.7 → 1.3.9
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 +20 -0
- package/app/javascript/src/translations/en.json +10 -1
- package/dist/ApiTemplates.js +1 -2
- package/dist/ApiTemplates.js.map +1 -1
- package/dist/MessageTemplates.js +0 -1
- package/dist/MessageTemplates.js.map +1 -1
- package/dist/SendToApiPane.js +43 -5
- package/dist/SendToApiPane.js.map +1 -1
- package/dist/cjs/ApiTemplates.js +1 -2
- package/dist/cjs/ApiTemplates.js.map +1 -1
- package/dist/cjs/MessageTemplates.js +0 -1
- package/dist/cjs/MessageTemplates.js.map +1 -1
- package/dist/cjs/SendToApiPane.js +42 -4
- package/dist/cjs/SendToApiPane.js.map +1 -1
- package/dist/cjs/index.js +2 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/{utils-aj-r79qQ.js → utils-D7y24q1q.js} +9 -4
- package/dist/utils-D7y24q1q.js.map +1 -0
- package/dist/{utils-BUob2F8X.js → utils-oljkG5EG.js} +9 -4
- package/dist/utils-oljkG5EG.js.map +1 -0
- package/package.json +26 -26
- package/types.d.ts +16 -1
- package/dist/utils-BUob2F8X.js.map +0 -1
- package/dist/utils-aj-r79qQ.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageTemplates.js","sources":["../../app/javascript/src/components/MessageTemplates/constants.js","../../app/javascript/src/stores/useTemplateStore.js","../../app/javascript/src/components/MessageTemplates/List/constants.js","../../app/javascript/src/components/MessageTemplates/List/utils.js","../../app/javascript/src/components/MessageTemplates/List/RowActions.jsx","../../app/javascript/src/components/MessageTemplates/utils.jsx","../../app/javascript/src/components/commons/FormikAdaptiveInput.jsx","../../app/javascript/src/components/MessageTemplates/AddEdit/constants.js","../../app/javascript/src/components/MessageTemplates/AddEdit/TestMessage.jsx","../../app/javascript/src/components/MessageTemplates/AddEdit/Form.jsx","../../app/javascript/src/components/MessageTemplates/AddEdit/index.jsx","../../app/javascript/src/components/MessageTemplates/hooks/useFilter.js","../../app/javascript/src/components/MessageTemplates/hooks/useTemplates.js","../../app/javascript/src/components/MessageTemplates/List/index.jsx","../../app/javascript/src/components/MessageTemplates/index.jsx"],"sourcesContent":["export const MESSAGE_TEMPLATE_INITIAL_STATE = {\n isOpen: false,\n isEdit: false,\n isDelete: false,\n template: {},\n};\n","import { withImmutableActions } from \"neetocommons/react-utils\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useTemplateStore = create(\n withImmutableActions(set => ({\n templateType: \"\",\n setTemplateState: set,\n }))\n);\n\nexport default useTemplateStore;\n","export const MENU_ITEMS = { EDIT: \"edit\", DELETE: \"delete\", STATUS: \"status\" };\n","import { t } from \"i18next\";\nimport { equals } from \"ramda\";\n\nimport { MENU_ITEMS } from \"./constants\";\n\nexport const getMenuItems = ({\n handleDeleteTemplate,\n handleEditTemplate,\n handleMarkActiveInactive,\n status,\n}) => [\n {\n key: MENU_ITEMS.EDIT,\n label: t(\"neetoMessageTemplate.template.edit\"),\n onClick: handleEditTemplate,\n \"data-cy\": \"message-template-edit-button\",\n },\n {\n key: MENU_ITEMS.STATUS,\n label: equals(status, \"active\")\n ? t(\"neetoMessageTemplate.template.markAsInactive\")\n : t(\"neetoMessageTemplate.template.markAsActive\"),\n onClick: () => handleMarkActiveInactive(status),\n \"data-cy\": \"message-template-status-button\",\n },\n {\n key: MENU_ITEMS.DELETE,\n label: t(\"neetoMessageTemplate.template.delete\"),\n onClick: handleDeleteTemplate,\n \"data-cy\": \"message-template-delete-button\",\n },\n];\n","import MoreDropdown from \"neetomolecules/MoreDropdown\";\nimport { prop } from \"ramda\";\n\nimport { MESSAGE_TEMPLATE_INITIAL_STATE } from \"components/MessageTemplates/constants\";\nimport { useUpdateTemplate } from \"hooks/reactQuery/useTemplatesApi\";\nimport useTemplateStore from \"src/stores/useTemplateStore\";\n\nimport { getMenuItems } from \"./utils\";\n\nconst RowActions = ({\n template,\n setManageTemplatePane,\n ownerId,\n onMutationSuccess,\n}) => {\n const { mutate: update } = useUpdateTemplate(ownerId);\n\n const { status, id } = template;\n\n const templateType = useTemplateStore(prop(\"templateType\"));\n\n const handleEditTemplate = () =>\n setManageTemplatePane({\n ...MESSAGE_TEMPLATE_INITIAL_STATE,\n isOpen: true,\n isEdit: true,\n template,\n });\n\n const handleDeleteTemplate = () =>\n setManageTemplatePane({\n ...MESSAGE_TEMPLATE_INITIAL_STATE,\n isDelete: true,\n template,\n });\n\n const handleMarkActiveInactive = activeState => {\n const status = activeState === \"active\" ? \"inactive\" : \"active\";\n update(\n { payload: { status, templateType }, id },\n { onSuccess: onMutationSuccess }\n );\n };\n\n return (\n <MoreDropdown\n dropdownButtonProps={{ \"data-cy\": \"message-template-dropdown\" }}\n dropdownProps={{ strategy: \"fixed\" }}\n menuItems={getMenuItems({\n handleDeleteTemplate,\n handleEditTemplate,\n handleMarkActiveInactive,\n status,\n })}\n />\n );\n};\n\nexport default RowActions;\n","import { t } from \"i18next\";\nimport { hyphenate } from \"neetocist\";\nimport { Button } from \"neetoui\";\n\nimport { MESSAGE_TEMPLATE_INITIAL_STATE } from \"./constants\";\nimport RowActions from \"./List/RowActions\";\n\nconst handleEditTemplate = (setManageTemplatePane, template) =>\n setManageTemplatePane({\n ...MESSAGE_TEMPLATE_INITIAL_STATE,\n isOpen: true,\n isEdit: true,\n template,\n });\n\nexport const renderSearchProps = (label, value) => ({\n className: \"w-52\",\n placeholder: t(\"neetoMessageTemplate.template.search\", {\n what: label,\n }),\n \"data-cy\": `${hyphenate(value)}-search-input`,\n});\n\nexport const buildTableColumnData = (\n setManageTemplatePane,\n ownerId,\n onMutationSuccess\n) => [\n {\n dataIndex: \"name\",\n key: \"name\",\n node: \"name\",\n title: t(\"neetoMessageTemplate.template.name\"),\n label: t(\"neetoMessageTemplate.template.name\"),\n type: \"text\",\n render: (name, template) => (\n <div className=\"flex items-center justify-between gap-x-3\">\n <Button\n label={name}\n style=\"link\"\n onClick={() => handleEditTemplate(setManageTemplatePane, template)}\n />\n <RowActions\n {...{ onMutationSuccess, ownerId, setManageTemplatePane, template }}\n />\n </div>\n ),\n },\n {\n dataIndex: \"status\",\n key: \"status\",\n node: \"status\",\n title: t(\"neetoMessageTemplate.template.active\"),\n label: t(\"neetoMessageTemplate.template.active\"),\n type: \"single_option\",\n values: [\n { label: \"Yes\", value: \"active\" },\n { label: \"No\", value: \"inactive\" },\n ],\n render: status => (status === \"active\" ? \"Yes\" : \"No\"),\n width: \"20%\",\n },\n];\n","import { useFormikContext } from \"formik\";\nimport { Textarea } from \"neetoui/formik\";\n// eslint-disable-next-line import/extensions\nimport \"stylesheets/application.scss\";\n\nconst FormikAdaptiveInput = ({ label, name, ...otherProps }) => {\n const { submitForm } = useFormikContext();\n\n const handleKeyDown = event => {\n if (event.key !== \"Enter\" || event.shiftKey) return;\n event.preventDefault();\n submitForm();\n };\n\n return (\n <Textarea\n {...{ label, name }}\n className=\"neeto-message-templates-nano-adaptive-input\"\n resize=\"none\"\n size=\"small\"\n onKeyDown={handleKeyDown}\n {...otherProps}\n />\n );\n};\n\nexport default FormikAdaptiveInput;\n","import { t } from \"i18next\";\nimport { isPhoneNumberValid } from \"neetomolecules/PhoneNumber\";\nimport * as yup from \"yup\";\n\n// eslint-disable-next-line @bigbinary/neeto/file-name-and-export-name-standards\nexport const formatEditorContent = value =>\n value?.replaceAll(/<\\/?(?!img)\\w*\\b[^>]*>/gi, \"\").trim();\n\nexport const EMAIL_TEMPLATE_INITIAL_VALUES = {\n name: \"\",\n subject: \"\",\n body: \"\",\n testEmailAddress: \"\",\n};\n\nexport const SMS_TEMPLATE_INITIAL_VALUES = {\n name: \"\",\n body: \"\",\n testPhoneNumber: \"\",\n};\n\nexport const EMAIL_TEMPLATE_FORM_SCHEMA = yup.object({\n name: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.namePresence\")),\n subject: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.subjectPresence\")),\n body: yup\n .string()\n .test(\n \"name\",\n t(\"neetoMessageTemplate.template.validation.bodyPresence\"),\n value => !!formatEditorContent(value)\n ),\n});\n\nexport const SMS_TEMPLATE_FORM_VALIDATION_SCHEMA = yup.object({\n name: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.namePresence\")),\n body: yup\n .string()\n .test(\n \"body\",\n t(\"neetoMessageTemplate.template.validation.bodyPresence\"),\n value => !!formatEditorContent(value)\n ),\n});\n\nexport const SEND_TEST_EMAIL_SCHEMA = yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.emailAddressPresence\"))\n .email(\n t(\"neetoMessageTemplate.template.validation.emailAddressFormatValidation\")\n );\n\nexport const PHONE_NUMBER_VALIDATION_SCHEMA = yup\n .string()\n .test(\n \"testPhoneNumber\",\n t(\"neetoMessageTemplate.template.validation.validPhoneNumber\"),\n value => isPhoneNumberValid(value)\n );\n","import { useState } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Button, Typography } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n PHONE_NUMBER_VALIDATION_SCHEMA,\n SEND_TEST_EMAIL_SCHEMA,\n} from \"./constants\";\n\nconst TestMessage = ({\n isEmailTemplate,\n handleSubmitTestTemplate,\n isTestMessageLoading,\n isTestingTemplateDisabled,\n customFields,\n}) => {\n const [isTestingTemplateRestricted, setIsTestingTemplateRestricted] =\n useState(true);\n const { values, isValid } = useFormikContext();\n\n const { t } = useTranslation();\n\n const handleTestValidation = async event => {\n const {\n target: { value },\n } = event;\n try {\n isEmailTemplate\n ? await SEND_TEST_EMAIL_SCHEMA.validate(value)\n : await PHONE_NUMBER_VALIDATION_SCHEMA.validate(value);\n setIsTestingTemplateRestricted(false);\n } catch {\n setIsTestingTemplateRestricted(true);\n }\n };\n\n const isTestTemplateButtonDisabled =\n !isValid ||\n isTestingTemplateDisabled ||\n isTestingTemplateRestricted ||\n isTestMessageLoading;\n\n const handleKeyDown = event => {\n if (event.key !== \"Enter\") return;\n event.stopPropagation();\n event.preventDefault();\n !isTestTemplateButtonDisabled && handleSubmitTestTemplate(values);\n };\n\n return (\n <>\n <div className=\"neeto-ui-flex left-0 flex items-start gap-x-2\">\n <Input\n data-cy=\"message-template-test-input\"\n {...(!isEmailTemplate && {\n helpText: t(\"neetoMessageTemplate.template.phoneNumberHelpText\"),\n })}\n name={isEmailTemplate ? \"testEmailAddress\" : \"testPhoneNumber\"}\n placeholder={t(\n isEmailTemplate\n ? \"neetoMessageTemplate.template.emailAddress\"\n : \"neetoMessageTemplate.template.phoneNumber\"\n )}\n onKeyDown={handleKeyDown}\n onKeyUp={handleTestValidation}\n />\n <Button\n data-cy=\"message-template-test-button\"\n disabled={isTestTemplateButtonDisabled}\n loading={isTestMessageLoading}\n style=\"primary\"\n type=\"button\"\n label={\n isEmailTemplate\n ? t(\"neetoMessageTemplate.template.sendTestEmail\")\n : t(\"neetoMessageTemplate.template.sendTestSms\")\n }\n onClick={() => handleSubmitTestTemplate(values)}\n />\n </div>\n {!isEmailTemplate && (\n <Typography style=\"body2\">\n {t(\"neetoMessageTemplate.sendMessage.testSmsNote\")}\n </Typography>\n )}\n {customFields}\n </>\n );\n};\n\nexport default TestMessage;\n","import { useRef } from \"react\";\n\nimport { FormikEditor } from \"neetoeditor\";\nimport { Pane } from \"neetoui\";\nimport { Form as NeetoUIForm, Input, ActionBlock } from \"neetoui/formik\";\nimport { equals, includes, mergeLeft, omit, pick, prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport FormikAdaptiveInput from \"components/commons/FormikAdaptiveInput\";\nimport { DEFAULT_EDITOR_ROW_COUNT } from \"components/constants\";\nimport useTemplateStore from \"src/stores/useTemplateStore\";\n\nimport {\n EMAIL_TEMPLATE_FORM_SCHEMA,\n EMAIL_TEMPLATE_INITIAL_VALUES,\n SMS_TEMPLATE_FORM_VALIDATION_SCHEMA,\n SMS_TEMPLATE_INITIAL_VALUES,\n} from \"./constants\";\nimport TestMessage from \"./TestMessage\";\n\nconst Form = ({\n onClose,\n isEdit,\n template = {},\n createUpdateTemplate,\n setInitialFocusField,\n handleSubmitTestTemplate,\n isTestMessageLoading,\n shouldIncludeTestTemplate,\n templateVariables,\n isTestingTemplateDisabled,\n customFields,\n onMutationSuccess,\n}) => {\n const { t } = useTranslation();\n\n const editorRef = useRef(null);\n const templateType = useTemplateStore(prop(\"templateType\"));\n const isEmailTemplate = equals(templateType, \"email_template\");\n const isTestTemplateVisible =\n includes(templateType, [\"sms_template\", \"email_template\"]) &&\n shouldIncludeTestTemplate;\n\n const [TEMPLATE_INITIAL_VALUES, TEMPLATE_FORM_SCHEMA] = isEmailTemplate\n ? [\n {\n ...EMAIL_TEMPLATE_INITIAL_VALUES,\n ...pick([\"name\", \"body\", \"subject\", \"active\"], template),\n },\n EMAIL_TEMPLATE_FORM_SCHEMA,\n ]\n : [\n {\n ...SMS_TEMPLATE_INITIAL_VALUES,\n ...pick([\"name\", \"body\", \"active\"], template),\n },\n SMS_TEMPLATE_FORM_VALIDATION_SCHEMA,\n ];\n\n const handleSubmit = values => {\n const filteredValues = isEmailTemplate\n ? omit([\"name\", \"testEmailAddress\"], values)\n : omit([\"name\", \"testPhoneNumber\"], values);\n\n const payload = {\n templateType,\n name: values.name,\n entity: mergeLeft({ id: template.id }, filteredValues),\n };\n\n createUpdateTemplate(\n { isEdit, payload, id: template.id },\n {\n onSuccess: (...args) => {\n onMutationSuccess(...args);\n onClose();\n },\n }\n );\n };\n\n const messageBodyLabel = isEmailTemplate\n ? t(\"neetoMessageTemplate.template.emailBody\")\n : t(\"neetoMessageTemplate.template.smsBody\");\n\n return (\n <NeetoUIForm\n formProps={{\n noValidate: true,\n className: \"flex w-full flex-col gap-y-4 pb-6\",\n }}\n formikProps={{\n initialValues: TEMPLATE_INITIAL_VALUES,\n validationSchema: TEMPLATE_FORM_SCHEMA,\n validateOnBlur: true,\n validateOnChange: true,\n onSubmit: handleSubmit,\n }}\n >\n <Input\n required\n label={t(\"neetoMessageTemplate.template.templateName\")}\n name=\"name\"\n ref={setInitialFocusField}\n />\n {isEmailTemplate && (\n <FormikAdaptiveInput\n required\n label={t(\"neetoMessageTemplate.template.emailSubject\")}\n name=\"subject\"\n />\n )}\n <FormikEditor\n hideSlashCommands\n required\n contentClassName=\"max-h-40\"\n defaults={isEmailTemplate ? undefined : []}\n label={messageBodyLabel}\n name=\"body\"\n ref={editorRef}\n rows={DEFAULT_EDITOR_ROW_COUNT}\n variables={templateVariables}\n />\n {isTestTemplateVisible && (\n <TestMessage\n {...{\n customFields,\n handleSubmitTestTemplate,\n isEmailTemplate,\n isTestMessageLoading,\n isTestingTemplateDisabled,\n }}\n />\n )}\n <Pane.Footer className=\"absolute bottom-0 left-0\">\n <ActionBlock\n cancelButtonProps={{\n \"data-cy\": \"message-template-reset-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-cy\": \"message-template-submit-button\",\n }}\n />\n </Pane.Footer>\n </NeetoUIForm>\n );\n};\nexport default Form;\n","import { useRef } from \"react\";\n\nimport { Pane, Typography } from \"neetoui\";\n\nimport Form from \"./Form\";\n\nconst AddEdit = ({\n onClose,\n createUpdateTemplate,\n manageTemplatePane,\n isTestMessageLoading,\n handleSubmitTestTemplate,\n shouldIncludeTestTemplate,\n addText,\n editText,\n templateVariables,\n isTestingTemplateDisabled,\n customFields,\n onMutationSuccess,\n}) => {\n const initialFocusField = useRef();\n\n const setInitialFocusField = fieldRef =>\n (initialFocusField.current = fieldRef);\n\n const { isOpen, isEdit, template } = manageTemplatePane;\n const label = isEdit ? editText : addText;\n\n return (\n <Pane {...{ isOpen, onClose }} initialFocusRef={initialFocusField}>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {label}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <Form\n {...{\n createUpdateTemplate,\n customFields,\n handleSubmitTestTemplate,\n isEdit,\n isTestMessageLoading,\n isTestingTemplateDisabled,\n onClose,\n onMutationSuccess,\n setInitialFocusField,\n shouldIncludeTestTemplate,\n template,\n templateVariables,\n }}\n />\n </Pane.Body>\n </Pane>\n );\n};\n\nexport default AddEdit;\n","import { useState } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildFiltersFromURL } from \"neetofilters\";\nimport { prop } from \"ramda\";\n\nimport { DEFAULT_PAGE_PROPERTIES } from \"components/constants\";\nimport { buildTableColumnData } from \"components/MessageTemplates/utils\";\n\nconst useFilters = () => {\n const [pageProperties, setPageProperties] = useState(DEFAULT_PAGE_PROPERTIES);\n\n const { searchTerm = \"\" } = useQueryParams();\n\n const filterColumns = buildTableColumnData().filter(prop(\"node\"));\n const searchKeywordProps = {\n key: \"search_term\",\n node: \"name\",\n value: searchTerm,\n setValue: noop,\n };\n\n const [filters, setFilters] = useState(() =>\n buildFiltersFromURL([...filterColumns, searchKeywordProps])\n );\n\n return {\n filterColumns,\n searchKeywordProps,\n searchTerm,\n filters,\n setFilters,\n pageProperties,\n setPageProperties,\n };\n};\nexport default useFilters;\n","import { isEmpty } from \"ramda\";\n\nimport { MESSAGE_TEMPLATES } from \"components/constants\";\nimport {\n useCreateTemplate,\n useFetchTemplates,\n useUpdateTemplate,\n} from \"hooks/reactQuery/useTemplatesApi\";\n\nconst useTemplates = ({ type, ownerId, filters, pageProperties }) => {\n const { index: pageIndex, size: pageSize } = pageProperties;\n const templateParams = {\n page: pageIndex,\n pageSize,\n filters,\n templateType: MESSAGE_TEMPLATES[type].value,\n ownerId: isEmpty(ownerId) ? undefined : ownerId,\n };\n\n const {\n data: templatesData = {},\n isLoading: isLoadingTemplates,\n isFetching,\n } = useFetchTemplates(templateParams);\n\n const { mutate: create } = useCreateTemplate(ownerId);\n\n const { mutate: update } = useUpdateTemplate(ownerId);\n\n const createUpdateTemplate = ({ isEdit, payload, id = null }, options) =>\n isEdit ? update({ id, payload }, options) : create(payload, options);\n\n const isLoaderVisible = isLoadingTemplates || isFetching;\n\n return {\n templatesData,\n isLoading: isLoaderVisible,\n createUpdateTemplate,\n };\n};\n\nexport default useTemplates;\n","import TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Alert, Table, NoData, Button } from \"neetoui\";\nimport { assoc, isEmpty } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { buildTableColumnData } from \"components/MessageTemplates/utils\";\nimport { useDeleteTemplate } from \"hooks/reactQuery/useTemplatesApi\";\n\nconst List = ({\n setManageTemplatePane,\n templatesData,\n isLoading,\n manageTemplatePane,\n labelSingular,\n setPageProperties,\n pageProperties,\n label,\n addText,\n isFilterApplied,\n ownerId,\n type,\n onMutationSuccess,\n helpDocUrl,\n}) => {\n const { t } = useTranslation();\n const { mutate: deleteTemplate, isPending: isDeleting } =\n useDeleteTemplate(ownerId);\n\n const { templates, totalCount } = templatesData;\n const { template, isDelete } = manageTemplatePane;\n const { index: pageIndex, size: pageSize } = pageProperties;\n const isSms = type === \"sms\";\n const typeLabelSingular = isSms ? labelSingular : labelSingular.toLowerCase();\n const emptyStateLabel = isSms ? label : label.toLowerCase();\n\n const noDataProps = {\n ...(!isFilterApplied && {\n primaryButtonProps: {\n label: addText,\n onClick: () => setManageTemplatePane(assoc(\"isOpen\", true)),\n },\n helpText: (\n <Trans\n i18nKey=\"neetoMessageTemplate.template.linkToHelpArticle\"\n values={{ entity: label }}\n components={{\n Link: (\n <Button\n className=\"underline\"\n href={helpDocUrl}\n style=\"link\"\n target=\"_blank\"\n />\n ),\n }}\n />\n ),\n }),\n title: isFilterApplied\n ? t(\"neetoMessageTemplate.template.filtersEmptyState\", {\n type: emptyStateLabel,\n })\n : t(\"neetoMessageTemplate.template.emptyState\", {\n type: emptyStateLabel,\n }),\n };\n\n const handleDelete = () => {\n deleteTemplate(template.id, {\n onSuccess: onMutationSuccess,\n onSettled: () => {\n setManageTemplatePane(assoc(\"isDelete\", false));\n },\n });\n };\n\n return (\n <>\n {!isEmpty(templates) ? (\n <TableWrapper hasPagination={totalCount > pageSize}>\n <Table\n {...{ totalCount }}\n fixedHeight\n currentPageNumber={pageIndex}\n defaultPageSize={pageSize}\n loading={isLoading}\n rowData={templates}\n scroll={{ x: \"100%\" }}\n columnData={buildTableColumnData(\n setManageTemplatePane,\n ownerId,\n onMutationSuccess\n )}\n handlePageChange={(index, size) =>\n setPageProperties({ index, size })\n }\n />\n </TableWrapper>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData {...noDataProps} />\n </div>\n )}\n <Alert\n isOpen={isDelete}\n isSubmitting={isDeleting}\n submitButtonLabel={t(\"neetoMessageTemplate.template.delete\")}\n message={\n <Trans\n i18nKey=\"neetoMessageTemplate.template.templateDeleteConfirmation\"\n values={{ name: template.name }}\n />\n }\n title={t(\"neetoMessageTemplate.template.deleteTemplate\", {\n label: typeLabelSingular,\n })}\n onClose={() => setManageTemplatePane(assoc(\"isDelete\", false))}\n onSubmit={handleDelete}\n />\n </>\n );\n};\n\nexport default List;\n","import { useEffect, useState } from \"react\";\n\nimport { hyphenate, isNotEmpty, noop } from \"neetocist\";\nimport { Bar as FiltersBar } from \"neetofilters\";\nimport Container from \"neetomolecules/Container\";\nimport NeetoHeader from \"neetomolecules/Header\";\nimport SubHeader from \"neetomolecules/SubHeader\";\nimport { Button, Typography } from \"neetoui\";\nimport { assoc, prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n DEFAULT_PAGE_PROPERTIES,\n MESSAGE_TEMPLATES,\n MESSAGE_TYPES,\n} from \"components/constants\";\nimport { renderSearchProps } from \"components/MessageTemplates/utils\";\nimport useTemplateStore from \"src/stores/useTemplateStore\";\n\nimport AddEdit from \"./AddEdit\";\nimport { MESSAGE_TEMPLATE_INITIAL_STATE } from \"./constants\";\nimport useFilters from \"./hooks/useFilter\";\nimport useTemplates from \"./hooks/useTemplates\";\nimport List from \"./List\";\n\nconst MessageTemplates = ({\n breadcrumbs = [],\n type = \"\",\n handleSubmitTestTemplate = noop,\n isTestMessageLoading = false,\n shouldIncludeTestTemplate = true,\n templateVariables = {},\n ownerId = \"\",\n isTestingTemplateDisabled = false,\n manageTemplatesPaneCustomFields = null,\n onMutationSuccess = noop,\n helpPopoverProps = {},\n}) => {\n const [manageTemplatePane, setManageTemplatePane] = useState(\n MESSAGE_TEMPLATE_INITIAL_STATE\n );\n const [isFilterPaneOpen, setIsFilterPaneOpen] = useState(false);\n\n const { t } = useTranslation();\n\n const {\n searchKeywordProps,\n filterColumns,\n searchTerm,\n filters,\n setFilters,\n pageProperties,\n setPageProperties,\n } = useFilters();\n\n const { isLoading, templatesData, createUpdateTemplate } = useTemplates({\n type,\n ownerId,\n filters,\n pageProperties,\n });\n\n const setTemplateState = useTemplateStore(prop(\"setTemplateState\"));\n\n const { label, value, addText, labelSingular, editText } =\n MESSAGE_TEMPLATES[type];\n\n const isFilterApplied = isNotEmpty(filters) || isNotEmpty(searchTerm);\n\n const handleActionClick = () =>\n setManageTemplatePane({ ...MESSAGE_TEMPLATE_INITIAL_STATE, isOpen: true });\n\n const handleChange = filters => {\n setFilters(filters);\n setPageProperties(DEFAULT_PAGE_PROPERTIES);\n };\n\n const templatesCount = templatesData?.totalCount || 0;\n\n useEffect(() => {\n setTemplateState({ templateType: value });\n }, [value]);\n\n const shouldShowTemplatesCount =\n !isLoading && (isFilterApplied || templatesCount > 0);\n\n const helpDocUrl = helpPopoverProps?.helpLinkProps?.href || \"\";\n\n return (\n <Container>\n <NeetoHeader\n {...{ breadcrumbs }}\n size=\"small\"\n title={label}\n actionBlock={\n <Button\n data-cy={`add-${hyphenate(value)}-button`}\n label={addText}\n onClick={handleActionClick}\n />\n }\n searchProps={\n shouldShowTemplatesCount && renderSearchProps(label, value)\n }\n titleHelpPopoverProps={\n helpPopoverProps && {\n ...helpPopoverProps,\n title: helpPopoverProps?.title || label,\n }\n }\n />\n <SubHeader\n className=\"mb-4\"\n leftActionBlock={\n shouldShowTemplatesCount && (\n <Typography component=\"h4\">\n {t(\"neetoMessageTemplate.template.messageTemplatesWithCount\", {\n type: MESSAGE_TYPES[type],\n count: templatesCount,\n })}\n </Typography>\n )\n }\n rightActionBlock={\n <SubHeader.RightBlock\n dataProps={{\n totalCount: isFilterApplied ? null : templatesCount,\n }}\n filterProps={{\n columns: filterColumns,\n isOpen: isFilterPaneOpen,\n keyword: searchKeywordProps,\n setIsOpen: setIsFilterPaneOpen,\n onChange: handleChange,\n }}\n />\n }\n />\n <FiltersBar\n columns={filterColumns}\n keyword={searchKeywordProps}\n setIsPaneOpen={setIsFilterPaneOpen}\n onChange={handleChange}\n />\n <List\n {...{\n addText,\n helpDocUrl,\n isFilterApplied,\n isLoading,\n label,\n labelSingular,\n manageTemplatePane,\n onMutationSuccess,\n ownerId,\n pageProperties,\n setManageTemplatePane,\n setPageProperties,\n templatesData,\n type,\n }}\n />\n <AddEdit\n {...{\n addText,\n createUpdateTemplate,\n editText,\n handleSubmitTestTemplate,\n isTestMessageLoading,\n isTestingTemplateDisabled,\n manageTemplatePane,\n onMutationSuccess,\n shouldIncludeTestTemplate,\n templateVariables,\n }}\n customFields={manageTemplatesPaneCustomFields}\n onClose={() => setManageTemplatePane(assoc(\"isOpen\", false))}\n />\n </Container>\n );\n};\n\nexport default MessageTemplates;\n"],"names":["MESSAGE_TEMPLATE_INITIAL_STATE","isOpen","isEdit","isDelete","template","useTemplateStore","create","withImmutableActions","set","templateType","setTemplateState","MENU_ITEMS","EDIT","DELETE","STATUS","getMenuItems","_ref","handleDeleteTemplate","handleEditTemplate","handleMarkActiveInactive","status","key","label","t","onClick","equals","RowActions","setManageTemplatePane","ownerId","onMutationSuccess","_useUpdateTemplate","useUpdateTemplate","update","mutate","id","prop","_objectSpread","activeState","payload","onSuccess","_jsx","MoreDropdown","dropdownButtonProps","dropdownProps","strategy","menuItems","renderSearchProps","value","className","placeholder","what","concat","hyphenate","buildTableColumnData","dataIndex","node","title","type","render","name","_jsxs","children","Button","style","values","width","FormikAdaptiveInput","otherProps","_objectWithoutProperties","_excluded","_useFormikContext","useFormikContext","submitForm","handleKeyDown","event","shiftKey","preventDefault","Textarea","resize","size","onKeyDown","formatEditorContent","replaceAll","trim","EMAIL_TEMPLATE_INITIAL_VALUES","subject","body","testEmailAddress","SMS_TEMPLATE_INITIAL_VALUES","testPhoneNumber","EMAIL_TEMPLATE_FORM_SCHEMA","yup","object","string","required","test","SMS_TEMPLATE_FORM_VALIDATION_SCHEMA","SEND_TEST_EMAIL_SCHEMA","email","PHONE_NUMBER_VALIDATION_SCHEMA","isPhoneNumberValid","TestMessage","isEmailTemplate","handleSubmitTestTemplate","isTestMessageLoading","isTestingTemplateDisabled","customFields","_useState","useState","_useState2","_slicedToArray","isTestingTemplateRestricted","setIsTestingTemplateRestricted","isValid","_useTranslation","useTranslation","handleTestValidation","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","target","validate","t0","stop","_x","apply","arguments","isTestTemplateButtonDisabled","stopPropagation","_Fragment","Input","helpText","onKeyUp","disabled","loading","Typography","Form","onClose","_ref$template","createUpdateTemplate","setInitialFocusField","shouldIncludeTestTemplate","templateVariables","editorRef","useRef","isTestTemplateVisible","includes","pick","_ref3","TEMPLATE_INITIAL_VALUES","TEMPLATE_FORM_SCHEMA","handleSubmit","filteredValues","omit","entity","mergeLeft","messageBodyLabel","NeetoUIForm","formProps","noValidate","formikProps","initialValues","validationSchema","validateOnBlur","validateOnChange","onSubmit","ref","FormikEditor","hideSlashCommands","contentClassName","defaults","undefined","rows","DEFAULT_EDITOR_ROW_COUNT","variables","Pane","Footer","ActionBlock","cancelButtonProps","submitButtonProps","AddEdit","manageTemplatePane","addText","editText","initialFocusField","fieldRef","current","initialFocusRef","Header","weight","Body","useFilters","DEFAULT_PAGE_PROPERTIES","pageProperties","setPageProperties","_useQueryParams","useQueryParams","_useQueryParams$searc","searchTerm","filterColumns","filter","searchKeywordProps","setValue","noop","_useState3","buildFiltersFromURL","_toConsumableArray","_useState4","filters","setFilters","useTemplates","pageIndex","index","pageSize","templateParams","page","MESSAGE_TEMPLATES","isEmpty","_useFetchTemplates","useFetchTemplates","_useFetchTemplates$da","data","templatesData","isLoadingTemplates","isLoading","isFetching","_useCreateTemplate","useCreateTemplate","options","_ref2$id","isLoaderVisible","List","labelSingular","isFilterApplied","helpDocUrl","_useDeleteTemplate","useDeleteTemplate","deleteTemplate","isDeleting","isPending","templates","totalCount","isSms","typeLabelSingular","toLowerCase","emptyStateLabel","noDataProps","primaryButtonProps","assoc","Trans","i18nKey","components","Link","href","handleDelete","onSettled","TableWrapper","hasPagination","Table","fixedHeight","currentPageNumber","defaultPageSize","rowData","scroll","x","columnData","handlePageChange","NoData","Alert","isSubmitting","submitButtonLabel","message","MessageTemplates","_helpPopoverProps$hel","_ref$breadcrumbs","breadcrumbs","_ref$type","_ref$handleSubmitTest","_ref$isTestMessageLoa","_ref$shouldIncludeTes","_ref$templateVariable","_ref$ownerId","_ref$isTestingTemplat","_ref$manageTemplatesP","manageTemplatesPaneCustomFields","_ref$onMutationSucces","_ref$helpPopoverProps","helpPopoverProps","isFilterPaneOpen","setIsFilterPaneOpen","_useFilters","_useTemplates","_MESSAGE_TEMPLATES$ty","isNotEmpty","handleActionClick","handleChange","templatesCount","useEffect","shouldShowTemplatesCount","helpLinkProps","Container","NeetoHeader","actionBlock","searchProps","titleHelpPopoverProps","SubHeader","leftActionBlock","component","MESSAGE_TYPES","count","rightActionBlock","RightBlock","dataProps","filterProps","columns","keyword","setIsOpen","onChange","FiltersBar","setIsPaneOpen"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"MessageTemplates.js","sources":["../../app/javascript/src/components/MessageTemplates/constants.js","../../app/javascript/src/stores/useTemplateStore.js","../../app/javascript/src/components/MessageTemplates/List/constants.js","../../app/javascript/src/components/MessageTemplates/List/utils.js","../../app/javascript/src/components/MessageTemplates/List/RowActions.jsx","../../app/javascript/src/components/MessageTemplates/utils.jsx","../../app/javascript/src/components/commons/FormikAdaptiveInput.jsx","../../app/javascript/src/components/MessageTemplates/AddEdit/constants.js","../../app/javascript/src/components/MessageTemplates/AddEdit/TestMessage.jsx","../../app/javascript/src/components/MessageTemplates/AddEdit/Form.jsx","../../app/javascript/src/components/MessageTemplates/AddEdit/index.jsx","../../app/javascript/src/components/MessageTemplates/hooks/useFilter.js","../../app/javascript/src/components/MessageTemplates/hooks/useTemplates.js","../../app/javascript/src/components/MessageTemplates/List/index.jsx","../../app/javascript/src/components/MessageTemplates/index.jsx"],"sourcesContent":["export const MESSAGE_TEMPLATE_INITIAL_STATE = {\n isOpen: false,\n isEdit: false,\n isDelete: false,\n template: {},\n};\n","import { withImmutableActions } from \"neetocommons/react-utils\";\nimport { create } from \"zustand\";\n\n/** @type {import(\"neetocommons/react-utils\").ZustandStoreHook} */\nconst useTemplateStore = create(\n withImmutableActions(set => ({\n templateType: \"\",\n setTemplateState: set,\n }))\n);\n\nexport default useTemplateStore;\n","export const MENU_ITEMS = { EDIT: \"edit\", DELETE: \"delete\", STATUS: \"status\" };\n","import { t } from \"i18next\";\nimport { equals } from \"ramda\";\n\nimport { MENU_ITEMS } from \"./constants\";\n\nexport const getMenuItems = ({\n handleDeleteTemplate,\n handleEditTemplate,\n handleMarkActiveInactive,\n status,\n}) => [\n {\n key: MENU_ITEMS.EDIT,\n label: t(\"neetoMessageTemplate.template.edit\"),\n onClick: handleEditTemplate,\n \"data-cy\": \"message-template-edit-button\",\n },\n {\n key: MENU_ITEMS.STATUS,\n label: equals(status, \"active\")\n ? t(\"neetoMessageTemplate.template.markAsInactive\")\n : t(\"neetoMessageTemplate.template.markAsActive\"),\n onClick: () => handleMarkActiveInactive(status),\n \"data-cy\": \"message-template-status-button\",\n },\n {\n key: MENU_ITEMS.DELETE,\n label: t(\"neetoMessageTemplate.template.delete\"),\n onClick: handleDeleteTemplate,\n \"data-cy\": \"message-template-delete-button\",\n },\n];\n","import MoreDropdown from \"neetomolecules/MoreDropdown\";\nimport { prop } from \"ramda\";\n\nimport { MESSAGE_TEMPLATE_INITIAL_STATE } from \"components/MessageTemplates/constants\";\nimport { useUpdateTemplate } from \"hooks/reactQuery/useTemplatesApi\";\nimport useTemplateStore from \"src/stores/useTemplateStore\";\n\nimport { getMenuItems } from \"./utils\";\n\nconst RowActions = ({\n template,\n setManageTemplatePane,\n ownerId,\n onMutationSuccess,\n}) => {\n const { mutate: update } = useUpdateTemplate(ownerId);\n\n const { status, id } = template;\n\n const templateType = useTemplateStore(prop(\"templateType\"));\n\n const handleEditTemplate = () =>\n setManageTemplatePane({\n ...MESSAGE_TEMPLATE_INITIAL_STATE,\n isOpen: true,\n isEdit: true,\n template,\n });\n\n const handleDeleteTemplate = () =>\n setManageTemplatePane({\n ...MESSAGE_TEMPLATE_INITIAL_STATE,\n isDelete: true,\n template,\n });\n\n const handleMarkActiveInactive = activeState => {\n const status = activeState === \"active\" ? \"inactive\" : \"active\";\n update(\n { payload: { status, templateType }, id },\n { onSuccess: onMutationSuccess }\n );\n };\n\n return (\n <MoreDropdown\n dropdownButtonProps={{ \"data-cy\": \"message-template-dropdown\" }}\n dropdownProps={{ strategy: \"fixed\" }}\n menuItems={getMenuItems({\n handleDeleteTemplate,\n handleEditTemplate,\n handleMarkActiveInactive,\n status,\n })}\n />\n );\n};\n\nexport default RowActions;\n","import { t } from \"i18next\";\nimport { hyphenate } from \"neetocist\";\nimport { Button } from \"neetoui\";\n\nimport { MESSAGE_TEMPLATE_INITIAL_STATE } from \"./constants\";\nimport RowActions from \"./List/RowActions\";\n\nconst handleEditTemplate = (setManageTemplatePane, template) =>\n setManageTemplatePane({\n ...MESSAGE_TEMPLATE_INITIAL_STATE,\n isOpen: true,\n isEdit: true,\n template,\n });\n\nexport const renderSearchProps = (label, value) => ({\n className: \"w-52\",\n placeholder: t(\"neetoMessageTemplate.template.search\", {\n what: label,\n }),\n \"data-cy\": `${hyphenate(value)}-search-input`,\n});\n\nexport const buildTableColumnData = (\n setManageTemplatePane,\n ownerId,\n onMutationSuccess\n) => [\n {\n dataIndex: \"name\",\n key: \"name\",\n node: \"name\",\n title: t(\"neetoMessageTemplate.template.name\"),\n label: t(\"neetoMessageTemplate.template.name\"),\n type: \"text\",\n render: (name, template) => (\n <div className=\"flex items-center justify-between gap-x-3\">\n <Button\n label={name}\n style=\"link\"\n onClick={() => handleEditTemplate(setManageTemplatePane, template)}\n />\n <RowActions\n {...{ onMutationSuccess, ownerId, setManageTemplatePane, template }}\n />\n </div>\n ),\n },\n {\n dataIndex: \"status\",\n key: \"status\",\n node: \"status\",\n title: t(\"neetoMessageTemplate.template.active\"),\n label: t(\"neetoMessageTemplate.template.active\"),\n type: \"single_option\",\n values: [\n { label: \"Yes\", value: \"active\" },\n { label: \"No\", value: \"inactive\" },\n ],\n render: status => (status === \"active\" ? \"Yes\" : \"No\"),\n width: \"20%\",\n },\n];\n","import { useFormikContext } from \"formik\";\nimport { Textarea } from \"neetoui/formik\";\n// eslint-disable-next-line import/extensions\nimport \"stylesheets/application.scss\";\n\nconst FormikAdaptiveInput = ({ label, name, ...otherProps }) => {\n const { submitForm } = useFormikContext();\n\n const handleKeyDown = event => {\n if (event.key !== \"Enter\" || event.shiftKey) return;\n event.preventDefault();\n submitForm();\n };\n\n return (\n <Textarea\n {...{ label, name }}\n className=\"neeto-message-templates-nano-adaptive-input\"\n resize=\"none\"\n size=\"small\"\n onKeyDown={handleKeyDown}\n {...otherProps}\n />\n );\n};\n\nexport default FormikAdaptiveInput;\n","import { t } from \"i18next\";\nimport { isPhoneNumberValid } from \"neetomolecules/PhoneNumber\";\nimport * as yup from \"yup\";\n\n// eslint-disable-next-line @bigbinary/neeto/file-name-and-export-name-standards\nexport const formatEditorContent = value =>\n value?.replaceAll(/<\\/?(?!img)\\w*\\b[^>]*>/gi, \"\").trim();\n\nexport const EMAIL_TEMPLATE_INITIAL_VALUES = {\n name: \"\",\n subject: \"\",\n body: \"\",\n testEmailAddress: \"\",\n};\n\nexport const SMS_TEMPLATE_INITIAL_VALUES = {\n name: \"\",\n body: \"\",\n testPhoneNumber: \"\",\n};\n\nexport const EMAIL_TEMPLATE_FORM_SCHEMA = yup.object({\n name: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.namePresence\")),\n subject: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.subjectPresence\")),\n body: yup\n .string()\n .test(\n \"name\",\n t(\"neetoMessageTemplate.template.validation.bodyPresence\"),\n value => !!formatEditorContent(value)\n ),\n});\n\nexport const SMS_TEMPLATE_FORM_VALIDATION_SCHEMA = yup.object({\n name: yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.namePresence\")),\n body: yup\n .string()\n .test(\n \"body\",\n t(\"neetoMessageTemplate.template.validation.bodyPresence\"),\n value => !!formatEditorContent(value)\n ),\n});\n\nexport const SEND_TEST_EMAIL_SCHEMA = yup\n .string()\n .trim()\n .required(t(\"neetoMessageTemplate.template.validation.emailAddressPresence\"))\n .email(\n t(\"neetoMessageTemplate.template.validation.emailAddressFormatValidation\")\n );\n\nexport const PHONE_NUMBER_VALIDATION_SCHEMA = yup\n .string()\n .test(\n \"testPhoneNumber\",\n t(\"neetoMessageTemplate.template.validation.validPhoneNumber\"),\n value => isPhoneNumberValid(value)\n );\n","import { useState } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { Button, Typography } from \"neetoui\";\nimport { Input } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n PHONE_NUMBER_VALIDATION_SCHEMA,\n SEND_TEST_EMAIL_SCHEMA,\n} from \"./constants\";\n\nconst TestMessage = ({\n isEmailTemplate,\n handleSubmitTestTemplate,\n isTestMessageLoading,\n isTestingTemplateDisabled,\n customFields,\n}) => {\n const [isTestingTemplateRestricted, setIsTestingTemplateRestricted] =\n useState(true);\n const { values, isValid } = useFormikContext();\n\n const { t } = useTranslation();\n\n const handleTestValidation = async event => {\n const {\n target: { value },\n } = event;\n try {\n isEmailTemplate\n ? await SEND_TEST_EMAIL_SCHEMA.validate(value)\n : await PHONE_NUMBER_VALIDATION_SCHEMA.validate(value);\n setIsTestingTemplateRestricted(false);\n } catch {\n setIsTestingTemplateRestricted(true);\n }\n };\n\n const isTestTemplateButtonDisabled =\n !isValid ||\n isTestingTemplateDisabled ||\n isTestingTemplateRestricted ||\n isTestMessageLoading;\n\n const handleKeyDown = event => {\n if (event.key !== \"Enter\") return;\n event.stopPropagation();\n event.preventDefault();\n !isTestTemplateButtonDisabled && handleSubmitTestTemplate(values);\n };\n\n return (\n <>\n <div className=\"neeto-ui-flex left-0 flex items-start gap-x-2\">\n <Input\n data-cy=\"message-template-test-input\"\n {...(!isEmailTemplate && {\n helpText: t(\"neetoMessageTemplate.template.phoneNumberHelpText\"),\n })}\n name={isEmailTemplate ? \"testEmailAddress\" : \"testPhoneNumber\"}\n placeholder={t(\n isEmailTemplate\n ? \"neetoMessageTemplate.template.emailAddress\"\n : \"neetoMessageTemplate.template.phoneNumber\"\n )}\n onKeyDown={handleKeyDown}\n onKeyUp={handleTestValidation}\n />\n <Button\n data-cy=\"message-template-test-button\"\n disabled={isTestTemplateButtonDisabled}\n loading={isTestMessageLoading}\n style=\"primary\"\n type=\"button\"\n label={\n isEmailTemplate\n ? t(\"neetoMessageTemplate.template.sendTestEmail\")\n : t(\"neetoMessageTemplate.template.sendTestSms\")\n }\n onClick={() => handleSubmitTestTemplate(values)}\n />\n </div>\n {!isEmailTemplate && (\n <Typography style=\"body2\">\n {t(\"neetoMessageTemplate.sendMessage.testSmsNote\")}\n </Typography>\n )}\n {customFields}\n </>\n );\n};\n\nexport default TestMessage;\n","import { useRef } from \"react\";\n\nimport { FormikEditor } from \"neetoeditor\";\nimport { Pane } from \"neetoui\";\nimport { Form as NeetoUIForm, Input, ActionBlock } from \"neetoui/formik\";\nimport { equals, includes, mergeLeft, omit, pick, prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport FormikAdaptiveInput from \"components/commons/FormikAdaptiveInput\";\nimport { DEFAULT_EDITOR_ROW_COUNT } from \"components/constants\";\nimport useTemplateStore from \"src/stores/useTemplateStore\";\n\nimport {\n EMAIL_TEMPLATE_FORM_SCHEMA,\n EMAIL_TEMPLATE_INITIAL_VALUES,\n SMS_TEMPLATE_FORM_VALIDATION_SCHEMA,\n SMS_TEMPLATE_INITIAL_VALUES,\n} from \"./constants\";\nimport TestMessage from \"./TestMessage\";\n\nconst Form = ({\n onClose,\n isEdit,\n template = {},\n createUpdateTemplate,\n setInitialFocusField,\n handleSubmitTestTemplate,\n isTestMessageLoading,\n shouldIncludeTestTemplate,\n templateVariables,\n isTestingTemplateDisabled,\n customFields,\n onMutationSuccess,\n}) => {\n const { t } = useTranslation();\n\n const editorRef = useRef(null);\n const templateType = useTemplateStore(prop(\"templateType\"));\n const isEmailTemplate = equals(templateType, \"email_template\");\n const isTestTemplateVisible =\n includes(templateType, [\"sms_template\", \"email_template\"]) &&\n shouldIncludeTestTemplate;\n\n const [TEMPLATE_INITIAL_VALUES, TEMPLATE_FORM_SCHEMA] = isEmailTemplate\n ? [\n {\n ...EMAIL_TEMPLATE_INITIAL_VALUES,\n ...pick([\"name\", \"body\", \"subject\", \"active\"], template),\n },\n EMAIL_TEMPLATE_FORM_SCHEMA,\n ]\n : [\n {\n ...SMS_TEMPLATE_INITIAL_VALUES,\n ...pick([\"name\", \"body\", \"active\"], template),\n },\n SMS_TEMPLATE_FORM_VALIDATION_SCHEMA,\n ];\n\n const handleSubmit = values => {\n const filteredValues = isEmailTemplate\n ? omit([\"name\", \"testEmailAddress\"], values)\n : omit([\"name\", \"testPhoneNumber\"], values);\n\n const payload = {\n templateType,\n name: values.name,\n entity: mergeLeft({ id: template.id }, filteredValues),\n };\n\n createUpdateTemplate(\n { isEdit, payload, id: template.id },\n {\n onSuccess: (...args) => {\n onMutationSuccess(...args);\n onClose();\n },\n }\n );\n };\n\n const messageBodyLabel = isEmailTemplate\n ? t(\"neetoMessageTemplate.template.emailBody\")\n : t(\"neetoMessageTemplate.template.smsBody\");\n\n return (\n <NeetoUIForm\n formProps={{\n noValidate: true,\n className: \"flex w-full flex-col gap-y-4 pb-6\",\n }}\n formikProps={{\n initialValues: TEMPLATE_INITIAL_VALUES,\n validationSchema: TEMPLATE_FORM_SCHEMA,\n validateOnBlur: true,\n validateOnChange: true,\n onSubmit: handleSubmit,\n }}\n >\n <Input\n required\n label={t(\"neetoMessageTemplate.template.templateName\")}\n name=\"name\"\n ref={setInitialFocusField}\n />\n {isEmailTemplate && (\n <FormikAdaptiveInput\n required\n label={t(\"neetoMessageTemplate.template.emailSubject\")}\n name=\"subject\"\n />\n )}\n <FormikEditor\n hideSlashCommands\n required\n contentClassName=\"max-h-40\"\n defaults={isEmailTemplate ? undefined : []}\n label={messageBodyLabel}\n name=\"body\"\n ref={editorRef}\n rows={DEFAULT_EDITOR_ROW_COUNT}\n variables={templateVariables}\n />\n {isTestTemplateVisible && (\n <TestMessage\n {...{\n customFields,\n handleSubmitTestTemplate,\n isEmailTemplate,\n isTestMessageLoading,\n isTestingTemplateDisabled,\n }}\n />\n )}\n <Pane.Footer className=\"absolute bottom-0 left-0\">\n <ActionBlock\n cancelButtonProps={{\n \"data-cy\": \"message-template-reset-button\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-cy\": \"message-template-submit-button\",\n }}\n />\n </Pane.Footer>\n </NeetoUIForm>\n );\n};\nexport default Form;\n","import { useRef } from \"react\";\n\nimport { Pane, Typography } from \"neetoui\";\n\nimport Form from \"./Form\";\n\nconst AddEdit = ({\n onClose,\n createUpdateTemplate,\n manageTemplatePane,\n isTestMessageLoading,\n handleSubmitTestTemplate,\n shouldIncludeTestTemplate,\n addText,\n editText,\n templateVariables,\n isTestingTemplateDisabled,\n customFields,\n onMutationSuccess,\n}) => {\n const initialFocusField = useRef();\n\n const setInitialFocusField = fieldRef =>\n (initialFocusField.current = fieldRef);\n\n const { isOpen, isEdit, template } = manageTemplatePane;\n const label = isEdit ? editText : addText;\n\n return (\n <Pane {...{ isOpen, onClose }} initialFocusRef={initialFocusField}>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {label}\n </Typography>\n </Pane.Header>\n <Pane.Body>\n <Form\n {...{\n createUpdateTemplate,\n customFields,\n handleSubmitTestTemplate,\n isEdit,\n isTestMessageLoading,\n isTestingTemplateDisabled,\n onClose,\n onMutationSuccess,\n setInitialFocusField,\n shouldIncludeTestTemplate,\n template,\n templateVariables,\n }}\n />\n </Pane.Body>\n </Pane>\n );\n};\n\nexport default AddEdit;\n","import { useState } from \"react\";\n\nimport { noop } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { buildFiltersFromURL } from \"neetofilters\";\nimport { prop } from \"ramda\";\n\nimport { DEFAULT_PAGE_PROPERTIES } from \"components/constants\";\nimport { buildTableColumnData } from \"components/MessageTemplates/utils\";\n\nconst useFilters = () => {\n const [pageProperties, setPageProperties] = useState(DEFAULT_PAGE_PROPERTIES);\n\n const { searchTerm = \"\" } = useQueryParams();\n\n const filterColumns = buildTableColumnData().filter(prop(\"node\"));\n const searchKeywordProps = {\n key: \"search_term\",\n node: \"name\",\n value: searchTerm,\n setValue: noop,\n };\n\n const [filters, setFilters] = useState(() =>\n buildFiltersFromURL([...filterColumns, searchKeywordProps])\n );\n\n return {\n filterColumns,\n searchKeywordProps,\n searchTerm,\n filters,\n setFilters,\n pageProperties,\n setPageProperties,\n };\n};\nexport default useFilters;\n","import { isEmpty } from \"ramda\";\n\nimport { MESSAGE_TEMPLATES } from \"components/constants\";\nimport {\n useCreateTemplate,\n useFetchTemplates,\n useUpdateTemplate,\n} from \"hooks/reactQuery/useTemplatesApi\";\n\nconst useTemplates = ({ type, ownerId, filters, pageProperties }) => {\n const { index: pageIndex, size: pageSize } = pageProperties;\n const templateParams = {\n page: pageIndex,\n pageSize,\n filters,\n templateType: MESSAGE_TEMPLATES[type].value,\n ownerId: isEmpty(ownerId) ? undefined : ownerId,\n };\n\n const {\n data: templatesData = {},\n isLoading: isLoadingTemplates,\n isFetching,\n } = useFetchTemplates(templateParams);\n\n const { mutate: create } = useCreateTemplate(ownerId);\n\n const { mutate: update } = useUpdateTemplate(ownerId);\n\n const createUpdateTemplate = ({ isEdit, payload, id = null }, options) =>\n isEdit ? update({ id, payload }, options) : create(payload, options);\n\n const isLoaderVisible = isLoadingTemplates || isFetching;\n\n return {\n templatesData,\n isLoading: isLoaderVisible,\n createUpdateTemplate,\n };\n};\n\nexport default useTemplates;\n","import TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Alert, Table, NoData, Button } from \"neetoui\";\nimport { assoc, isEmpty } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { buildTableColumnData } from \"components/MessageTemplates/utils\";\nimport { useDeleteTemplate } from \"hooks/reactQuery/useTemplatesApi\";\n\nconst List = ({\n setManageTemplatePane,\n templatesData,\n isLoading,\n manageTemplatePane,\n labelSingular,\n setPageProperties,\n pageProperties,\n label,\n addText,\n isFilterApplied,\n ownerId,\n type,\n onMutationSuccess,\n helpDocUrl,\n}) => {\n const { t } = useTranslation();\n const { mutate: deleteTemplate, isPending: isDeleting } =\n useDeleteTemplate(ownerId);\n\n const { templates, totalCount } = templatesData;\n const { template, isDelete } = manageTemplatePane;\n const { index: pageIndex, size: pageSize } = pageProperties;\n const isSms = type === \"sms\";\n const typeLabelSingular = isSms ? labelSingular : labelSingular.toLowerCase();\n const emptyStateLabel = isSms ? label : label.toLowerCase();\n\n const noDataProps = {\n ...(!isFilterApplied && {\n primaryButtonProps: {\n label: addText,\n onClick: () => setManageTemplatePane(assoc(\"isOpen\", true)),\n },\n helpText: (\n <Trans\n i18nKey=\"neetoMessageTemplate.template.linkToHelpArticle\"\n values={{ entity: label }}\n components={{\n Link: <Button href={helpDocUrl} style=\"link\" target=\"_blank\" />,\n }}\n />\n ),\n }),\n title: isFilterApplied\n ? t(\"neetoMessageTemplate.template.filtersEmptyState\", {\n type: emptyStateLabel,\n })\n : t(\"neetoMessageTemplate.template.emptyState\", {\n type: emptyStateLabel,\n }),\n };\n\n const handleDelete = () => {\n deleteTemplate(template.id, {\n onSuccess: onMutationSuccess,\n onSettled: () => {\n setManageTemplatePane(assoc(\"isDelete\", false));\n },\n });\n };\n\n return (\n <>\n {!isEmpty(templates) ? (\n <TableWrapper hasPagination={totalCount > pageSize}>\n <Table\n {...{ totalCount }}\n fixedHeight\n currentPageNumber={pageIndex}\n defaultPageSize={pageSize}\n loading={isLoading}\n rowData={templates}\n scroll={{ x: \"100%\" }}\n columnData={buildTableColumnData(\n setManageTemplatePane,\n ownerId,\n onMutationSuccess\n )}\n handlePageChange={(index, size) =>\n setPageProperties({ index, size })\n }\n />\n </TableWrapper>\n ) : (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData {...noDataProps} />\n </div>\n )}\n <Alert\n isOpen={isDelete}\n isSubmitting={isDeleting}\n submitButtonLabel={t(\"neetoMessageTemplate.template.delete\")}\n message={\n <Trans\n i18nKey=\"neetoMessageTemplate.template.templateDeleteConfirmation\"\n values={{ name: template.name }}\n />\n }\n title={t(\"neetoMessageTemplate.template.deleteTemplate\", {\n label: typeLabelSingular,\n })}\n onClose={() => setManageTemplatePane(assoc(\"isDelete\", false))}\n onSubmit={handleDelete}\n />\n </>\n );\n};\n\nexport default List;\n","import { useEffect, useState } from \"react\";\n\nimport { hyphenate, isNotEmpty, noop } from \"neetocist\";\nimport { Bar as FiltersBar } from \"neetofilters\";\nimport Container from \"neetomolecules/Container\";\nimport NeetoHeader from \"neetomolecules/Header\";\nimport SubHeader from \"neetomolecules/SubHeader\";\nimport { Button, Typography } from \"neetoui\";\nimport { assoc, prop } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n DEFAULT_PAGE_PROPERTIES,\n MESSAGE_TEMPLATES,\n MESSAGE_TYPES,\n} from \"components/constants\";\nimport { renderSearchProps } from \"components/MessageTemplates/utils\";\nimport useTemplateStore from \"src/stores/useTemplateStore\";\n\nimport AddEdit from \"./AddEdit\";\nimport { MESSAGE_TEMPLATE_INITIAL_STATE } from \"./constants\";\nimport useFilters from \"./hooks/useFilter\";\nimport useTemplates from \"./hooks/useTemplates\";\nimport List from \"./List\";\n\nconst MessageTemplates = ({\n breadcrumbs = [],\n type = \"\",\n handleSubmitTestTemplate = noop,\n isTestMessageLoading = false,\n shouldIncludeTestTemplate = true,\n templateVariables = {},\n ownerId = \"\",\n isTestingTemplateDisabled = false,\n manageTemplatesPaneCustomFields = null,\n onMutationSuccess = noop,\n helpPopoverProps = {},\n}) => {\n const [manageTemplatePane, setManageTemplatePane] = useState(\n MESSAGE_TEMPLATE_INITIAL_STATE\n );\n const [isFilterPaneOpen, setIsFilterPaneOpen] = useState(false);\n\n const { t } = useTranslation();\n\n const {\n searchKeywordProps,\n filterColumns,\n searchTerm,\n filters,\n setFilters,\n pageProperties,\n setPageProperties,\n } = useFilters();\n\n const { isLoading, templatesData, createUpdateTemplate } = useTemplates({\n type,\n ownerId,\n filters,\n pageProperties,\n });\n\n const setTemplateState = useTemplateStore(prop(\"setTemplateState\"));\n\n const { label, value, addText, labelSingular, editText } =\n MESSAGE_TEMPLATES[type];\n\n const isFilterApplied = isNotEmpty(filters) || isNotEmpty(searchTerm);\n\n const handleActionClick = () =>\n setManageTemplatePane({ ...MESSAGE_TEMPLATE_INITIAL_STATE, isOpen: true });\n\n const handleChange = filters => {\n setFilters(filters);\n setPageProperties(DEFAULT_PAGE_PROPERTIES);\n };\n\n const templatesCount = templatesData?.totalCount || 0;\n\n useEffect(() => {\n setTemplateState({ templateType: value });\n }, [value]);\n\n const shouldShowTemplatesCount =\n !isLoading && (isFilterApplied || templatesCount > 0);\n\n const helpDocUrl = helpPopoverProps?.helpLinkProps?.href || \"\";\n\n return (\n <Container>\n <NeetoHeader\n {...{ breadcrumbs }}\n size=\"small\"\n title={label}\n actionBlock={\n <Button\n data-cy={`add-${hyphenate(value)}-button`}\n label={addText}\n onClick={handleActionClick}\n />\n }\n searchProps={\n shouldShowTemplatesCount && renderSearchProps(label, value)\n }\n titleHelpPopoverProps={\n helpPopoverProps && {\n ...helpPopoverProps,\n title: helpPopoverProps?.title || label,\n }\n }\n />\n <SubHeader\n className=\"mb-4\"\n leftActionBlock={\n shouldShowTemplatesCount && (\n <Typography component=\"h4\">\n {t(\"neetoMessageTemplate.template.messageTemplatesWithCount\", {\n type: MESSAGE_TYPES[type],\n count: templatesCount,\n })}\n </Typography>\n )\n }\n rightActionBlock={\n <SubHeader.RightBlock\n dataProps={{\n totalCount: isFilterApplied ? null : templatesCount,\n }}\n filterProps={{\n columns: filterColumns,\n isOpen: isFilterPaneOpen,\n keyword: searchKeywordProps,\n setIsOpen: setIsFilterPaneOpen,\n onChange: handleChange,\n }}\n />\n }\n />\n <FiltersBar\n columns={filterColumns}\n keyword={searchKeywordProps}\n setIsPaneOpen={setIsFilterPaneOpen}\n onChange={handleChange}\n />\n <List\n {...{\n addText,\n helpDocUrl,\n isFilterApplied,\n isLoading,\n label,\n labelSingular,\n manageTemplatePane,\n onMutationSuccess,\n ownerId,\n pageProperties,\n setManageTemplatePane,\n setPageProperties,\n templatesData,\n type,\n }}\n />\n <AddEdit\n {...{\n addText,\n createUpdateTemplate,\n editText,\n handleSubmitTestTemplate,\n isTestMessageLoading,\n isTestingTemplateDisabled,\n manageTemplatePane,\n onMutationSuccess,\n shouldIncludeTestTemplate,\n templateVariables,\n }}\n customFields={manageTemplatesPaneCustomFields}\n onClose={() => setManageTemplatePane(assoc(\"isOpen\", false))}\n />\n </Container>\n );\n};\n\nexport default MessageTemplates;\n"],"names":["MESSAGE_TEMPLATE_INITIAL_STATE","isOpen","isEdit","isDelete","template","useTemplateStore","create","withImmutableActions","set","templateType","setTemplateState","MENU_ITEMS","EDIT","DELETE","STATUS","getMenuItems","_ref","handleDeleteTemplate","handleEditTemplate","handleMarkActiveInactive","status","key","label","t","onClick","equals","RowActions","setManageTemplatePane","ownerId","onMutationSuccess","_useUpdateTemplate","useUpdateTemplate","update","mutate","id","prop","_objectSpread","activeState","payload","onSuccess","_jsx","MoreDropdown","dropdownButtonProps","dropdownProps","strategy","menuItems","renderSearchProps","value","className","placeholder","what","concat","hyphenate","buildTableColumnData","dataIndex","node","title","type","render","name","_jsxs","children","Button","style","values","width","FormikAdaptiveInput","otherProps","_objectWithoutProperties","_excluded","_useFormikContext","useFormikContext","submitForm","handleKeyDown","event","shiftKey","preventDefault","Textarea","resize","size","onKeyDown","formatEditorContent","replaceAll","trim","EMAIL_TEMPLATE_INITIAL_VALUES","subject","body","testEmailAddress","SMS_TEMPLATE_INITIAL_VALUES","testPhoneNumber","EMAIL_TEMPLATE_FORM_SCHEMA","yup","object","string","required","test","SMS_TEMPLATE_FORM_VALIDATION_SCHEMA","SEND_TEST_EMAIL_SCHEMA","email","PHONE_NUMBER_VALIDATION_SCHEMA","isPhoneNumberValid","TestMessage","isEmailTemplate","handleSubmitTestTemplate","isTestMessageLoading","isTestingTemplateDisabled","customFields","_useState","useState","_useState2","_slicedToArray","isTestingTemplateRestricted","setIsTestingTemplateRestricted","isValid","_useTranslation","useTranslation","handleTestValidation","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_callee$","_context","prev","next","target","validate","t0","stop","_x","apply","arguments","isTestTemplateButtonDisabled","stopPropagation","_Fragment","Input","helpText","onKeyUp","disabled","loading","Typography","Form","onClose","_ref$template","createUpdateTemplate","setInitialFocusField","shouldIncludeTestTemplate","templateVariables","editorRef","useRef","isTestTemplateVisible","includes","pick","_ref3","TEMPLATE_INITIAL_VALUES","TEMPLATE_FORM_SCHEMA","handleSubmit","filteredValues","omit","entity","mergeLeft","messageBodyLabel","NeetoUIForm","formProps","noValidate","formikProps","initialValues","validationSchema","validateOnBlur","validateOnChange","onSubmit","ref","FormikEditor","hideSlashCommands","contentClassName","defaults","undefined","rows","DEFAULT_EDITOR_ROW_COUNT","variables","Pane","Footer","ActionBlock","cancelButtonProps","submitButtonProps","AddEdit","manageTemplatePane","addText","editText","initialFocusField","fieldRef","current","initialFocusRef","Header","weight","Body","useFilters","DEFAULT_PAGE_PROPERTIES","pageProperties","setPageProperties","_useQueryParams","useQueryParams","_useQueryParams$searc","searchTerm","filterColumns","filter","searchKeywordProps","setValue","noop","_useState3","buildFiltersFromURL","_toConsumableArray","_useState4","filters","setFilters","useTemplates","pageIndex","index","pageSize","templateParams","page","MESSAGE_TEMPLATES","isEmpty","_useFetchTemplates","useFetchTemplates","_useFetchTemplates$da","data","templatesData","isLoadingTemplates","isLoading","isFetching","_useCreateTemplate","useCreateTemplate","options","_ref2$id","isLoaderVisible","List","labelSingular","isFilterApplied","helpDocUrl","_useDeleteTemplate","useDeleteTemplate","deleteTemplate","isDeleting","isPending","templates","totalCount","isSms","typeLabelSingular","toLowerCase","emptyStateLabel","noDataProps","primaryButtonProps","assoc","Trans","i18nKey","components","Link","href","handleDelete","onSettled","TableWrapper","hasPagination","Table","fixedHeight","currentPageNumber","defaultPageSize","rowData","scroll","x","columnData","handlePageChange","NoData","Alert","isSubmitting","submitButtonLabel","message","MessageTemplates","_helpPopoverProps$hel","_ref$breadcrumbs","breadcrumbs","_ref$type","_ref$handleSubmitTest","_ref$isTestMessageLoa","_ref$shouldIncludeTes","_ref$templateVariable","_ref$ownerId","_ref$isTestingTemplat","_ref$manageTemplatesP","manageTemplatesPaneCustomFields","_ref$onMutationSucces","_ref$helpPopoverProps","helpPopoverProps","isFilterPaneOpen","setIsFilterPaneOpen","_useFilters","_useTemplates","_MESSAGE_TEMPLATES$ty","isNotEmpty","handleActionClick","handleChange","templatesCount","useEffect","shouldShowTemplatesCount","helpLinkProps","Container","NeetoHeader","actionBlock","searchProps","titleHelpPopoverProps","SubHeader","leftActionBlock","component","MESSAGE_TYPES","count","rightActionBlock","RightBlock","dataProps","filterProps","columns","keyword","setIsOpen","onChange","FiltersBar","setIsPaneOpen"],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
4
4
|
var neetoCist = require('@bigbinary/neeto-cist');
|
|
5
|
+
var HelpPopover = require('@bigbinary/neeto-molecules/HelpPopover');
|
|
5
6
|
var Pane = require('@bigbinary/neetoui/Pane');
|
|
6
7
|
var Select = require('@bigbinary/neetoui/Select');
|
|
7
8
|
var Spinner = require('@bigbinary/neetoui/Spinner');
|
|
@@ -11,7 +12,7 @@ var Input = require('@bigbinary/neetoui/formik/Input');
|
|
|
11
12
|
var NeetoUIForm = require('@bigbinary/neetoui/formik/Form');
|
|
12
13
|
var ramda = require('ramda');
|
|
13
14
|
var reactI18next = require('react-i18next');
|
|
14
|
-
var utils = require('../utils-
|
|
15
|
+
var utils = require('../utils-D7y24q1q.js');
|
|
15
16
|
var utils$1 = require('../utils-DCNzEjAw.js');
|
|
16
17
|
var useTemplatesApi = require('../useTemplatesApi-CSsaKyRi.js');
|
|
17
18
|
var i18next = require('i18next');
|
|
@@ -68,10 +69,34 @@ var SEND_TO_API_FORM_VALIDATION_SCHEMA = yup__namespace.object({
|
|
|
68
69
|
}))
|
|
69
70
|
})
|
|
70
71
|
});
|
|
72
|
+
var SEND_TO_API_HELP_POPOVER_PROPS = {
|
|
73
|
+
sendToApi: {
|
|
74
|
+
description: i18next.t("neetoMessageTemplate.api.helpPopovers.sendToApi.description"),
|
|
75
|
+
helpLinkProps: {
|
|
76
|
+
"data-cy": "send-to-api-action-help-link"
|
|
77
|
+
},
|
|
78
|
+
popoverProps: {
|
|
79
|
+
position: "top"
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
additionalData: {
|
|
83
|
+
description: i18next.t("neetoMessageTemplate.api.helpPopovers.additionalData.description"),
|
|
84
|
+
helpLinkProps: {
|
|
85
|
+
label: i18next.t("neetoMessageTemplate.template.viewHelpArticle"),
|
|
86
|
+
"data-cy": "send-to-api-additional-data-help-link"
|
|
87
|
+
},
|
|
88
|
+
position: "top"
|
|
89
|
+
}
|
|
90
|
+
};
|
|
71
91
|
|
|
92
|
+
var sanitizeHelpPopoverProps = ramda.map(ramda.unless(ramda.path(["helpLinkProps", "href"]), ramda.omit(["helpLinkProps"])));
|
|
72
93
|
var formatAdditionalData = function formatAdditionalData(additionalData) {
|
|
73
94
|
return neetoCist.isPresent(additionalData) ? additionalData : [utils.ADDITIONAL_DATA_INITIAL_VALUE];
|
|
74
95
|
};
|
|
96
|
+
var buildHelpPopoverProps = function buildHelpPopoverProps(popoverProps) {
|
|
97
|
+
var combinedProps = ramda.mergeDeepLeft(popoverProps, SEND_TO_API_HELP_POPOVER_PROPS);
|
|
98
|
+
return sanitizeHelpPopoverProps(combinedProps);
|
|
99
|
+
};
|
|
75
100
|
|
|
76
101
|
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; }
|
|
77
102
|
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; }
|
|
@@ -95,6 +120,8 @@ var SendToApiForm = function SendToApiForm(_ref) {
|
|
|
95
120
|
isSubmitting = _ref.isSubmitting,
|
|
96
121
|
_ref$canManageTemplat = _ref.canManageTemplates,
|
|
97
122
|
canManageTemplates = _ref$canManageTemplat === void 0 ? true : _ref$canManageTemplat,
|
|
123
|
+
_ref$helpPopoverProps = _ref.helpPopoverProps,
|
|
124
|
+
helpPopoverProps = _ref$helpPopoverProps === void 0 ? {} : _ref$helpPopoverProps,
|
|
98
125
|
setFocusField = _ref.paneProps.setFocusField;
|
|
99
126
|
var _useTranslation = reactI18next.useTranslation(),
|
|
100
127
|
t = _useTranslation.t;
|
|
@@ -132,6 +159,9 @@ var SendToApiForm = function SendToApiForm(_ref) {
|
|
|
132
159
|
return hasContent && isContentDifferentFromTemplate;
|
|
133
160
|
};
|
|
134
161
|
var isTemplateSelectionEnabled = neetoCist.isPresent(templates);
|
|
162
|
+
var _buildHelpPopoverProp = buildHelpPopoverProps(helpPopoverProps),
|
|
163
|
+
sendToApiHelpPopoverProps = _buildHelpPopoverProp.sendToApi,
|
|
164
|
+
additionalDataHelpPopoverProps = _buildHelpPopoverProp.additionalData;
|
|
135
165
|
if (isLoadingTemplates) {
|
|
136
166
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
137
167
|
className: "flex h-full w-full items-center justify-center",
|
|
@@ -140,10 +170,12 @@ var SendToApiForm = function SendToApiForm(_ref) {
|
|
|
140
170
|
}
|
|
141
171
|
return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
142
172
|
children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Header, {
|
|
143
|
-
children: /*#__PURE__*/jsxRuntime.
|
|
173
|
+
children: /*#__PURE__*/jsxRuntime.jsxs(Typography, {
|
|
144
174
|
style: "h2",
|
|
145
175
|
weight: "semibold",
|
|
146
|
-
children: t("neetoMessageTemplate.api.sendToApi")
|
|
176
|
+
children: [t("neetoMessageTemplate.api.sendToApi"), /*#__PURE__*/jsxRuntime.jsx(HelpPopover, _objectSpread({
|
|
177
|
+
className: "ml-2"
|
|
178
|
+
}, sendToApiHelpPopoverProps))]
|
|
147
179
|
})
|
|
148
180
|
}), /*#__PURE__*/jsxRuntime.jsx(NeetoUIForm, {
|
|
149
181
|
formikProps: {
|
|
@@ -178,7 +210,13 @@ var SendToApiForm = function SendToApiForm(_ref) {
|
|
|
178
210
|
ref: isTemplateSelectionEnabled ? null : setFocusField
|
|
179
211
|
}), /*#__PURE__*/jsxRuntime.jsx(utils.KeyValuePairs, {
|
|
180
212
|
label: t("neetoMessageTemplate.api.additionalData"),
|
|
181
|
-
name: "additionalData"
|
|
213
|
+
name: "additionalData",
|
|
214
|
+
labelProps: {
|
|
215
|
+
className: "ml-2",
|
|
216
|
+
helpIconProps: {
|
|
217
|
+
popoverProps: additionalDataHelpPopoverProps
|
|
218
|
+
}
|
|
219
|
+
}
|
|
182
220
|
}), canManageTemplates && shouldShowSaveAsTemplate(values) && /*#__PURE__*/jsxRuntime.jsx(utils$1.SaveAsTemplate, {})]
|
|
183
221
|
})
|
|
184
222
|
}), /*#__PURE__*/jsxRuntime.jsx(Pane.Footer, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SendToApiPane.js","sources":["../../app/javascript/src/components/Api/SendToApiPane/constants.js","../../app/javascript/src/components/Api/SendToApiPane/utils.js","../../app/javascript/src/components/Api/SendToApiPane/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nimport { ADDITIONAL_DATA_INITIAL_VALUE, VALID_URL_REGEX } from \"../constants\";\n\nexport const SEND_TO_API_FORM_INITIAL_VALUES = {\n endpoint: \"\",\n additionalData: [ADDITIONAL_DATA_INITIAL_VALUE],\n shouldSaveAsTemplate: false,\n templateName: \"\",\n};\n\nexport const SEND_TO_API_FORM_VALIDATION_SCHEMA = yup.object({\n endpoint: yup\n .string()\n .required(t(\"neetoMessageTemplate.api.validation.endpointPresence\"))\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n additionalData: yup\n .array()\n .of(yup.object({ key: yup.string(), value: yup.string() })),\n templateName: yup.string().when(\"shouldSaveAsTemplate\", {\n is: true,\n then: yup.string().required(\n t(\"neetoMessageTemplate.template.validation.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.templateName\"),\n })\n ),\n }),\n});\n","import { isPresent } from \"neetocist\";\n\nimport { ADDITIONAL_DATA_INITIAL_VALUE } from \"../constants\";\n\nexport const formatAdditionalData = additionalData =>\n isPresent(additionalData) ? additionalData : [ADDITIONAL_DATA_INITIAL_VALUE];\n","import { findBy, isPresent, renameKeys } from \"neetocist\";\nimport { Pane, Select, Spinner, Typography } from \"neetoui\";\nimport { ActionBlock, Input, Form as NeetoUIForm } from \"neetoui/formik\";\nimport { equals, modify } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SAMPLE_URL } from \"components/Api/ApiTemplates/constants\";\nimport { API_TEMPLATE_TYPE } from \"components/Api/constants\";\nimport { rejectEmptyKeyValuePairs } from \"components/Api/utils\";\nimport KeyValuePairs from \"components/commons/KeyValuePairs\";\nimport SaveAsTemplate from \"components/commons/SaveAsTemplate\";\nimport { areValuesEqual } from \"components/utils\";\nimport { useFetchTemplates } from \"hooks/reactQuery/useTemplatesApi\";\n\nimport {\n SEND_TO_API_FORM_INITIAL_VALUES,\n SEND_TO_API_FORM_VALIDATION_SCHEMA,\n} from \"./constants\";\nimport { formatAdditionalData } from \"./utils\";\n\nconst SendToApiPane = props => {\n const { isOpen, onClose } = props;\n\n return (\n <Pane {...{ isOpen, onClose }}>\n {paneProps => <SendToApiForm {...{ ...props, paneProps }} />}\n </Pane>\n );\n};\n\nconst SendToApiForm = ({\n ownerId,\n onClose,\n onSubmit,\n isSubmitting,\n canManageTemplates = true,\n paneProps: { setFocusField },\n}) => {\n const { t } = useTranslation();\n\n const { data: { templates = [] } = {}, isLoading: isLoadingTemplates } =\n useFetchTemplates({\n status: \"active\",\n templateType: API_TEMPLATE_TYPE,\n ownerId,\n });\n\n const handleTemplateChange = (setValues, values, option) => {\n if (!option) return;\n\n const template = findBy({ id: option.value }, templates);\n\n setValues({\n ...values,\n ...modify(\"additionalData\", formatAdditionalData, template),\n });\n };\n\n const handleSubmit = formValues => {\n const additionalDataModifiedFormValues = modify(\n \"additionalData\",\n rejectEmptyKeyValuePairs,\n formValues\n );\n\n onSubmit(additionalDataModifiedFormValues);\n };\n\n const shouldShowSaveAsTemplate = ({ id, endpoint, additionalData } = {}) => {\n const template = findBy({ id }, templates);\n const hasContent =\n isPresent(endpoint) ||\n isPresent(rejectEmptyKeyValuePairs(additionalData));\n\n const isContentDifferentFromTemplate = !(\n areValuesEqual(template?.endpoint, endpoint) &&\n equals(template?.additionalData, additionalData)\n );\n\n return hasContent && isContentDifferentFromTemplate;\n };\n\n const isTemplateSelectionEnabled = isPresent(templates);\n\n if (isLoadingTemplates) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoMessageTemplate.api.sendToApi\")}\n </Typography>\n </Pane.Header>\n <NeetoUIForm\n formikProps={{\n initialValues: SEND_TO_API_FORM_INITIAL_VALUES,\n validationSchema: SEND_TO_API_FORM_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ values, setValues }) => (\n <>\n <Pane.Body>\n <div className=\"w-full space-y-5\">\n {isTemplateSelectionEnabled && (\n <Select\n innerRef={setFocusField}\n isLoading={isLoadingTemplates}\n label={t(\"neetoMessageTemplate.template.title\")}\n options={renameKeys(\n { name: \"label\", id: \"value\" },\n templates\n )}\n placeholder={t(\n \"neetoMessageTemplate.sendMessage.selectTemplate\"\n )}\n onChange={template =>\n handleTemplateChange(setValues, values, template)\n }\n />\n )}\n <Input\n required\n label={t(\"neetoMessageTemplate.api.endpoint\")}\n name=\"endpoint\"\n placeholder={SAMPLE_URL}\n ref={isTemplateSelectionEnabled ? null : setFocusField}\n />\n <KeyValuePairs\n label={t(\"neetoMessageTemplate.api.additionalData\")}\n name=\"additionalData\"\n />\n {canManageTemplates && shouldShowSaveAsTemplate(values) && (\n <SaveAsTemplate />\n )}\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{\n onClick: onClose,\n \"data-cy\": \"api-template-cancel-button\",\n }}\n submitButtonProps={{\n label: t(\"neetoMessageTemplate.template.send\"),\n \"data-cy\": \"api-template-send-button\",\n }}\n />\n </Pane.Footer>\n </>\n )}\n </NeetoUIForm>\n </>\n );\n};\n\nexport default SendToApiPane;\n"],"names":["SEND_TO_API_FORM_INITIAL_VALUES","endpoint","additionalData","ADDITIONAL_DATA_INITIAL_VALUE","shouldSaveAsTemplate","templateName","SEND_TO_API_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","matches","VALID_URL_REGEX","array","of","key","value","when","is","then","entity","formatAdditionalData","isPresent","SendToApiPane","props","isOpen","onClose","_jsx","Pane","children","paneProps","SendToApiForm","_objectSpread","_ref","ownerId","onSubmit","isSubmitting","_ref$canManageTemplat","canManageTemplates","setFocusField","_useTranslation","useTranslation","_useFetchTemplates","useFetchTemplates","status","templateType","API_TEMPLATE_TYPE","_useFetchTemplates$da","data","_useFetchTemplates$da2","_useFetchTemplates$da3","templates","isLoadingTemplates","isLoading","handleTemplateChange","setValues","values","option","template","findBy","id","modify","handleSubmit","formValues","additionalDataModifiedFormValues","rejectEmptyKeyValuePairs","shouldShowSaveAsTemplate","_ref2","arguments","length","undefined","hasContent","isContentDifferentFromTemplate","areValuesEqual","equals","isTemplateSelectionEnabled","className","Spinner","_jsxs","_Fragment","Header","Typography","style","weight","NeetoUIForm","formikProps","initialValues","validationSchema","_ref3","Body","Select","innerRef","label","options","renameKeys","name","placeholder","onChange","Input","SAMPLE_URL","ref","KeyValuePairs","SaveAsTemplate","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,IAAMA,+BAA+B,GAAG;AAC7CC,EAAAA,QAAQ,EAAE,EAAE;EACZC,cAAc,EAAE,CAACC,mCAA6B,CAAC;AAC/CC,EAAAA,oBAAoB,EAAE,KAAK;AAC3BC,EAAAA,YAAY,EAAE;AAChB,CAAC;AAEM,IAAMC,kCAAkC,GAAGC,cAAG,CAACC,MAAM,CAAC;EAC3DP,QAAQ,EAAEM,cAAG,CACVE,MAAM,EAAE,CACRC,QAAQ,CAACC,SAAC,CAAC,sDAAsD,CAAC,CAAC,CACnEC,OAAO,CACNC,qBAAe,EACfF,SAAC,CAAC,mDAAmD,CACvD,CAAC;AACHT,EAAAA,cAAc,EAAEK,cAAG,CAChBO,KAAK,EAAE,CACPC,EAAE,CAACR,cAAG,CAACC,MAAM,CAAC;AAAEQ,IAAAA,GAAG,EAAET,cAAG,CAACE,MAAM,EAAE;AAAEQ,IAAAA,KAAK,EAAEV,cAAG,CAACE,MAAM;AAAG,GAAC,CAAC,CAAC;EAC7DJ,YAAY,EAAEE,cAAG,CAACE,MAAM,EAAE,CAACS,IAAI,CAAC,sBAAsB,EAAE;AACtDC,IAAAA,EAAE,EAAE,IAAI;AACRC,IAAAA,IAAI,EAAEb,cAAG,CAACE,MAAM,EAAE,CAACC,QAAQ,CACzBC,SAAC,CAAC,yDAAyD,EAAE;MAC3DU,MAAM,EAAEV,SAAC,CAAC,4CAA4C;AACxD,KAAC,CACH;GACD;AACH,CAAC,CAAC;;AC3BK,IAAMW,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGpB,cAAc,EAAA;EAAA,OAChDqB,mBAAS,CAACrB,cAAc,CAAC,GAAGA,cAAc,GAAG,CAACC,mCAA6B,CAAC;AAAA,CAAA;;;;ACe9E,IAAMqB,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,KAAK,EAAI;AAC7B,EAAA,IAAQC,MAAM,GAAcD,KAAK,CAAzBC,MAAM;IAAEC,OAAO,GAAKF,KAAK,CAAjBE,OAAO;EAEvB,oBACEC,cAAA,CAACC,IAAI,EAAA;AAAOH,IAAAA,MAAM,EAANA,MAAM;AAAEC,IAAAA,OAAO,EAAPA,OAAO;IAAAG,QAAA,EACxB,SAAAA,QAAAA,CAAAC,SAAS,EAAA;MAAA,oBAAIH,cAAA,CAACI,aAAa,EAAAC,aAAA,KAAAA,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAUR,KAAK,CAAA,EAAA,EAAA,EAAA;AAAEM,QAAAA,SAAS,EAATA;AAAS,OAAA,CAAA,CAAK,CAAC;AAAA;AAAA,GACxD,CAAC;AAEX;AAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAAE,IAAA,EAOb;AAAA,EAAA,IANJC,OAAO,GAAAD,IAAA,CAAPC,OAAO;IACPR,OAAO,GAAAO,IAAA,CAAPP,OAAO;IACPS,QAAQ,GAAAF,IAAA,CAARE,QAAQ;IACRC,YAAY,GAAAH,IAAA,CAAZG,YAAY;IAAAC,qBAAA,GAAAJ,IAAA,CACZK,kBAAkB;AAAlBA,IAAAA,kBAAkB,GAAAD,qBAAA,KAAG,KAAA,CAAA,GAAA,IAAI,GAAAA,qBAAA;AACZE,IAAAA,aAAa,GAAAN,IAAA,CAA1BH,SAAS,CAAIS,aAAa;AAE1B,EAAA,IAAAC,eAAA,GAAcC,2BAAc,EAAE;IAAtB/B,CAAC,GAAA8B,eAAA,CAAD9B,CAAC;EAET,IAAAgC,kBAAA,GACEC,iCAAiB,CAAC;AAChBC,MAAAA,MAAM,EAAE,QAAQ;AAChBC,MAAAA,YAAY,EAAEC,uBAAiB;AAC/BZ,MAAAA,OAAO,EAAPA;AACF,KAAC,CAAC;IAAAa,qBAAA,GAAAL,kBAAA,CALIM,IAAI;AAAAC,IAAAA,sBAAA,GAAAF,qBAAA,KAAA,KAAA,CAAA,GAAuB,EAAE,GAAAA,qBAAA;IAAAG,sBAAA,GAAAD,sBAAA,CAArBE,SAAS;AAATA,IAAAA,SAAS,GAAAD,sBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,sBAAA;IAAoBE,kBAAkB,GAAAV,kBAAA,CAA7BW,SAAS;EAOhD,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAIC,SAAS,EAAEC,MAAM,EAAEC,MAAM,EAAK;IAC1D,IAAI,CAACA,MAAM,EAAE;IAEb,IAAMC,QAAQ,GAAGC,gBAAM,CAAC;MAAEC,EAAE,EAAEH,MAAM,CAACzC;KAAO,EAAEmC,SAAS,CAAC;AAExDI,IAAAA,SAAS,CAAAvB,aAAA,CAAAA,aAAA,CAAA,EAAA,EACJwB,MAAM,CACNK,EAAAA,YAAM,CAAC,gBAAgB,EAAExC,oBAAoB,EAAEqC,QAAQ,CAAC,CAC5D,CAAC;GACH;AAED,EAAA,IAAMI,YAAY,GAAG,SAAfA,YAAYA,CAAGC,UAAU,EAAI;IACjC,IAAMC,gCAAgC,GAAGH,YAAM,CAC7C,gBAAgB,EAChBI,8BAAwB,EACxBF,UACF,CAAC;IAED5B,QAAQ,CAAC6B,gCAAgC,CAAC;GAC3C;AAED,EAAA,IAAME,wBAAwB,GAAG,SAA3BA,wBAAwBA,GAA8C;AAAA,IAAA,IAAAC,KAAA,GAAAC,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAP,EAAE;MAAnCR,EAAE,GAAAO,KAAA,CAAFP,EAAE;MAAE5D,QAAQ,GAAAmE,KAAA,CAARnE,QAAQ;MAAEC,cAAc,GAAAkE,KAAA,CAAdlE,cAAc;IAC9D,IAAMyD,QAAQ,GAAGC,gBAAM,CAAC;AAAEC,MAAAA,EAAE,EAAFA;KAAI,EAAET,SAAS,CAAC;AAC1C,IAAA,IAAMoB,UAAU,GACdjD,mBAAS,CAACtB,QAAQ,CAAC,IACnBsB,mBAAS,CAAC2C,8BAAwB,CAAChE,cAAc,CAAC,CAAC;AAErD,IAAA,IAAMuE,8BAA8B,GAAG,EACrCC,sBAAc,CAACf,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAARA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,QAAQ,CAAE1D,QAAQ,EAAEA,QAAQ,CAAC,IAC5C0E,YAAM,CAAChB,QAAQ,KAAA,IAAA,IAARA,QAAQ,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAARA,QAAQ,CAAEzD,cAAc,EAAEA,cAAc,CAAC,CACjD;IAED,OAAOsE,UAAU,IAAIC,8BAA8B;GACpD;AAED,EAAA,IAAMG,0BAA0B,GAAGrD,mBAAS,CAAC6B,SAAS,CAAC;AAEvD,EAAA,IAAIC,kBAAkB,EAAE;AACtB,IAAA,oBACEzB,cAAA,CAAA,KAAA,EAAA;AAAKiD,MAAAA,SAAS,EAAC,gDAAgD;AAAA/C,MAAAA,QAAA,eAC7DF,cAAA,CAACkD,OAAO,EAAE,EAAA;AAAC,KACR,CAAC;AAEV;EAEA,oBACEC,eAAA,CAAAC,mBAAA,EAAA;AAAAlD,IAAAA,QAAA,EACEF,cAAAA,cAAA,CAACC,IAAI,CAACoD,MAAM,EAAA;MAAAnD,QAAA,eACVF,cAAA,CAACsD,UAAU,EAAA;AAACC,QAAAA,KAAK,EAAC,IAAI;AAACC,QAAAA,MAAM,EAAC,UAAU;QAAAtD,QAAA,EACrCnB,CAAC,CAAC,oCAAoC;OAC7B;AAAC,KACF,CAAC,eACdiB,cAAA,CAACyD,WAAW,EAAA;AACVC,MAAAA,WAAW,EAAE;AACXC,QAAAA,aAAa,EAAEvF,+BAA+B;AAC9CwF,QAAAA,gBAAgB,EAAElF,kCAAkC;AACpD8B,QAAAA,QAAQ,EAAE2B;OACV;MAAAjC,QAAA,EAED,SAAAA,QAAAA,CAAA2D,KAAA,EAAA;AAAA,QAAA,IAAGhC,MAAM,GAAAgC,KAAA,CAANhC,MAAM;UAAED,SAAS,GAAAiC,KAAA,CAATjC,SAAS;QAAA,oBACnBuB,eAAA,CAAAC,mBAAA,EAAA;AAAAlD,UAAAA,QAAA,EACEF,cAAAA,cAAA,CAACC,IAAI,CAAC6D,IAAI,EAAA;AAAA5D,YAAAA,QAAA,eACRiD,eAAA,CAAA,KAAA,EAAA;AAAKF,cAAAA,SAAS,EAAC,kBAAkB;AAAA/C,cAAAA,QAAA,EAC9B8C,CAAAA,0BAA0B,iBACzBhD,cAAA,CAAC+D,MAAM,EAAA;AACLC,gBAAAA,QAAQ,EAAEpD,aAAc;AACxBc,gBAAAA,SAAS,EAAED,kBAAmB;AAC9BwC,gBAAAA,KAAK,EAAElF,CAAC,CAAC,qCAAqC,CAAE;gBAChDmF,OAAO,EAAEC,oBAAU,CACjB;AAAEC,kBAAAA,IAAI,EAAE,OAAO;AAAEnC,kBAAAA,EAAE,EAAE;iBAAS,EAC9BT,SACF,CAAE;AACF6C,gBAAAA,WAAW,EAAEtF,CAAC,CACZ,iDACF,CAAE;AACFuF,gBAAAA,QAAQ,EAAE,SAAVA,QAAQA,CAAEvC,QAAQ,EAAA;AAAA,kBAAA,OAChBJ,oBAAoB,CAACC,SAAS,EAAEC,MAAM,EAAEE,QAAQ,CAAC;AAAA;AAClD,eACF,CACF,eACD/B,cAAA,CAACuE,KAAK,EAAA;gBACJzF,QAAQ,EAAA,IAAA;AACRmF,gBAAAA,KAAK,EAAElF,CAAC,CAAC,mCAAmC,CAAE;AAC9CqF,gBAAAA,IAAI,EAAC,UAAU;AACfC,gBAAAA,WAAW,EAAEG,gBAAW;AACxBC,gBAAAA,GAAG,EAAEzB,0BAA0B,GAAG,IAAI,GAAGpC;AAAc,eACxD,CAAC,eACFZ,cAAA,CAAC0E,mBAAa,EAAA;AACZT,gBAAAA,KAAK,EAAElF,CAAC,CAAC,yCAAyC,CAAE;AACpDqF,gBAAAA,IAAI,EAAC;AAAgB,eACtB,CAAC,EACDzD,kBAAkB,IAAI4B,wBAAwB,CAACV,MAAM,CAAC,iBACrD7B,cAAA,CAAC2E,sBAAc,IAAE,CAClB;aACE;AAAC,WACG,CAAC,eACZ3E,cAAA,CAACC,IAAI,CAAC2E,MAAM,EAAA;YAAA1E,QAAA,eACVF,cAAA,CAAC6E,WAAW,EAAA;AACJpE,cAAAA,YAAY,EAAZA,YAAY;AAClBqE,cAAAA,iBAAiB,EAAE;AACjBC,gBAAAA,OAAO,EAAEhF,OAAO;AAChB,gBAAA,SAAS,EAAE;eACX;AACFiF,cAAAA,iBAAiB,EAAE;AACjBf,gBAAAA,KAAK,EAAElF,CAAC,CAAC,oCAAoC,CAAC;AAC9C,gBAAA,SAAS,EAAE;AACb;aACD;AAAC,WACS,CAAC;AAAA,SACd,CAAC;AAAA;AACJ,KACU,CAAC;AAAA,GACd,CAAC;AAEP,CAAC;;;;"}
|
|
1
|
+
{"version":3,"file":"SendToApiPane.js","sources":["../../app/javascript/src/components/Api/SendToApiPane/constants.js","../../app/javascript/src/components/Api/SendToApiPane/utils.js","../../app/javascript/src/components/Api/SendToApiPane/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport * as yup from \"yup\";\n\nimport { ADDITIONAL_DATA_INITIAL_VALUE, VALID_URL_REGEX } from \"../constants\";\n\nexport const SEND_TO_API_FORM_INITIAL_VALUES = {\n endpoint: \"\",\n additionalData: [ADDITIONAL_DATA_INITIAL_VALUE],\n shouldSaveAsTemplate: false,\n templateName: \"\",\n};\n\nexport const SEND_TO_API_FORM_VALIDATION_SCHEMA = yup.object({\n endpoint: yup\n .string()\n .required(t(\"neetoMessageTemplate.api.validation.endpointPresence\"))\n .matches(\n VALID_URL_REGEX,\n t(\"neetoMessageTemplate.api.validation.validEndpoint\")\n ),\n additionalData: yup\n .array()\n .of(yup.object({ key: yup.string(), value: yup.string() })),\n templateName: yup.string().when(\"shouldSaveAsTemplate\", {\n is: true,\n then: yup.string().required(\n t(\"neetoMessageTemplate.template.validation.requiredEntity\", {\n entity: t(\"neetoMessageTemplate.template.templateName\"),\n })\n ),\n }),\n});\n\nexport const SEND_TO_API_HELP_POPOVER_PROPS = {\n sendToApi: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.sendToApi.description\"\n ),\n helpLinkProps: { \"data-cy\": \"send-to-api-action-help-link\" },\n popoverProps: { position: \"top\" },\n },\n additionalData: {\n description: t(\n \"neetoMessageTemplate.api.helpPopovers.additionalData.description\"\n ),\n helpLinkProps: {\n label: t(\"neetoMessageTemplate.template.viewHelpArticle\"),\n \"data-cy\": \"send-to-api-additional-data-help-link\",\n },\n position: \"top\",\n },\n};\n","import { isPresent } from \"neetocist\";\nimport { map, mergeDeepLeft, omit, path, unless } from \"ramda\";\n\nimport { SEND_TO_API_HELP_POPOVER_PROPS } from \"./constants\";\n\nimport { ADDITIONAL_DATA_INITIAL_VALUE } from \"../constants\";\n\nconst sanitizeHelpPopoverProps = map(\n unless(path([\"helpLinkProps\", \"href\"]), omit([\"helpLinkProps\"]))\n);\n\nexport const formatAdditionalData = additionalData =>\n isPresent(additionalData) ? additionalData : [ADDITIONAL_DATA_INITIAL_VALUE];\n\nexport const buildHelpPopoverProps = popoverProps => {\n const combinedProps = mergeDeepLeft(\n popoverProps,\n SEND_TO_API_HELP_POPOVER_PROPS\n );\n\n return sanitizeHelpPopoverProps(combinedProps);\n};\n","import { findBy, isPresent, renameKeys } from \"neetocist\";\nimport HelpPopover from \"neetomolecules/HelpPopover\";\nimport { Pane, Select, Spinner, Typography } from \"neetoui\";\nimport { ActionBlock, Input, Form as NeetoUIForm } from \"neetoui/formik\";\nimport { equals, modify } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { SAMPLE_URL } from \"components/Api/ApiTemplates/constants\";\nimport { API_TEMPLATE_TYPE } from \"components/Api/constants\";\nimport { rejectEmptyKeyValuePairs } from \"components/Api/utils\";\nimport KeyValuePairs from \"components/commons/KeyValuePairs\";\nimport SaveAsTemplate from \"components/commons/SaveAsTemplate\";\nimport { areValuesEqual } from \"components/utils\";\nimport { useFetchTemplates } from \"hooks/reactQuery/useTemplatesApi\";\n\nimport {\n SEND_TO_API_FORM_INITIAL_VALUES,\n SEND_TO_API_FORM_VALIDATION_SCHEMA,\n} from \"./constants\";\nimport { buildHelpPopoverProps, formatAdditionalData } from \"./utils\";\n\nconst SendToApiPane = props => {\n const { isOpen, onClose } = props;\n\n return (\n <Pane {...{ isOpen, onClose }}>\n {paneProps => <SendToApiForm {...{ ...props, paneProps }} />}\n </Pane>\n );\n};\n\nconst SendToApiForm = ({\n ownerId,\n onClose,\n onSubmit,\n isSubmitting,\n canManageTemplates = true,\n helpPopoverProps = {},\n paneProps: { setFocusField },\n}) => {\n const { t } = useTranslation();\n\n const { data: { templates = [] } = {}, isLoading: isLoadingTemplates } =\n useFetchTemplates({\n status: \"active\",\n templateType: API_TEMPLATE_TYPE,\n ownerId,\n });\n\n const handleTemplateChange = (setValues, values, option) => {\n if (!option) return;\n\n const template = findBy({ id: option.value }, templates);\n\n setValues({\n ...values,\n ...modify(\"additionalData\", formatAdditionalData, template),\n });\n };\n\n const handleSubmit = formValues => {\n const additionalDataModifiedFormValues = modify(\n \"additionalData\",\n rejectEmptyKeyValuePairs,\n formValues\n );\n\n onSubmit(additionalDataModifiedFormValues);\n };\n\n const shouldShowSaveAsTemplate = ({ id, endpoint, additionalData } = {}) => {\n const template = findBy({ id }, templates);\n const hasContent =\n isPresent(endpoint) ||\n isPresent(rejectEmptyKeyValuePairs(additionalData));\n\n const isContentDifferentFromTemplate = !(\n areValuesEqual(template?.endpoint, endpoint) &&\n equals(template?.additionalData, additionalData)\n );\n\n return hasContent && isContentDifferentFromTemplate;\n };\n\n const isTemplateSelectionEnabled = isPresent(templates);\n\n const {\n sendToApi: sendToApiHelpPopoverProps,\n additionalData: additionalDataHelpPopoverProps,\n } = buildHelpPopoverProps(helpPopoverProps);\n\n if (isLoadingTemplates) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\" weight=\"semibold\">\n {t(\"neetoMessageTemplate.api.sendToApi\")}\n <HelpPopover className=\"ml-2\" {...sendToApiHelpPopoverProps} />\n </Typography>\n </Pane.Header>\n <NeetoUIForm\n formikProps={{\n initialValues: SEND_TO_API_FORM_INITIAL_VALUES,\n validationSchema: SEND_TO_API_FORM_VALIDATION_SCHEMA,\n onSubmit: handleSubmit,\n }}\n >\n {({ values, setValues }) => (\n <>\n <Pane.Body>\n <div className=\"w-full space-y-5\">\n {isTemplateSelectionEnabled && (\n <Select\n innerRef={setFocusField}\n isLoading={isLoadingTemplates}\n label={t(\"neetoMessageTemplate.template.title\")}\n options={renameKeys(\n { name: \"label\", id: \"value\" },\n templates\n )}\n placeholder={t(\n \"neetoMessageTemplate.sendMessage.selectTemplate\"\n )}\n onChange={template =>\n handleTemplateChange(setValues, values, template)\n }\n />\n )}\n <Input\n required\n label={t(\"neetoMessageTemplate.api.endpoint\")}\n name=\"endpoint\"\n placeholder={SAMPLE_URL}\n ref={isTemplateSelectionEnabled ? null : setFocusField}\n />\n <KeyValuePairs\n label={t(\"neetoMessageTemplate.api.additionalData\")}\n name=\"additionalData\"\n labelProps={{\n className: \"ml-2\",\n helpIconProps: {\n popoverProps: additionalDataHelpPopoverProps,\n },\n }}\n />\n {canManageTemplates && shouldShowSaveAsTemplate(values) && (\n <SaveAsTemplate />\n )}\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n {...{ isSubmitting }}\n cancelButtonProps={{\n onClick: onClose,\n \"data-cy\": \"api-template-cancel-button\",\n }}\n submitButtonProps={{\n label: t(\"neetoMessageTemplate.template.send\"),\n \"data-cy\": \"api-template-send-button\",\n }}\n />\n </Pane.Footer>\n </>\n )}\n </NeetoUIForm>\n </>\n );\n};\n\nexport default SendToApiPane;\n"],"names":["SEND_TO_API_FORM_INITIAL_VALUES","endpoint","additionalData","ADDITIONAL_DATA_INITIAL_VALUE","shouldSaveAsTemplate","templateName","SEND_TO_API_FORM_VALIDATION_SCHEMA","yup","object","string","required","t","matches","VALID_URL_REGEX","array","of","key","value","when","is","then","entity","SEND_TO_API_HELP_POPOVER_PROPS","sendToApi","description","helpLinkProps","popoverProps","position","label","sanitizeHelpPopoverProps","map","unless","path","omit","formatAdditionalData","isPresent","buildHelpPopoverProps","combinedProps","mergeDeepLeft","SendToApiPane","props","isOpen","onClose","_jsx","Pane","children","paneProps","SendToApiForm","_objectSpread","_ref","ownerId","onSubmit","isSubmitting","_ref$canManageTemplat","canManageTemplates","_ref$helpPopoverProps","helpPopoverProps","setFocusField","_useTranslation","useTranslation","_useFetchTemplates","useFetchTemplates","status","templateType","API_TEMPLATE_TYPE","_useFetchTemplates$da","data","_useFetchTemplates$da2","_useFetchTemplates$da3","templates","isLoadingTemplates","isLoading","handleTemplateChange","setValues","values","option","template","findBy","id","modify","handleSubmit","formValues","additionalDataModifiedFormValues","rejectEmptyKeyValuePairs","shouldShowSaveAsTemplate","_ref2","arguments","length","undefined","hasContent","isContentDifferentFromTemplate","areValuesEqual","equals","isTemplateSelectionEnabled","_buildHelpPopoverProp","sendToApiHelpPopoverProps","additionalDataHelpPopoverProps","className","Spinner","_jsxs","_Fragment","Header","Typography","style","weight","HelpPopover","NeetoUIForm","formikProps","initialValues","validationSchema","_ref3","Body","Select","innerRef","options","renameKeys","name","placeholder","onChange","Input","SAMPLE_URL","ref","KeyValuePairs","labelProps","helpIconProps","SaveAsTemplate","Footer","ActionBlock","cancelButtonProps","onClick","submitButtonProps"],"mappings":"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"}
|
package/dist/cjs/index.js
CHANGED
|
@@ -54,8 +54,9 @@ require('@bigbinary/neetoui/Label');
|
|
|
54
54
|
require('@bigbinary/neetoui/formik/Switch');
|
|
55
55
|
require('@bigbinary/neetoui/Textarea');
|
|
56
56
|
require('@bigbinary/neetoui/formik/Select');
|
|
57
|
-
require('../utils-
|
|
57
|
+
require('../utils-D7y24q1q.js');
|
|
58
58
|
require('@bigbinary/neeto-icons/Delete');
|
|
59
|
+
require('@bigbinary/neeto-molecules/HelpPopover');
|
|
59
60
|
|
|
60
61
|
|
|
61
62
|
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/dist/index.js
CHANGED
|
@@ -52,6 +52,7 @@ import '@bigbinary/neetoui/Label';
|
|
|
52
52
|
import '@bigbinary/neetoui/formik/Switch';
|
|
53
53
|
import '@bigbinary/neetoui/Textarea';
|
|
54
54
|
import '@bigbinary/neetoui/formik/Select';
|
|
55
|
-
import './utils-
|
|
55
|
+
import './utils-oljkG5EG.js';
|
|
56
56
|
import '@bigbinary/neeto-icons/Delete';
|
|
57
|
+
import '@bigbinary/neeto-molecules/HelpPopover';
|
|
57
58
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -2,6 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var i18next = require('i18next');
|
|
4
4
|
var yup = require('yup');
|
|
5
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
5
6
|
var formik = require('formik');
|
|
6
7
|
var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
|
|
7
8
|
var Delete = require('@bigbinary/neeto-icons/Delete');
|
|
@@ -107,11 +108,15 @@ var isKeyOrValueNotEmpty = ramda.whereAny({
|
|
|
107
108
|
value: neetoCist.isNotEmpty
|
|
108
109
|
});
|
|
109
110
|
|
|
111
|
+
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; }
|
|
112
|
+
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; }
|
|
110
113
|
var KeyValuePairs = reactUtils.withT(function (_ref) {
|
|
111
114
|
var t = _ref.t,
|
|
112
115
|
name = _ref.name,
|
|
113
116
|
_ref$label = _ref.label,
|
|
114
|
-
label = _ref$label === void 0 ? "" : _ref$label
|
|
117
|
+
label = _ref$label === void 0 ? "" : _ref$label,
|
|
118
|
+
_ref$labelProps = _ref.labelProps,
|
|
119
|
+
labelProps = _ref$labelProps === void 0 ? {} : _ref$labelProps;
|
|
115
120
|
return /*#__PURE__*/jsxRuntime.jsx(formik.FieldArray, {
|
|
116
121
|
name: name,
|
|
117
122
|
children: function children(arrayHelpers) {
|
|
@@ -119,9 +124,9 @@ var KeyValuePairs = reactUtils.withT(function (_ref) {
|
|
|
119
124
|
var showDeleteButton = data.length > 1 || isKeyOrValueNotEmpty(data[0]);
|
|
120
125
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
121
126
|
className: "space-y-2",
|
|
122
|
-
children: [/*#__PURE__*/jsxRuntime.jsx(Label, {
|
|
127
|
+
children: [/*#__PURE__*/jsxRuntime.jsx(Label, _objectSpread(_objectSpread({}, labelProps), {}, {
|
|
123
128
|
children: label
|
|
124
|
-
}), data.map(function (_, index) {
|
|
129
|
+
})), data.map(function (_, index) {
|
|
125
130
|
return /*#__PURE__*/jsxRuntime.jsxs("div", {
|
|
126
131
|
className: "flex h-8 space-x-3",
|
|
127
132
|
children: [/*#__PURE__*/jsxRuntime.jsx(Input, {
|
|
@@ -178,4 +183,4 @@ exports.SAMPLE_URL = SAMPLE_URL;
|
|
|
178
183
|
exports.TEMPLATE_STATUS = TEMPLATE_STATUS;
|
|
179
184
|
exports.VALID_URL_REGEX = VALID_URL_REGEX;
|
|
180
185
|
exports.rejectEmptyKeyValuePairs = rejectEmptyKeyValuePairs;
|
|
181
|
-
//# sourceMappingURL=utils-
|
|
186
|
+
//# sourceMappingURL=utils-D7y24q1q.js.map
|