@bigbinary/neeto-approvals-frontend 1.1.0 → 1.2.1
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/dist/Approvals.js +1088 -0
- package/dist/Approvals.js.map +1 -0
- package/dist/Form.js +219 -0
- package/dist/Form.js.map +1 -0
- package/dist/Public.js +174 -0
- package/dist/Public.js.map +1 -0
- package/dist/RequestDetailsPane.js +26 -0
- package/dist/RequestDetailsPane.js.map +1 -0
- package/dist/cjs/Approvals.js +1136 -0
- package/dist/cjs/Approvals.js.map +1 -0
- package/dist/cjs/Form.js +231 -0
- package/dist/cjs/Form.js.map +1 -0
- package/dist/cjs/Public.js +188 -0
- package/dist/cjs/Public.js.map +1 -0
- package/dist/cjs/RequestDetailsPane.js +32 -0
- package/dist/cjs/RequestDetailsPane.js.map +1 -0
- package/dist/cjs/index.js +62 -0
- package/dist/cjs/index.js.map +1 -0
- package/dist/constants-752da2ba.js +158 -0
- package/dist/constants-752da2ba.js.map +1 -0
- package/dist/constants-d561fb6c.js +194 -0
- package/dist/constants-d561fb6c.js.map +1 -0
- package/dist/index-458211fe.js +271 -0
- package/dist/index-458211fe.js.map +1 -0
- package/dist/index-c6f5a782.js +290 -0
- package/dist/index-c6f5a782.js.map +1 -0
- package/dist/index.js +50 -1919
- package/dist/index.js.map +1 -1
- package/dist/useTemplatesApi-5d82bdca.js +107 -0
- package/dist/useTemplatesApi-5d82bdca.js.map +1 -0
- package/dist/useTemplatesApi-dc60dcdd.js +97 -0
- package/dist/useTemplatesApi-dc60dcdd.js.map +1 -0
- package/package.json +24 -12
- package/dist/index.cjs.js +0 -1979
- package/dist/index.cjs.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Approvals.js","sources":["../app/javascript/src/common/routes.js","../app/javascript/src/common/utils.js","../app/javascript/src/hooks/usePaginate.js","../app/javascript/src/components/Approvals/History/constants.jsx","../app/javascript/src/components/Approvals/History/index.jsx","../app/javascript/src/components/Approvals/PendingRequests/constants.js","../app/javascript/src/components/Approvals/PendingRequests/index.jsx","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../app/javascript/src/components/Approvals/Templates/constants.js","../app/javascript/src/components/Approvals/Templates/MessageEditor.jsx","../app/javascript/src/components/Approvals/Templates/TemplateForm.jsx","../app/javascript/src/components/Approvals/Templates/Form.jsx","../app/javascript/src/components/Approvals/Templates/Create.jsx","../app/javascript/src/components/Approvals/Templates/Edit.jsx","../app/javascript/src/components/Approvals/Templates/Show/Field.jsx","../app/javascript/src/components/Approvals/Templates/Show/index.jsx","../app/javascript/src/utils.jsx","../app/javascript/src/components/Approvals/Templates/Table.jsx","../app/javascript/src/components/Approvals/Templates/utils/columnData.jsx","../app/javascript/src/components/Approvals/Templates/index.jsx","../app/javascript/src/components/Approvals/createRoutes.jsx","../app/javascript/src/components/Approvals/Header.jsx","../app/javascript/src/apis/views.js","../app/javascript/src/hooks/reactQuery/views/useViewsApi.js","../app/javascript/src/components/Approvals/Tab.jsx","../app/javascript/src/components/Approvals/index.jsx"],"sourcesContent":["export const routes = {\n home: \"/\",\n approvals: \"/approvals/\",\n pending: \"pending\",\n history: \"history\",\n templates: {\n index: \"templates\",\n new: \"templates/new\",\n edit: \"templates/:id/edit\",\n },\n public: \"approvals/public/request/:id\",\n};\n","import { isEmpty } from \"ramda\";\n\nexport const hasPermission = (permissions = \"\") => {\n const type = typeof permissions;\n const userPermissions = window.globalProps?.permissions ?? [];\n\n if (Object.is(type, \"string\")) {\n return userPermissions.includes(permissions);\n } else if (Array.isArray(permissions)) {\n return permissions.some(permission => userPermissions.includes(permission));\n }\n\n return false;\n};\n\nexport const isOverflown = ({\n clientWidth,\n clientHeight,\n scrollWidth,\n scrollHeight,\n}) => scrollHeight > clientHeight || scrollWidth > clientWidth;\n\nexport const handleEmptyPage = (data, pageProperties, handlePageChange) => {\n if (isEmpty(data) && pageProperties.page !== 1) {\n handlePageChange(pageProperties.page - 1, pageProperties.pageSize);\n }\n};\n","import { useState } from \"react\";\n\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\n\nconst usePaginate = () => {\n const [pageProperties, setPageProperties] = useState({\n page: DEFAULT_PAGE_INDEX,\n pageSize: DEFAULT_PAGE_SIZE,\n });\n\n const resetPageProperties = () =>\n setPageProperties({\n page: DEFAULT_PAGE_INDEX,\n pageSize: DEFAULT_PAGE_SIZE,\n });\n\n const handlePageChange = (page, pageSize) => {\n setPageProperties({ page, pageSize });\n };\n\n return { pageProperties, resetPageProperties, handlePageChange };\n};\n\nexport default usePaginate;\n","import { t } from \"i18next\";\nimport { capitalize } from \"neetocist\";\nimport DateFormat from \"neetomolecules/DateFormat\";\nimport { Button, Tag } from \"neetoui\";\n\nimport { STATUS_TAG_STYLE } from \"../constants\";\n\nexport const HISTORY_TABLE_COLUMNS = [\n {\n dataIndex: \"approvalLabel\",\n key: \"approvalLabel\",\n sorter: true,\n width: \"25%\",\n title: t(\"neetoApprovals.common.id\"),\n render: (approvalLabel, { requestableUrl }) => {\n const url = new URL(requestableUrl || window.location.origin);\n\n return <Button label={approvalLabel} style=\"link\" to={url.pathname} />;\n },\n },\n {\n dataIndex: \"title\",\n key: \"title\",\n sorter: true,\n width: \"25%\",\n title: t(\"neetoApprovals.common.title\"),\n },\n {\n dataIndex: \"status\",\n key: \"status\",\n sorter: true,\n width: \"25%\",\n title: t(\"neetoApprovals.common.status\"),\n render: status => (\n <Tag label={capitalize(status)} style={STATUS_TAG_STYLE[status]} />\n ),\n },\n {\n dataIndex: \"createdAt\",\n key: \"createdAt\",\n sorter: true,\n width: \"25%\",\n title: t(\"neetoApprovals.common.created\"),\n render: createdAt => (\n <DateFormat.FromNow\n date={createdAt}\n typographyProps={{ style: \"body2\" }}\n />\n ),\n },\n];\n","import { useEffect, useState } from \"react\";\n\nimport { camelToSnakeCase, isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_SIZE, PLURAL } from \"neetocommons/constants\";\nimport { useDebounce } from \"neetocommons/react-utils\";\nimport TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Button, Table, NoData } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { handleEmptyPage } from \"common/utils\";\nimport { useFetchRequests } from \"hooks/reactQuery/requests/useRequestsApi\";\nimport usePaginate from \"hooks/usePaginate\";\n\nimport { HISTORY_TABLE_COLUMNS } from \"./constants\";\n\nimport {\n DEFAULT_FILTER_VALUES,\n SEARCH_DELAY,\n SORT_ORDER,\n STATUSES,\n} from \"../constants\";\nimport RequestDetailsPane from \"../RequestDetailsPane\";\nimport { updateApprovalDetails } from \"../utils\";\n\nconst History = ({ helpDocUrl, requestUrl }) => {\n const [filters, setFilters] = useState(DEFAULT_FILTER_VALUES);\n const debouncedSearchTerm = useDebounce(filters.searchTerm, SEARCH_DELAY);\n const { pageProperties, handlePageChange } = usePaginate();\n const [approvalDetails, setApprovalDetails] = useState({});\n const { t } = useTranslation();\n\n const { data } = useFetchRequests({\n params: {\n ...pageProperties,\n ...filters,\n searchTerm: debouncedSearchTerm.trim(),\n status: [STATUSES.approved, STATUSES.rejected, STATUSES.cancelled],\n },\n requestUrl,\n });\n\n const { requests: approvalHistories = {}, totalCount = 0 } = data || {};\n\n useEffect(() => {\n if (!data) return;\n handleEmptyPage(data?.requests, pageProperties, handlePageChange);\n setApprovalDetails(approvalDetails =>\n updateApprovalDetails({ requestsData: data?.requests, approvalDetails })\n );\n }, [data]);\n\n const handleTableChange = (_, __, sorter) => {\n setFilters({\n ...filters,\n sortBy: camelToSnakeCase(sorter.field || \"\"),\n orderBy: SORT_ORDER[sorter.order],\n });\n };\n\n return (\n <>\n {!isEmpty(approvalHistories) ? (\n <TableWrapper\n className=\"mt-6\"\n hasPagination={totalCount > pageProperties.pageSize}\n >\n <Table\n {...{ handlePageChange, totalCount }}\n allowRowClick\n fixedHeight\n columnData={HISTORY_TABLE_COLUMNS}\n currentPageNumber={pageProperties.page}\n defaultPageSize={pageProperties.pageSize}\n rowData={approvalHistories}\n paginationProps={{\n hideOnSinglePage:\n approvalHistories?.length < DEFAULT_PAGE_SIZE + 1,\n }}\n onChange={handleTableChange}\n onRowClick={(_, approvalDetails) =>\n setApprovalDetails(approvalDetails)\n }\n />\n </TableWrapper>\n ) : (\n <div className=\"flex h-full w-full flex-grow items-center justify-center\">\n <NoData\n helpText={\n <Trans\n i18nKey=\"neetoApprovals.common.noDataHelpTextLearnMore\"\n style=\"link\"\n values={{ entity: t(\"neetoApprovals.common.history\") }}\n components={{\n a: (\n <Button\n style=\"link\"\n target=\"_blank\"\n to={{ pathname: helpDocUrl }}\n />\n ),\n }}\n />\n }\n title={t(\"neetoApprovals.common.notFound_\", {\n what: t(\"neetoApprovals.common.record\", PLURAL),\n })}\n />\n </div>\n )}\n <RequestDetailsPane\n {...{ approvalDetails }}\n isOpen={isPresent(approvalDetails)}\n onClose={() => setApprovalDetails({})}\n />\n </>\n );\n};\n\nexport default History;\n","import { removeBy } from \"neetocist\";\n\nimport { HISTORY_TABLE_COLUMNS } from \"../History/constants\";\n\nexport const PENDING_TABLE_COLUMNS = removeBy(\n { key: \"status\" },\n HISTORY_TABLE_COLUMNS\n);\n","import { useEffect, useState } from \"react\";\n\nimport { camelToSnakeCase, isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_SIZE, PLURAL } from \"neetocommons/constants\";\nimport { useDebounce } from \"neetocommons/react-utils\";\nimport TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Button, Table, NoData } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { handleEmptyPage } from \"common/utils\";\nimport { useFetchRequests } from \"hooks/reactQuery/requests/useRequestsApi\";\nimport usePaginate from \"hooks/usePaginate\";\n\nimport { PENDING_TABLE_COLUMNS } from \"./constants\";\n\nimport {\n DEFAULT_FILTER_VALUES,\n SEARCH_DELAY,\n SORT_ORDER,\n STATUSES,\n} from \"../constants\";\nimport RequestDetailsPane from \"../RequestDetailsPane\";\n\nconst PendingRequests = ({ helpDocUrl, requestUrl }) => {\n const [filters, setFilters] = useState(DEFAULT_FILTER_VALUES);\n const [approvalDetails, setApprovalDetails] = useState({});\n const debouncedSearchTerm = useDebounce(filters.searchTerm, SEARCH_DELAY);\n const { pageProperties, handlePageChange } = usePaginate();\n const { t } = useTranslation();\n\n const { data } = useFetchRequests({\n params: {\n ...pageProperties,\n ...filters,\n searchTerm: debouncedSearchTerm.trim(),\n status: [STATUSES.pending],\n },\n requestUrl,\n });\n\n const { requests: pendingRequests = {}, totalCount = 0 } = data || {};\n\n useEffect(() => {\n if (!data) return;\n handleEmptyPage(data?.requests, pageProperties, handlePageChange);\n }, [data]);\n\n const handleTableChange = (_, __, sorter) => {\n setFilters({\n ...filters,\n sortBy: camelToSnakeCase(sorter.field || \"\"),\n orderBy: SORT_ORDER[sorter.order],\n });\n };\n\n return (\n <>\n {!isEmpty(pendingRequests) ? (\n <TableWrapper\n className=\"mt-6\"\n hasPagination={totalCount > pageProperties.pageSize}\n >\n <Table\n {...{ handlePageChange, totalCount }}\n allowRowClick\n fixedHeight\n columnData={PENDING_TABLE_COLUMNS}\n currentPageNumber={pageProperties.page}\n defaultPageSize={pageProperties.pageSize}\n rowData={pendingRequests}\n paginationProps={{\n hideOnSinglePage: pendingRequests?.length < DEFAULT_PAGE_SIZE + 1,\n }}\n onChange={handleTableChange}\n onRowClick={(_, approvalDetails) =>\n setApprovalDetails(approvalDetails)\n }\n />\n </TableWrapper>\n ) : (\n <div className=\"flex h-full w-full flex-grow items-center justify-center\">\n <NoData\n helpText={\n <Trans\n i18nKey=\"neetoApprovals.common.noDataHelpTextLearnMore\"\n style=\"link\"\n components={{\n a: (\n <Button\n style=\"link\"\n target=\"_blank\"\n to={{ pathname: helpDocUrl }}\n />\n ),\n }}\n values={{\n entity: t(\"neetoApprovals.common.pendingApproval\", PLURAL),\n }}\n />\n }\n title={t(\"neetoApprovals.common.notFound_\", {\n what: t(\"neetoApprovals.common.pendingApproval\", PLURAL),\n })}\n />\n </div>\n )}\n <RequestDetailsPane\n {...{ approvalDetails }}\n isPending\n isOpen={isPresent(approvalDetails)}\n onClose={() => setApprovalDetails({})}\n />\n </>\n );\n};\n\nexport default PendingRequests;\n","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n return target;\n}","import { t } from \"i18next\";\nimport { isEditorEmpty } from \"neetoeditor\";\nimport * as yup from \"yup\";\n\nexport const TEMPLATE_FORM_INITIAL_VALUES = {\n name: \"\",\n description: \"\",\n message: \"\",\n};\n\nexport const TEMPLATE_FORM_VALIDATION_SCHEMA = yup.object().shape({\n name: yup\n .string()\n .trim()\n .required(\n t(\"neetoApprovals.validations.required\", {\n what: t(\"neetoApprovals.common.name\"),\n })\n ),\n message: yup.string().test(\n \"message\",\n t(\"neetoApprovals.validations.required\", {\n what: t(\"neetoApprovals.inputs.labels.message\"),\n }),\n content => !isEditorEmpty(content)\n ),\n});\n","import { withT } from \"neetocommons/react-utils\";\nimport { FormikEditor } from \"neetoeditor\";\n\nconst MessageEditor = withT(({ t, placeholders = [], initialValue = \"\" }) => (\n <FormikEditor\n {...{ initialValue }}\n required\n label={t(\"neetoApprovals.inputs.labels.message\")}\n name=\"message\"\n rows={3}\n variables={placeholders}\n placeholder={t(\"neetoApprovals.inputs.placeholders.enter_\", {\n what: t(\"neetoApprovals.inputs.labels.message\"),\n })}\n />\n));\n\nexport default MessageEditor;\n","import { useFormikContext } from \"formik\";\nimport ToggleFeatureCard from \"neetomolecules/ToggleFeatureCard\";\nimport { Input, Textarea } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport MessageEditor from \"./MessageEditor\";\n\nconst TemplateForm = ({ placeholders, initialData }) => {\n const { t } = useTranslation();\n const { values, setFieldValue } = useFormikContext();\n\n const handleDescriptionToggle = ({ target: { checked } }) => {\n setFieldValue(\"descriptionEnabled\", checked);\n if (!checked) {\n setFieldValue(\"description\", \"\");\n }\n };\n\n return (\n <div className=\"flex w-full flex-col space-y-6\">\n <Input\n autoFocus\n required\n label={t(\"neetoApprovals.common.name\")}\n name=\"name\"\n placeholder={t(\"neetoApprovals.inputs.placeholders.name\")}\n />\n <ToggleFeatureCard\n switchName=\"descriptionEnabled\"\n title={t(\"neetoApprovals.inputs.labels.description\")}\n switchProps={{\n onChange: handleDescriptionToggle,\n tooltipProps: {\n enabledSwitchText: t(\n \"neetoApprovals.templates.descriptionToggle.enable\"\n ),\n disabledSwitchText: t(\n \"neetoApprovals.templates.descriptionToggle.disable\"\n ),\n },\n }}\n >\n {values.descriptionEnabled && (\n <Textarea\n className=\"w-full\"\n name=\"description\"\n placeholder={t(\"neetoApprovals.inputs.placeholders.description\")}\n />\n )}\n </ToggleFeatureCard>\n <MessageEditor {...{ placeholders }} initialValue={initialData.message} />\n </div>\n );\n};\n\nexport default TemplateForm;\n","import { useRef } from \"react\";\n\nimport { isPresent, noop } from \"neetocist\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { Pane, Typography } from \"neetoui\";\nimport { ActionBlock, Form as FormikForm } from \"neetoui/formik\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n TEMPLATE_FORM_INITIAL_VALUES,\n TEMPLATE_FORM_VALIDATION_SCHEMA,\n} from \"./constants\";\nimport TemplateForm from \"./TemplateForm\";\n\nconst Form = ({\n isOpen,\n onClose,\n initialData = {},\n onSubmit = noop,\n isLoading = false,\n placeholders,\n}) => {\n const inputReference = useRef(null);\n\n const { t } = useTranslation();\n\n const header = isEmpty(initialData)\n ? t(\"neetoApprovals.common.addNew_\", {\n what: t(\"neetoApprovals.common.template\", SINGULAR),\n })\n : t(\"neetoApprovals.common.edit_\", {\n what: t(\"neetoApprovals.common.template\", SINGULAR),\n });\n\n return (\n <Pane\n {...{ isOpen, onClose }}\n initialFocusRef={inputReference}\n size=\"large\"\n >\n <Pane.Header>\n <Typography style=\"h2\">{header}</Typography>\n </Pane.Header>\n <FormikForm\n formikProps={{\n enableReinitialize: true,\n initialValues: isPresent(initialData)\n ? initialData\n : TEMPLATE_FORM_INITIAL_VALUES,\n validationSchema: TEMPLATE_FORM_VALIDATION_SCHEMA,\n onSubmit,\n }}\n >\n <Pane.Body>\n <TemplateForm {...{ initialData, placeholders }} />\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n isSubmitting={isLoading}\n cancelButtonProps={{\n \"data-cy\": \"neeto-approvals-templates-close-template-form-btn\",\n onClick: onClose,\n }}\n submitButtonProps={{\n \"data-cy\": \"neeto-approvals-templates-save-template-btn\",\n }}\n />\n </Pane.Footer>\n </FormikForm>\n </Pane>\n );\n};\n\nexport default Form;\n","import { useCreateTemplate } from \"hooks/reactQuery/templates/useTemplatesApi\";\n\nimport Form from \"./Form\";\n\nconst Create = ({ templateUrl, isOpen, onClose, templatePlaceholders }) => {\n const { mutate: createTemplate, isPending } = useCreateTemplate();\n\n const onSubmit = template => {\n const payload = { template };\n\n createTemplate({ url: templateUrl, payload }, { onSuccess: onClose });\n };\n\n return (\n <Form\n {...{ isOpen, onClose, onSubmit }}\n isLoading={isPending}\n placeholders={templatePlaceholders}\n />\n );\n};\n\nexport default Create;\n","import { useUpdateTemplate } from \"hooks/reactQuery/templates/useTemplatesApi\";\n\nimport Form from \"./Form\";\n\nconst Edit = ({\n templateUrl,\n template,\n setTemplate,\n isOpen,\n onClose,\n templatePlaceholders,\n}) => {\n const { mutate: updateTemplate, isPending: isUpdating } = useUpdateTemplate({\n onSuccess: () => setTemplate({}),\n });\n\n const onSubmit = template => {\n const payload = { template };\n updateTemplate({ id: template.id, payload, url: templateUrl });\n };\n\n const initialData = {\n ...template,\n descriptionEnabled: !!template.description,\n };\n\n return (\n <Form\n {...{ initialData, isOpen, onClose, onSubmit }}\n isLoading={isUpdating}\n placeholders={templatePlaceholders}\n />\n );\n};\n\nexport default Edit;\n","import { memo } from \"react\";\n\nimport { Label, Typography } from \"neetoui\";\n\nconst Field = ({ label, value }) => (\n <div className=\"flex flex-col items-start justify-center\">\n <Label className=\"mb-1 font-normal\">{label}</Label>\n <Typography style=\"body1\" weight=\"medium\">\n {value}\n </Typography>\n </div>\n);\n\nexport default memo(Field);\n","import { memo } from \"react\";\n\nimport { EditorContent } from \"neetoeditor\";\nimport { Label, Pane, Typography } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport Field from \"./Field\";\n\nconst MemoizedEditorContent = memo(EditorContent);\n\nconst TemplateDetails = ({ isOpen, onClose, template }) => {\n const { t } = useTranslation();\n const { name, description, message } = template;\n\n return (\n <Pane {...{ isOpen, onClose }}>\n <Pane.Header className=\"space-y-2\">\n <Typography style=\"h2\">\n {t(\"neetoApprovals.common.templateDetails\")}\n </Typography>\n </Pane.Header>\n <Pane.Body className=\"space-y-6\">\n <Field label={t(\"neetoApprovals.common.name\")} value={name} />\n <Field\n label={t(\"neetoApprovals.inputs.labels.description\")}\n value={description}\n />\n <div className=\"flex w-full flex-col space-y-4\">\n <Label className=\"mb-1 font-normal\">\n {t(\"neetoApprovals.inputs.labels.message\")}\n </Label>\n <MemoizedEditorContent\n className=\"neeto-ui-bg-gray-100 neeto-ui-rounded-lg p-3\"\n content={message}\n />\n </div>\n </Pane.Body>\n </Pane>\n );\n};\n\nexport default TemplateDetails;\n","import { Button } from \"neetoui\";\nimport { Trans } from \"react-i18next\";\n\nexport const renderNoDataHelpText = ({ entity, url }) => (\n <Trans\n i18nKey=\"neetoApprovals.common.noDataHelpText\"\n style=\"link\"\n values={{ entity: entity.toLocaleLowerCase() }}\n components={{\n a: <Button style=\"link\" target=\"_blank\" to={{ pathname: url }} />,\n }}\n />\n);\n","import { DEFAULT_PAGE_SIZE, SINGULAR } from \"neetocommons/constants\";\nimport TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Table as NeetoUITable, NoData } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { renderNoDataHelpText } from \"utils\";\n\nimport { SORT_ORDER } from \"../constants\";\n\nconst Table = ({\n entity,\n columnData,\n rowData,\n totalCount,\n filters,\n setFilters,\n setIsPaneOpen,\n helpDocUrl,\n onEditClick,\n onDeleteClick,\n pageProperties,\n ...otherProps\n}) => {\n const { t } = useTranslation();\n\n const columns = columnData({ onEditClick, onDeleteClick });\n\n const handleTableChange = (_, __, sorter) => {\n setFilters({\n ...filters,\n sortBy: sorter.field,\n orderBy: SORT_ORDER[sorter.order],\n });\n };\n\n const noDataProps = {\n primaryButtonProps: {\n label: t(\"neetoApprovals.common.addNew_\", {\n what: t(\"neetoApprovals.common.template\", SINGULAR),\n }),\n onClick: () => setIsPaneOpen(true),\n },\n helpText: renderNoDataHelpText({ entity, url: helpDocUrl }),\n };\n\n if (isEmpty(rowData)) {\n return (\n <div className=\"flex h-full w-full flex-grow items-center justify-center\">\n <NoData\n title={t(\"neetoApprovals.common.notFound_\", { what: entity })}\n {...(!filters.searchTerm && noDataProps)}\n />\n </div>\n );\n }\n\n return (\n <TableWrapper\n className=\"mt-6\"\n hasPagination={totalCount > pageProperties.pageSize}\n >\n <NeetoUITable\n fixedHeight\n columnData={columns}\n currentPageNumber={pageProperties.page}\n defaultPageSize={pageProperties.pageSize}\n scroll={{ x: 0 }}\n tableLayout=\"fixed\"\n paginationProps={{\n hideOnSinglePage: rowData?.length < DEFAULT_PAGE_SIZE + 1,\n }}\n onChange={handleTableChange}\n {...{ rowData, totalCount, ...otherProps }}\n />\n </TableWrapper>\n );\n};\n\nexport default Table;\n","import i18next from \"i18next\";\nimport MoreDropdown from \"neetomolecules/MoreDropdown\";\nimport { Typography } from \"neetoui\";\n\nimport { DATA_CY_KEY } from \"components/Approvals/constants\";\n\nconst columnData = ({ onEditClick, onDeleteClick }) => [\n {\n dataIndex: \"name\",\n key: \"name\",\n sorter: true,\n title: i18next.t(\"neetoApprovals.common.name\"),\n ellipsis: true,\n render: (_, template) => (\n <div className=\"flex items-center justify-between gap-x-3\">\n <Typography className=\"truncate\" style=\"body2\">\n {template.name}\n </Typography>\n <MoreDropdown\n dropdownProps={{\n strategy: \"fixed\",\n onClick: e => e.stopPropagation(),\n }}\n menuItems={[\n {\n key: \"edit\",\n label: i18next.t(\"neetoApprovals.common.edit\"),\n onClick: event => onEditClick(event, template),\n [DATA_CY_KEY]: \"neeto-approvals-templates-edit-template-btn\",\n },\n {\n key: \"delete\",\n label: i18next.t(\"neetoApprovals.common.delete\"),\n onClick: event => onDeleteClick(event, template),\n [DATA_CY_KEY]: \"neeto-approvals-templates-delete-template-btn\",\n },\n ]}\n />\n </div>\n ),\n },\n {\n dataIndex: \"description\",\n key: \"description\",\n title: i18next.t(\"neetoApprovals.inputs.labels.description\"),\n },\n];\n\nexport default columnData;\n","import { useEffect, useState } from \"react\";\n\nimport { SINGULAR, PLURAL } from \"neetocommons/constants\";\nimport { useDebounce } from \"neetocommons/react-utils\";\nimport PageLoader from \"neetomolecules/PageLoader\";\nimport { Alert } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport { handleEmptyPage } from \"common/utils\";\nimport {\n useDeleteTemplate,\n useFetchTemplates,\n} from \"hooks/reactQuery/templates/useTemplatesApi\";\nimport usePaginate from \"hooks/usePaginate\";\n\nimport Create from \"./Create\";\nimport Edit from \"./Edit\";\nimport TemplateDetails from \"./Show\";\nimport Table from \"./Table\";\nimport columnData from \"./utils/columnData\";\n\nimport { DEFAULT_FILTER_VALUES, SEARCH_DELAY } from \"../constants\";\n\nconst Templates = ({\n searchTerm,\n isNewTemplatePaneOpen,\n setIsNewTemplatePaneOpen,\n helpDocUrl,\n ...otherProps\n}) => {\n const [filters, setFilters] = useState(DEFAULT_FILTER_VALUES);\n const [selectedTemplate, setSelectedTemplate] = useState({});\n const [isDeleteAlertOpen, setIsDeleteAlertOpen] = useState(false);\n const [isEditPaneOpen, setIsEditPaneOpen] = useState(false);\n const [isShowPaneOpen, setIsShowPaneOpen] = useState(false);\n\n const { pageProperties, handlePageChange, resetPageProperties } =\n usePaginate();\n\n const { t } = useTranslation();\n\n const debouncedSearchTerm = useDebounce(searchTerm, SEARCH_DELAY);\n\n useEffect(() => {\n resetPageProperties();\n }, [searchTerm]);\n\n const { data, isLoading: isTemplateLoading } = useFetchTemplates({\n ...pageProperties,\n ...filters,\n searchTerm: debouncedSearchTerm.trim(),\n });\n\n const { templates = [], totalCount = 0 } = data || {};\n\n useEffect(() => {\n if (data) {\n handleEmptyPage(data?.templates, pageProperties, handlePageChange);\n }\n }, [data]);\n\n const { mutate: deleteTemplate, isPending: isDeleting } = useDeleteTemplate();\n\n useEffect(() => {\n if (!isEmpty(selectedTemplate)) return;\n setIsDeleteAlertOpen(false);\n setIsEditPaneOpen(false);\n setIsShowPaneOpen(false);\n }, [selectedTemplate]);\n\n const onEditClick = (event, template) => {\n event.stopPropagation();\n\n setSelectedTemplate(template);\n setIsEditPaneOpen(true);\n };\n\n const onRowClick = (_, templateDetails) => {\n setSelectedTemplate(templateDetails);\n setIsShowPaneOpen(true);\n };\n\n const onDeleteClick = (event, template) => {\n event.stopPropagation();\n\n setSelectedTemplate(template);\n setIsDeleteAlertOpen(true);\n };\n\n const handleDelete = templateId => {\n deleteTemplate({ templateId });\n setSelectedTemplate({});\n };\n\n const entity = t(\"neetoApprovals.common.template\", PLURAL);\n\n return (\n <>\n {isTemplateLoading ? (\n <PageLoader />\n ) : (\n <Table\n {...{\n columnData,\n entity,\n filters,\n handlePageChange,\n helpDocUrl,\n onDeleteClick,\n onEditClick,\n onRowClick,\n pageProperties,\n searchTerm,\n setFilters,\n totalCount,\n }}\n rowData={templates}\n setIsPaneOpen={setIsNewTemplatePaneOpen}\n />\n )}\n <Create\n isOpen={isNewTemplatePaneOpen}\n onClose={() => setIsNewTemplatePaneOpen(false)}\n {...otherProps}\n />\n <Edit\n isOpen={isEditPaneOpen}\n setTemplate={setSelectedTemplate}\n template={selectedTemplate}\n {...otherProps}\n onClose={() => setIsEditPaneOpen(false)}\n />\n <Alert\n isOpen={isDeleteAlertOpen}\n isSubmitting={isDeleting}\n submitButtonLabel={t(\"neetoApprovals.buttons.delete\")}\n message={\n <Trans\n i18nKey=\"neetoApprovals.alerts.deleting_\"\n values={{\n what: t(\"neetoApprovals.common.template\", SINGULAR),\n name: selectedTemplate?.name,\n }}\n />\n }\n title={t(\"neetoApprovals.common.delete_\", {\n what: t(\"neetoApprovals.common.template\", SINGULAR),\n })}\n onClose={() => setSelectedTemplate({})}\n onSubmit={() => handleDelete(selectedTemplate?.id)}\n />\n <TemplateDetails\n isOpen={isShowPaneOpen}\n template={selectedTemplate}\n onClose={() => setSelectedTemplate({})}\n />\n </>\n );\n};\n\nexport default Templates;\n","import { t } from \"i18next\";\nimport { PLURAL, SINGULAR } from \"neetocommons/constants\";\nimport { Button } from \"neetoui\";\n\nimport { routes } from \"common/routes\";\n\nimport History from \"./History\";\nimport PendingRequests from \"./PendingRequests\";\nimport Templates from \"./Templates\";\n\nexport const createRoutes = ({\n config,\n isNewTemplatePaneOpen,\n searchTerm,\n setIsNewTemplatePaneOpen,\n}) => [\n {\n component: () => (\n <Templates\n {...{\n isNewTemplatePaneOpen,\n searchTerm,\n setIsNewTemplatePaneOpen,\n ...config,\n }}\n />\n ),\n path: `${config.approvalsPath}${routes.templates.index}`,\n actionBlock: () => (\n <Button\n data-cy=\"neeto-approvals-templates-add-new-button\"\n label={t(\"neetoApprovals.common.addNew_\", {\n what: t(\"neetoApprovals.common.template\", SINGULAR),\n })}\n onClick={() => setIsNewTemplatePaneOpen(true)}\n />\n ),\n searchPlaceholder: t(\"neetoApprovals.inputs.placeholders.search_\", {\n what: t(\"neetoApprovals.common.template\", PLURAL),\n }),\n },\n {\n component: () => <PendingRequests {...config} />,\n path: `${config.approvalsPath}${routes.pending}`,\n },\n {\n component: () => <History {...config} />,\n path: `${config.approvalsPath}${routes.history}`,\n },\n];\n","import { findBy } from \"neetocist\";\nimport { PLURAL } from \"neetocommons/constants\";\nimport NeetoHeader from \"neetomolecules/Header\";\nimport { useTranslation } from \"react-i18next\";\nimport { useLocation } from \"react-router-dom\";\n\nconst Header = ({ appRoutes, breadcrumbs, titleHelpPopoverProps }) => {\n const { t } = useTranslation();\n\n const { pathname } = useLocation();\n\n const currentTab = findBy({ path: pathname }, appRoutes);\n\n return (\n <NeetoHeader\n {...{ breadcrumbs, titleHelpPopoverProps }}\n actionBlock={currentTab?.actionBlock?.()}\n title={t(\"neetoApprovals.common.approval\", PLURAL)}\n searchProps={\n currentTab?.searchPlaceholder && {\n placeholder: currentTab?.searchPlaceholder,\n }\n }\n />\n );\n};\n\nexport default Header;\n","import axios from \"axios\";\n\nimport { BASE_URL } from \"common/constants\";\n\nconst fetch = () => axios.get(`${BASE_URL}/views`);\n\nconst viewsApi = { fetch };\n\nexport default viewsApi;\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport viewsApi from \"apis/views\";\nimport { QUERY_KEYS } from \"common/queryConstants\";\n\nconst useFetchViews = (options = {}) =>\n useQuery({\n queryKey: [QUERY_KEYS.VIEWS],\n queryFn: viewsApi.fetch,\n select: response => response.data || response,\n ...options,\n });\n\nexport { useFetchViews };\n","import { Tab as NeetoUITab } from \"neetoui\";\nimport { keys } from \"ramda\";\nimport { useLocation, useHistory } from \"react-router-dom\";\n\nimport { routes } from \"common/routes\";\nimport { useFetchViews } from \"hooks/reactQuery/views/useViewsApi\";\n\nimport { getApprovalFilter } from \"./utils\";\n\nconst Tab = ({ approvalsPath }) => {\n const { pathname } = useLocation();\n\n const history = useHistory();\n\n const approvalFilter = getApprovalFilter();\n const approvalFilterKeys = keys(approvalFilter);\n const category = pathname.split(routes.approvals)[1]?.toLocaleUpperCase();\n\n const isActive = filter => category.includes(filter);\n\n const getRoute = filter => `${approvalsPath}${filter.toLowerCase()}`;\n\n const { data: { views = {} } = {} } = useFetchViews();\n\n return (\n <NeetoUITab>\n {approvalFilterKeys.map(filter => (\n <NeetoUITab.Item\n active={isActive(filter)}\n count={views[filter?.toLocaleLowerCase()]}\n key={filter}\n label={approvalFilter[filter].label}\n onClick={() => history.push(getRoute(filter))}\n >\n {approvalFilter[filter].label} (\n {views[filter?.toLocaleLowerCase()] || 0})\n </NeetoUITab.Item>\n ))}\n </NeetoUITab>\n );\n};\n\nexport default Tab;\n","import { useState } from \"react\";\n\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport Container from \"neetomolecules/Container\";\nimport { Redirect, Route, Switch } from \"react-router-dom\";\n\nimport { routes } from \"common/routes\";\n\nimport { createRoutes } from \"./createRoutes\";\nimport Header from \"./Header\";\nimport Tabs from \"./Tab\";\n\nconst Approvals = ({ config }) => {\n const { searchTerm = \"\" } = useQueryParams();\n const [isNewTemplatePaneOpen, setIsNewTemplatePaneOpen] = useState(false);\n\n const appRoutes = createRoutes({\n config,\n searchTerm,\n isNewTemplatePaneOpen,\n setIsNewTemplatePaneOpen,\n });\n\n return (\n <div className=\"w-full overflow-y-auto\">\n <Container>\n <Header {...{ appRoutes, ...config }} />\n <Tabs approvalsPath={config.approvalsPath} />\n <Switch>\n {appRoutes.map(({ path, component }) => (\n <Route {...{ component, path }} exact key={path} />\n ))}\n <Redirect\n exact\n from={config.approvalsPath}\n // eslint-disable-next-line @bigbinary/neeto/use-common-routes\n to={`${config.approvalsPath}${routes.pending}`}\n />\n </Switch>\n </Container>\n </div>\n );\n};\n\nexport default Approvals;\n"],"names":["routes","home","approvals","pending","history","templates","index","edit","handleEmptyPage","data","pageProperties","handlePageChange","isEmpty","page","pageSize","usePaginate","_useState","useState","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","_useState2","_slicedToArray","setPageProperties","resetPageProperties","HISTORY_TABLE_COLUMNS","dataIndex","key","sorter","width","title","t","render","approvalLabel","_ref","requestableUrl","url","URL","window","location","origin","_jsx","Button","label","style","to","pathname","status","Tag","capitalize","STATUS_TAG_STYLE","createdAt","DateFormat","FromNow","date","typographyProps","History","helpDocUrl","requestUrl","DEFAULT_FILTER_VALUES","filters","setFilters","debouncedSearchTerm","useDebounce","searchTerm","SEARCH_DELAY","_usePaginate","_useState3","_useState4","approvalDetails","setApprovalDetails","_useTranslation","useTranslation","_useFetchRequests","useFetchRequests","params","_objectSpread","trim","STATUSES","approved","rejected","cancelled","_ref2","_ref2$requests","requests","approvalHistories","_ref2$totalCount","totalCount","useEffect","updateApprovalDetails","requestsData","handleTableChange","_","__","sortBy","camelToSnakeCase","field","orderBy","SORT_ORDER","order","_jsxs","_Fragment","children","TableWrapper","className","hasPagination","Table","allowRowClick","fixedHeight","columnData","currentPageNumber","defaultPageSize","rowData","paginationProps","hideOnSinglePage","length","onChange","onRowClick","NoData","helpText","Trans","i18nKey","values","entity","components","a","target","what","PLURAL","RequestDetailsPane","isOpen","isPresent","onClose","PENDING_TABLE_COLUMNS","removeBy","PendingRequests","pendingRequests","isPending","objectWithoutPropertiesLoose","TEMPLATE_FORM_INITIAL_VALUES","name","description","message","TEMPLATE_FORM_VALIDATION_SCHEMA","yup","object","shape","string","required","test","content","isEditorEmpty","MessageEditor","withT","_ref$placeholders","placeholders","_ref$initialValue","initialValue","FormikEditor","rows","variables","placeholder","TemplateForm","initialData","_useFormikContext","useFormikContext","setFieldValue","handleDescriptionToggle","checked","Input","autoFocus","ToggleFeatureCard","switchName","switchProps","tooltipProps","enabledSwitchText","disabledSwitchText","descriptionEnabled","Textarea","Form","_ref$initialData","_ref$onSubmit","onSubmit","noop","_ref$isLoading","isLoading","inputReference","useRef","header","SINGULAR","Pane","initialFocusRef","size","Header","Typography","FormikForm","formikProps","enableReinitialize","initialValues","validationSchema","Body","Footer","ActionBlock","isSubmitting","cancelButtonProps","onClick","submitButtonProps","Create","templateUrl","templatePlaceholders","_useCreateTemplate","useCreateTemplate","createTemplate","mutate","template","payload","onSuccess","Edit","setTemplate","_useUpdateTemplate","useUpdateTemplate","updateTemplate","isUpdating","id","Field","value","Label","weight","memo","MemoizedEditorContent","EditorContent","TemplateDetails","renderNoDataHelpText","toLocaleLowerCase","setIsPaneOpen","onEditClick","onDeleteClick","otherProps","_objectWithoutProperties","_excluded","columns","noDataProps","primaryButtonProps","NeetoUITable","scroll","x","tableLayout","i18next","ellipsis","MoreDropdown","dropdownProps","strategy","e","stopPropagation","menuItems","_defineProperty","event","DATA_CY_KEY","Templates","isNewTemplatePaneOpen","setIsNewTemplatePaneOpen","selectedTemplate","setSelectedTemplate","_useState5","_useState6","isDeleteAlertOpen","setIsDeleteAlertOpen","_useState7","_useState8","isEditPaneOpen","setIsEditPaneOpen","_useState9","_useState10","isShowPaneOpen","setIsShowPaneOpen","_useFetchTemplates","useFetchTemplates","isTemplateLoading","_ref2$templates","_useDeleteTemplate","useDeleteTemplate","deleteTemplate","isDeleting","templateDetails","handleDelete","templateId","PageLoader","Alert","submitButtonLabel","createRoutes","config","component","path","concat","approvalsPath","actionBlock","searchPlaceholder","_currentTab$actionBlo","appRoutes","breadcrumbs","titleHelpPopoverProps","_useLocation","useLocation","currentTab","findBy","NeetoHeader","call","searchProps","fetch","axios","get","BASE_URL","viewsApi","useFetchViews","options","arguments","undefined","useQuery","queryKey","QUERY_KEYS","VIEWS","queryFn","select","response","Tab","_pathname$split$","useHistory","approvalFilter","getApprovalFilter","approvalFilterKeys","keys","category","split","toLocaleUpperCase","isActive","filter","includes","getRoute","toLowerCase","_useFetchViews","_useFetchViews$data","_useFetchViews$data2","_useFetchViews$data2$","views","NeetoUITab","map","Item","active","count","push","Approvals","_useQueryParams","useQueryParams","_useQueryParams$searc","Container","Tabs","Switch","_createElement","Route","exact","Redirect","from"],"mappings":"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"}
|
package/dist/Form.js
ADDED
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
import { B as BASE_URL, c as _defineProperty, Q as QUERY_KEYS, _ as _slicedToArray, A as APPROVAL_REQUEST_FORM_INITIAL_VALUES, R as REQUEST_FORM_VALIDATION_SCHEMA } from './constants-752da2ba.js';
|
|
2
|
+
import { useRef, useState, useMemo, useEffect } from 'react';
|
|
3
|
+
import { SINGULAR } from '@bigbinary/neeto-commons-frontend/constants';
|
|
4
|
+
import Pane from '@bigbinary/neetoui/Pane';
|
|
5
|
+
import Typography from '@bigbinary/neetoui/Typography';
|
|
6
|
+
import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
|
|
7
|
+
import FormikForm from '@bigbinary/neetoui/formik/Form';
|
|
8
|
+
import { useTranslation } from 'react-i18next';
|
|
9
|
+
import { useFormikContext } from 'formik';
|
|
10
|
+
import { globalProps } from '@bigbinary/neeto-commons-frontend/initializers';
|
|
11
|
+
import FormikEditor from '@bigbinary/neeto-editor/FormikEditor';
|
|
12
|
+
import Select from '@bigbinary/neetoui/Select';
|
|
13
|
+
import { isEmpty } from 'ramda';
|
|
14
|
+
import { useQuery } from '@tanstack/react-query';
|
|
15
|
+
import axios from 'axios';
|
|
16
|
+
import { b as useFetchTemplates, d as useFetchTemplate } from './useTemplatesApi-dc60dcdd.js';
|
|
17
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
18
|
+
import 'i18next';
|
|
19
|
+
import '@bigbinary/neeto-editor/utils';
|
|
20
|
+
import 'yup';
|
|
21
|
+
import '@bigbinary/neeto-commons-frontend/react-utils';
|
|
22
|
+
import '@bigbinary/neeto-commons-frontend/utils';
|
|
23
|
+
|
|
24
|
+
var fetch = function fetch(params) {
|
|
25
|
+
return axios.get("".concat(BASE_URL, "/approvers"), {
|
|
26
|
+
params: params
|
|
27
|
+
});
|
|
28
|
+
};
|
|
29
|
+
var approversApi = {
|
|
30
|
+
fetch: fetch
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
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; }
|
|
34
|
+
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; }
|
|
35
|
+
var useFetchApprovers = function useFetchApprovers() {
|
|
36
|
+
var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
37
|
+
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
38
|
+
return useQuery(_objectSpread({
|
|
39
|
+
queryKey: [QUERY_KEYS.APPROVERS, params],
|
|
40
|
+
queryFn: function queryFn() {
|
|
41
|
+
return approversApi.fetch(params);
|
|
42
|
+
},
|
|
43
|
+
select: function select(response) {
|
|
44
|
+
return response.data || response;
|
|
45
|
+
}
|
|
46
|
+
}, options));
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
var Form$1 = function Form(_ref) {
|
|
50
|
+
var _globalProps$user;
|
|
51
|
+
var _ref$requestableId = _ref.requestableId,
|
|
52
|
+
requestableId = _ref$requestableId === void 0 ? "" : _ref$requestableId,
|
|
53
|
+
selectedTemplateData = _ref.selectedTemplateData,
|
|
54
|
+
setSelectedTemplateData = _ref.setSelectedTemplateData;
|
|
55
|
+
var _useTranslation = useTranslation(),
|
|
56
|
+
t = _useTranslation.t;
|
|
57
|
+
var _useFormikContext = useFormikContext(),
|
|
58
|
+
setFieldValue = _useFormikContext.setFieldValue;
|
|
59
|
+
var inputRef = useRef(null);
|
|
60
|
+
var _useState = useState(null),
|
|
61
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
62
|
+
approverId = _useState2[0],
|
|
63
|
+
setApproverId = _useState2[1];
|
|
64
|
+
var _useState3 = useState(null),
|
|
65
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
66
|
+
templateId = _useState4[0],
|
|
67
|
+
setTemplateId = _useState4[1];
|
|
68
|
+
var params = {
|
|
69
|
+
requestableId: requestableId,
|
|
70
|
+
approverId: approverId,
|
|
71
|
+
approvalRequestorId: (_globalProps$user = globalProps.user) === null || _globalProps$user === void 0 ? void 0 : _globalProps$user.id
|
|
72
|
+
};
|
|
73
|
+
var _useFetchTemplates = useFetchTemplates(),
|
|
74
|
+
_useFetchTemplates$da = _useFetchTemplates.data,
|
|
75
|
+
_useFetchTemplates$da2 = _useFetchTemplates$da === void 0 ? {} : _useFetchTemplates$da,
|
|
76
|
+
_useFetchTemplates$da3 = _useFetchTemplates$da2.templates,
|
|
77
|
+
templates = _useFetchTemplates$da3 === void 0 ? [] : _useFetchTemplates$da3;
|
|
78
|
+
var _useFetchTemplate = useFetchTemplate({
|
|
79
|
+
id: templateId,
|
|
80
|
+
params: params
|
|
81
|
+
}),
|
|
82
|
+
_useFetchTemplate$dat = _useFetchTemplate.data,
|
|
83
|
+
_useFetchTemplate$dat2 = _useFetchTemplate$dat === void 0 ? {} : _useFetchTemplate$dat,
|
|
84
|
+
_useFetchTemplate$dat3 = _useFetchTemplate$dat2.template,
|
|
85
|
+
template = _useFetchTemplate$dat3 === void 0 ? {} : _useFetchTemplate$dat3;
|
|
86
|
+
var _useFetchApprovers = useFetchApprovers(),
|
|
87
|
+
_useFetchApprovers$da = _useFetchApprovers.data,
|
|
88
|
+
_useFetchApprovers$da2 = _useFetchApprovers$da === void 0 ? {} : _useFetchApprovers$da,
|
|
89
|
+
_useFetchApprovers$da3 = _useFetchApprovers$da2.approvers,
|
|
90
|
+
approvers = _useFetchApprovers$da3 === void 0 ? [] : _useFetchApprovers$da3;
|
|
91
|
+
var approverOptions = useMemo(function () {
|
|
92
|
+
return approvers.map(function (approver) {
|
|
93
|
+
return {
|
|
94
|
+
label: approver.name,
|
|
95
|
+
value: approver.id
|
|
96
|
+
};
|
|
97
|
+
});
|
|
98
|
+
}, [approvers]);
|
|
99
|
+
var templateOptions = templates.map(function (template) {
|
|
100
|
+
return {
|
|
101
|
+
label: template.name,
|
|
102
|
+
value: template.id
|
|
103
|
+
};
|
|
104
|
+
});
|
|
105
|
+
var updateMessage = function updateMessage() {
|
|
106
|
+
var _inputRef$current;
|
|
107
|
+
var message = template.parsedMessage || template.message;
|
|
108
|
+
setFieldValue("message", message);
|
|
109
|
+
inputRef === null || inputRef === void 0 || (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 || (_inputRef$current = _inputRef$current.editor) === null || _inputRef$current === void 0 || (_inputRef$current = _inputRef$current.commands) === null || _inputRef$current === void 0 || _inputRef$current.setContent(message);
|
|
110
|
+
};
|
|
111
|
+
var handleTemplateChange = function handleTemplateChange(selectedTemplate) {
|
|
112
|
+
setTemplateId(selectedTemplate.value);
|
|
113
|
+
};
|
|
114
|
+
var handleApproverChange = function handleApproverChange(approver) {
|
|
115
|
+
setApproverId(approver.value);
|
|
116
|
+
setFieldValue("approver", approver);
|
|
117
|
+
};
|
|
118
|
+
useEffect(function () {
|
|
119
|
+
if (isEmpty(template)) return;
|
|
120
|
+
setSelectedTemplateData(template);
|
|
121
|
+
updateMessage();
|
|
122
|
+
}, [template]);
|
|
123
|
+
return /*#__PURE__*/jsxs("div", {
|
|
124
|
+
className: "w-full space-y-6",
|
|
125
|
+
children: [/*#__PURE__*/jsx(Select, {
|
|
126
|
+
label: t("neetoApprovals.select.approval"),
|
|
127
|
+
options: templateOptions,
|
|
128
|
+
onChange: function onChange(selectedTemplate) {
|
|
129
|
+
return handleTemplateChange(selectedTemplate);
|
|
130
|
+
}
|
|
131
|
+
}), (selectedTemplateData === null || selectedTemplateData === void 0 ? void 0 : selectedTemplateData.message) && /*#__PURE__*/jsxs(Fragment, {
|
|
132
|
+
children: [/*#__PURE__*/jsx("div", {
|
|
133
|
+
className: "flex space-x-6",
|
|
134
|
+
children: /*#__PURE__*/jsx(Select, {
|
|
135
|
+
required: true,
|
|
136
|
+
label: t("neetoApprovals.inputs.labels.approver"),
|
|
137
|
+
name: "approver",
|
|
138
|
+
options: approverOptions,
|
|
139
|
+
placeholder: t("neetoApprovals.inputs.placeholders.select_", {
|
|
140
|
+
what: t("neetoApprovals.common.approver", SINGULAR)
|
|
141
|
+
}),
|
|
142
|
+
onChange: handleApproverChange
|
|
143
|
+
})
|
|
144
|
+
}), /*#__PURE__*/jsx("div", {
|
|
145
|
+
className: "space-y-2",
|
|
146
|
+
children: /*#__PURE__*/jsx(FormikEditor, {
|
|
147
|
+
required: true,
|
|
148
|
+
label: t("neetoApprovals.inputs.labels.message"),
|
|
149
|
+
name: "message",
|
|
150
|
+
ref: inputRef,
|
|
151
|
+
rows: 3,
|
|
152
|
+
placeholder: t("neetoApprovals.inputs.placeholders.enter_", {
|
|
153
|
+
what: t("neetoApprovals.inputs.labels.message")
|
|
154
|
+
})
|
|
155
|
+
})
|
|
156
|
+
})]
|
|
157
|
+
})]
|
|
158
|
+
});
|
|
159
|
+
};
|
|
160
|
+
|
|
161
|
+
var Form = function Form(_ref) {
|
|
162
|
+
var isOpen = _ref.isOpen,
|
|
163
|
+
setIsPaneOpen = _ref.setIsPaneOpen,
|
|
164
|
+
onSubmit = _ref.onSubmit,
|
|
165
|
+
isLoading = _ref.isLoading,
|
|
166
|
+
_ref$requestableId = _ref.requestableId,
|
|
167
|
+
requestableId = _ref$requestableId === void 0 ? "" : _ref$requestableId;
|
|
168
|
+
var _useState = useState({}),
|
|
169
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
170
|
+
selectedTemplateData = _useState2[0],
|
|
171
|
+
setSelectedTemplateData = _useState2[1];
|
|
172
|
+
var _useTranslation = useTranslation(),
|
|
173
|
+
t = _useTranslation.t;
|
|
174
|
+
var onClose = function onClose() {
|
|
175
|
+
setIsPaneOpen(false);
|
|
176
|
+
setSelectedTemplateData({});
|
|
177
|
+
};
|
|
178
|
+
var handleSubmit = function handleSubmit(values) {
|
|
179
|
+
onSubmit({
|
|
180
|
+
message: values.message,
|
|
181
|
+
approverId: values.approver.value
|
|
182
|
+
}, selectedTemplateData, onClose);
|
|
183
|
+
};
|
|
184
|
+
return /*#__PURE__*/jsxs(Pane, {
|
|
185
|
+
isOpen: isOpen,
|
|
186
|
+
onClose: onClose,
|
|
187
|
+
children: [/*#__PURE__*/jsx(Pane.Header, {
|
|
188
|
+
children: /*#__PURE__*/jsx(Typography, {
|
|
189
|
+
style: "h2",
|
|
190
|
+
children: t("neetoApprovals.common.add_", {
|
|
191
|
+
what: t("neetoApprovals.common.approval", SINGULAR)
|
|
192
|
+
})
|
|
193
|
+
})
|
|
194
|
+
}), /*#__PURE__*/jsxs(FormikForm, {
|
|
195
|
+
formikProps: {
|
|
196
|
+
onSubmit: handleSubmit,
|
|
197
|
+
initialValues: APPROVAL_REQUEST_FORM_INITIAL_VALUES,
|
|
198
|
+
validationSchema: REQUEST_FORM_VALIDATION_SCHEMA
|
|
199
|
+
},
|
|
200
|
+
children: [/*#__PURE__*/jsx(Pane.Body, {
|
|
201
|
+
children: /*#__PURE__*/jsx(Form$1, {
|
|
202
|
+
requestableId: requestableId,
|
|
203
|
+
selectedTemplateData: selectedTemplateData,
|
|
204
|
+
setSelectedTemplateData: setSelectedTemplateData
|
|
205
|
+
})
|
|
206
|
+
}), /*#__PURE__*/jsx(Pane.Footer, {
|
|
207
|
+
children: /*#__PURE__*/jsx(ActionBlock, {
|
|
208
|
+
cancelButtonProps: {
|
|
209
|
+
onClick: onClose
|
|
210
|
+
},
|
|
211
|
+
isSubmitting: isLoading
|
|
212
|
+
})
|
|
213
|
+
})]
|
|
214
|
+
})]
|
|
215
|
+
});
|
|
216
|
+
};
|
|
217
|
+
|
|
218
|
+
export { Form as default };
|
|
219
|
+
//# sourceMappingURL=Form.js.map
|
package/dist/Form.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Form.js","sources":["../app/javascript/src/apis/approvers.js","../app/javascript/src/hooks/reactQuery/approvers/useApproversApi.js","../app/javascript/src/components/Approvals/ApprovalRequestForm.jsx","../app/javascript/src/components/Approvals/CreateRequestForm.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport { BASE_URL } from \"common/constants\";\n\nconst fetch = params => axios.get(`${BASE_URL}/approvers`, { params });\n\nconst approversApi = { fetch };\n\nexport default approversApi;\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport approversApi from \"apis/approvers\";\nimport { QUERY_KEYS } from \"common/queryConstants\";\n\nconst useFetchApprovers = (params = {}, options = {}) =>\n useQuery({\n queryKey: [QUERY_KEYS.APPROVERS, params],\n queryFn: () => approversApi.fetch(params),\n select: response => response.data || response,\n ...options,\n });\n\nexport { useFetchApprovers };\n","import { useEffect, useMemo, useRef, useState } from \"react\";\n\nimport { useFormikContext } from \"formik\";\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { FormikEditor } from \"neetoeditor\";\nimport { Select } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useFetchApprovers } from \"hooks/reactQuery/approvers/useApproversApi\";\nimport {\n useFetchTemplate,\n useFetchTemplates,\n} from \"hooks/reactQuery/templates/useTemplatesApi\";\n\nconst Form = ({\n requestableId = \"\",\n selectedTemplateData,\n setSelectedTemplateData,\n}) => {\n const { t } = useTranslation();\n\n const { setFieldValue } = useFormikContext();\n const inputRef = useRef(null);\n\n const [approverId, setApproverId] = useState(null);\n const [templateId, setTemplateId] = useState(null);\n\n const params = {\n requestableId,\n approverId,\n approvalRequestorId: globalProps.user?.id,\n };\n\n const { data: { templates = [] } = {} } = useFetchTemplates();\n const { data: { template = {} } = {} } = useFetchTemplate({\n id: templateId,\n params,\n });\n const { data: { approvers = [] } = {} } = useFetchApprovers();\n\n const approverOptions = useMemo(\n () =>\n approvers.map(approver => ({\n label: approver.name,\n value: approver.id,\n })),\n [approvers]\n );\n\n const templateOptions = templates.map(template => ({\n label: template.name,\n value: template.id,\n }));\n\n const updateMessage = () => {\n const message = template.parsedMessage || template.message;\n setFieldValue(\"message\", message);\n inputRef?.current?.editor?.commands?.setContent(message);\n };\n\n const handleTemplateChange = selectedTemplate => {\n setTemplateId(selectedTemplate.value);\n };\n\n const handleApproverChange = approver => {\n setApproverId(approver.value);\n setFieldValue(\"approver\", approver);\n };\n\n useEffect(() => {\n if (isEmpty(template)) return;\n setSelectedTemplateData(template);\n updateMessage();\n }, [template]);\n\n return (\n <div className=\"w-full space-y-6\">\n <Select\n label={t(\"neetoApprovals.select.approval\")}\n options={templateOptions}\n onChange={selectedTemplate => handleTemplateChange(selectedTemplate)}\n />\n {selectedTemplateData?.message && (\n <>\n <div className=\"flex space-x-6\">\n <Select\n required\n label={t(\"neetoApprovals.inputs.labels.approver\")}\n name=\"approver\"\n options={approverOptions}\n placeholder={t(\"neetoApprovals.inputs.placeholders.select_\", {\n what: t(\"neetoApprovals.common.approver\", SINGULAR),\n })}\n onChange={handleApproverChange}\n />\n </div>\n <div className=\"space-y-2\">\n <FormikEditor\n required\n label={t(\"neetoApprovals.inputs.labels.message\")}\n name=\"message\"\n ref={inputRef}\n rows={3}\n placeholder={t(\"neetoApprovals.inputs.placeholders.enter_\", {\n what: t(\"neetoApprovals.inputs.labels.message\"),\n })}\n />\n </div>\n </>\n )}\n </div>\n );\n};\n\nexport default Form;\n","import { useState } from \"react\";\n\nimport { SINGULAR } from \"neetocommons/constants\";\nimport { Pane, Typography } from \"neetoui\";\nimport { ActionBlock, Form as FormikForm } from \"neetoui/formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ApprovalRequestForm from \"./ApprovalRequestForm\";\nimport {\n APPROVAL_REQUEST_FORM_INITIAL_VALUES,\n REQUEST_FORM_VALIDATION_SCHEMA,\n} from \"./constants\";\n\nconst Form = ({\n isOpen,\n setIsPaneOpen,\n onSubmit,\n isLoading,\n requestableId = \"\",\n}) => {\n const [selectedTemplateData, setSelectedTemplateData] = useState({});\n const { t } = useTranslation();\n\n const onClose = () => {\n setIsPaneOpen(false);\n setSelectedTemplateData({});\n };\n\n const handleSubmit = values => {\n onSubmit(\n { message: values.message, approverId: values.approver.value },\n selectedTemplateData,\n onClose\n );\n };\n\n return (\n <Pane {...{ isOpen, onClose }}>\n <Pane.Header>\n <Typography style=\"h2\">\n {t(\"neetoApprovals.common.add_\", {\n what: t(\"neetoApprovals.common.approval\", SINGULAR),\n })}\n </Typography>\n </Pane.Header>\n <FormikForm\n formikProps={{\n onSubmit: handleSubmit,\n initialValues: APPROVAL_REQUEST_FORM_INITIAL_VALUES,\n validationSchema: REQUEST_FORM_VALIDATION_SCHEMA,\n }}\n >\n <Pane.Body>\n <ApprovalRequestForm\n {...{\n requestableId,\n selectedTemplateData,\n setSelectedTemplateData,\n }}\n />\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock\n cancelButtonProps={{ onClick: onClose }}\n isSubmitting={isLoading}\n />\n </Pane.Footer>\n </FormikForm>\n </Pane>\n );\n};\n\nexport default Form;\n"],"names":["fetch","params","axios","get","concat","BASE_URL","approversApi","useFetchApprovers","arguments","length","undefined","options","useQuery","_objectSpread","queryKey","QUERY_KEYS","APPROVERS","queryFn","select","response","data","Form","_ref","_globalProps$user","_ref$requestableId","requestableId","selectedTemplateData","setSelectedTemplateData","_useTranslation","useTranslation","t","_useFormikContext","useFormikContext","setFieldValue","inputRef","useRef","_useState","useState","_useState2","_slicedToArray","approverId","setApproverId","_useState3","_useState4","templateId","setTemplateId","approvalRequestorId","globalProps","user","id","_useFetchTemplates","useFetchTemplates","_useFetchTemplates$da","_useFetchTemplates$da2","_useFetchTemplates$da3","templates","_useFetchTemplate","useFetchTemplate","_useFetchTemplate$dat","_useFetchTemplate$dat2","_useFetchTemplate$dat3","template","_useFetchApprovers","_useFetchApprovers$da","_useFetchApprovers$da2","_useFetchApprovers$da3","approvers","approverOptions","useMemo","map","approver","label","name","value","templateOptions","updateMessage","_inputRef$current","message","parsedMessage","current","editor","commands","setContent","handleTemplateChange","selectedTemplate","handleApproverChange","useEffect","isEmpty","_jsxs","className","children","_jsx","Select","onChange","_Fragment","required","placeholder","what","SINGULAR","FormikEditor","ref","rows","isOpen","setIsPaneOpen","onSubmit","isLoading","onClose","handleSubmit","values","Pane","Header","Typography","style","FormikForm","formikProps","initialValues","APPROVAL_REQUEST_FORM_INITIAL_VALUES","validationSchema","REQUEST_FORM_VALIDATION_SCHEMA","Body","ApprovalRequestForm","Footer","ActionBlock","cancelButtonProps","onClick","isSubmitting"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAIA,IAAMA,KAAK,GAAG,SAARA,KAAKA,CAAGC,MAAM,EAAA;AAAA,EAAA,OAAIC,KAAK,CAACC,GAAG,IAAAC,MAAA,CAAIC,QAAQ,EAAc,YAAA,CAAA,EAAA;AAAEJ,IAAAA,MAAM,EAANA,MAAAA;AAAO,GAAC,CAAC,CAAA;AAAA,CAAA,CAAA;AAEtE,IAAMK,YAAY,GAAG;AAAEN,EAAAA,KAAK,EAALA,KAAAA;AAAM,CAAC;;;;ACD9B,IAAMO,iBAAiB,GAAG,SAApBA,iBAAiBA,GAAA;AAAA,EAAA,IAAIN,MAAM,GAAAO,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;AAAA,EAAA,IAAEG,OAAO,GAAAH,SAAA,CAAAC,MAAA,GAAA,CAAA,IAAAD,SAAA,CAAA,CAAA,CAAA,KAAAE,SAAA,GAAAF,SAAA,CAAA,CAAA,CAAA,GAAG,EAAE,CAAA;EAAA,OAClDI,QAAQ,CAAAC,aAAA,CAAA;AACNC,IAAAA,QAAQ,EAAE,CAACC,UAAU,CAACC,SAAS,EAAEf,MAAM,CAAC;IACxCgB,OAAO,EAAE,SAAAA,OAAA,GAAA;AAAA,MAAA,OAAMX,YAAY,CAACN,KAAK,CAACC,MAAM,CAAC,CAAA;AAAA,KAAA;IACzCiB,MAAM,EAAE,SAAAA,MAAAA,CAAAC,QAAQ,EAAA;AAAA,MAAA,OAAIA,QAAQ,CAACC,IAAI,IAAID,QAAQ,CAAA;AAAA,KAAA;GAC1CR,EAAAA,OAAO,CACX,CAAC,CAAA;AAAA,CAAA;;ACKJ,IAAMU,MAAI,GAAG,SAAPA,IAAIA,CAAAC,IAAA,EAIJ;AAAA,EAAA,IAAAC,iBAAA,CAAA;AAAA,EAAA,IAAAC,kBAAA,GAAAF,IAAA,CAHJG,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,kBAAA;IAClBE,oBAAoB,GAAAJ,IAAA,CAApBI,oBAAoB;IACpBC,uBAAuB,GAAAL,IAAA,CAAvBK,uBAAuB,CAAA;AAEvB,EAAA,IAAAC,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;AAET,EAAA,IAAAC,iBAAA,GAA0BC,gBAAgB,EAAE;IAApCC,aAAa,GAAAF,iBAAA,CAAbE,aAAa,CAAA;AACrB,EAAA,IAAMC,QAAQ,GAAGC,MAAM,CAAC,IAAI,CAAC,CAAA;AAE7B,EAAA,IAAAC,SAAA,GAAoCC,QAAQ,CAAC,IAAI,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA3CI,IAAAA,UAAU,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,aAAa,GAAAH,UAAA,CAAA,CAAA,CAAA,CAAA;AAChC,EAAA,IAAAI,UAAA,GAAoCL,QAAQ,CAAC,IAAI,CAAC;IAAAM,UAAA,GAAAJ,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAA3CE,IAAAA,UAAU,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,aAAa,GAAAF,UAAA,CAAA,CAAA,CAAA,CAAA;AAEhC,EAAA,IAAM1C,MAAM,GAAG;AACbwB,IAAAA,aAAa,EAAbA,aAAa;AACbe,IAAAA,UAAU,EAAVA,UAAU;IACVM,mBAAmB,EAAA,CAAAvB,iBAAA,GAAEwB,WAAW,CAACC,IAAI,MAAAzB,IAAAA,IAAAA,iBAAA,KAAhBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,iBAAA,CAAkB0B,EAAAA;GACxC,CAAA;AAED,EAAA,IAAAC,kBAAA,GAA0CC,iBAAiB,EAAE;IAAAC,qBAAA,GAAAF,kBAAA,CAArD9B,IAAI;AAAAiC,IAAAA,sBAAA,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAuB,EAAE,GAAAA,qBAAA;IAAAE,sBAAA,GAAAD,sBAAA,CAArBE,SAAS;AAATA,IAAAA,SAAS,GAAAD,sBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,sBAAA,CAAA;EAC9B,IAAAE,iBAAA,GAAyCC,gBAAgB,CAAC;AACxDR,MAAAA,EAAE,EAAEL,UAAU;AACd3C,MAAAA,MAAM,EAANA,MAAAA;AACF,KAAC,CAAC;IAAAyD,qBAAA,GAAAF,iBAAA,CAHMpC,IAAI;AAAAuC,IAAAA,sBAAA,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAsB,EAAE,GAAAA,qBAAA;IAAAE,sBAAA,GAAAD,sBAAA,CAApBE,QAAQ;AAARA,IAAAA,QAAQ,GAAAD,sBAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAAA,sBAAA,CAAA;AAI7B,EAAA,IAAAE,kBAAA,GAA0CvD,iBAAiB,EAAE;IAAAwD,qBAAA,GAAAD,kBAAA,CAArD1C,IAAI;AAAA4C,IAAAA,sBAAA,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAuB,EAAE,GAAAA,qBAAA;IAAAE,sBAAA,GAAAD,sBAAA,CAArBE,SAAS;AAATA,IAAAA,SAAS,GAAAD,sBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,sBAAA,CAAA;EAE9B,IAAME,eAAe,GAAGC,OAAO,CAC7B,YAAA;AAAA,IAAA,OACEF,SAAS,CAACG,GAAG,CAAC,UAAAC,QAAQ,EAAA;MAAA,OAAK;QACzBC,KAAK,EAAED,QAAQ,CAACE,IAAI;QACpBC,KAAK,EAAEH,QAAQ,CAACrB,EAAAA;OACjB,CAAA;AAAA,KAAC,CAAC,CAAA;GACL,EAAA,CAACiB,SAAS,CACZ,CAAC,CAAA;AAED,EAAA,IAAMQ,eAAe,GAAGnB,SAAS,CAACc,GAAG,CAAC,UAAAR,QAAQ,EAAA;IAAA,OAAK;MACjDU,KAAK,EAAEV,QAAQ,CAACW,IAAI;MACpBC,KAAK,EAAEZ,QAAQ,CAACZ,EAAAA;KACjB,CAAA;AAAA,GAAC,CAAC,CAAA;AAEH,EAAA,IAAM0B,aAAa,GAAG,SAAhBA,aAAaA,GAAS;AAAA,IAAA,IAAAC,iBAAA,CAAA;IAC1B,IAAMC,OAAO,GAAGhB,QAAQ,CAACiB,aAAa,IAAIjB,QAAQ,CAACgB,OAAO,CAAA;AAC1D5C,IAAAA,aAAa,CAAC,SAAS,EAAE4C,OAAO,CAAC,CAAA;AACjC3C,IAAAA,QAAQ,KAARA,IAAAA,IAAAA,QAAQ,KAAA0C,KAAAA,CAAAA,IAAAA,CAAAA,iBAAA,GAAR1C,QAAQ,CAAE6C,OAAO,MAAA,IAAA,IAAAH,iBAAA,KAAA,KAAA,CAAA,IAAA,CAAAA,iBAAA,GAAjBA,iBAAA,CAAmBI,MAAM,MAAAJ,IAAAA,IAAAA,iBAAA,KAAAA,KAAAA,CAAAA,IAAAA,CAAAA,iBAAA,GAAzBA,iBAAA,CAA2BK,QAAQ,MAAA,IAAA,IAAAL,iBAAA,KAAA,KAAA,CAAA,IAAnCA,iBAAA,CAAqCM,UAAU,CAACL,OAAO,CAAC,CAAA;GACzD,CAAA;AAED,EAAA,IAAMM,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGC,gBAAgB,EAAI;AAC/CvC,IAAAA,aAAa,CAACuC,gBAAgB,CAACX,KAAK,CAAC,CAAA;GACtC,CAAA;AAED,EAAA,IAAMY,oBAAoB,GAAG,SAAvBA,oBAAoBA,CAAGf,QAAQ,EAAI;AACvC7B,IAAAA,aAAa,CAAC6B,QAAQ,CAACG,KAAK,CAAC,CAAA;AAC7BxC,IAAAA,aAAa,CAAC,UAAU,EAAEqC,QAAQ,CAAC,CAAA;GACpC,CAAA;AAEDgB,EAAAA,SAAS,CAAC,YAAM;AACd,IAAA,IAAIC,OAAO,CAAC1B,QAAQ,CAAC,EAAE,OAAA;IACvBlC,uBAAuB,CAACkC,QAAQ,CAAC,CAAA;AACjCc,IAAAA,aAAa,EAAE,CAAA;AACjB,GAAC,EAAE,CAACd,QAAQ,CAAC,CAAC,CAAA;AAEd,EAAA,oBACE2B,IAAA,CAAA,KAAA,EAAA;AAAKC,IAAAA,SAAS,EAAC,kBAAkB;IAAAC,QAAA,EAAA,cAC/BC,GAAA,CAACC,MAAM,EAAA;AACLrB,MAAAA,KAAK,EAAEzC,CAAC,CAAC,gCAAgC,CAAE;AAC3CnB,MAAAA,OAAO,EAAE+D,eAAgB;MACzBmB,QAAQ,EAAE,SAAAA,QAAAA,CAAAT,gBAAgB,EAAA;QAAA,OAAID,oBAAoB,CAACC,gBAAgB,CAAC,CAAA;AAAA,OAAA;AAAC,KACtE,CAAC,EACD,CAAA1D,oBAAoB,KAApBA,IAAAA,IAAAA,oBAAoB,KAApBA,KAAAA,CAAAA,GAAAA,KAAAA,CAAAA,GAAAA,oBAAoB,CAAEmD,OAAO,kBAC5BW,IAAA,CAAAM,QAAA,EAAA;AAAAJ,MAAAA,QAAA,gBACEC,GAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,SAAS,EAAC,gBAAgB;QAAAC,QAAA,eAC7BC,GAAA,CAACC,MAAM,EAAA;UACLG,QAAQ,EAAA,IAAA;AACRxB,UAAAA,KAAK,EAAEzC,CAAC,CAAC,uCAAuC,CAAE;AAClD0C,UAAAA,IAAI,EAAC,UAAU;AACf7D,UAAAA,OAAO,EAAEwD,eAAgB;AACzB6B,UAAAA,WAAW,EAAElE,CAAC,CAAC,4CAA4C,EAAE;AAC3DmE,YAAAA,IAAI,EAAEnE,CAAC,CAAC,gCAAgC,EAAEoE,QAAQ,CAAA;AACpD,WAAC,CAAE;AACHL,UAAAA,QAAQ,EAAER,oBAAAA;SACX,CAAA;OACE,CAAC,eACNM,GAAA,CAAA,KAAA,EAAA;AAAKF,QAAAA,SAAS,EAAC,WAAW;QAAAC,QAAA,eACxBC,GAAA,CAACQ,YAAY,EAAA;UACXJ,QAAQ,EAAA,IAAA;AACRxB,UAAAA,KAAK,EAAEzC,CAAC,CAAC,sCAAsC,CAAE;AACjD0C,UAAAA,IAAI,EAAC,SAAS;AACd4B,UAAAA,GAAG,EAAElE,QAAS;AACdmE,UAAAA,IAAI,EAAE,CAAE;AACRL,UAAAA,WAAW,EAAElE,CAAC,CAAC,2CAA2C,EAAE;YAC1DmE,IAAI,EAAEnE,CAAC,CAAC,sCAAsC,CAAA;WAC/C,CAAA;SACF,CAAA;AAAC,OACC,CAAC,CAAA;AAAA,KACN,CACH,CAAA;AAAA,GACE,CAAC,CAAA;AAEV,CAAC;;ACrGD,IAAMT,IAAI,GAAG,SAAPA,IAAIA,CAAAC,IAAA,EAMJ;AAAA,EAAA,IALJgF,MAAM,GAAAhF,IAAA,CAANgF,MAAM;IACNC,aAAa,GAAAjF,IAAA,CAAbiF,aAAa;IACbC,QAAQ,GAAAlF,IAAA,CAARkF,QAAQ;IACRC,SAAS,GAAAnF,IAAA,CAATmF,SAAS;IAAAjF,kBAAA,GAAAF,IAAA,CACTG,aAAa;AAAbA,IAAAA,aAAa,GAAAD,kBAAA,KAAG,KAAA,CAAA,GAAA,EAAE,GAAAA,kBAAA,CAAA;AAElB,EAAA,IAAAY,SAAA,GAAwDC,QAAQ,CAAC,EAAE,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA7DV,IAAAA,oBAAoB,GAAAY,UAAA,CAAA,CAAA,CAAA;AAAEX,IAAAA,uBAAuB,GAAAW,UAAA,CAAA,CAAA,CAAA,CAAA;AACpD,EAAA,IAAAV,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC,CAAA;AAET,EAAA,IAAM4E,OAAO,GAAG,SAAVA,OAAOA,GAAS;IACpBH,aAAa,CAAC,KAAK,CAAC,CAAA;IACpB5E,uBAAuB,CAAC,EAAE,CAAC,CAAA;GAC5B,CAAA;AAED,EAAA,IAAMgF,YAAY,GAAG,SAAfA,YAAYA,CAAGC,MAAM,EAAI;AAC7BJ,IAAAA,QAAQ,CACN;MAAE3B,OAAO,EAAE+B,MAAM,CAAC/B,OAAO;AAAErC,MAAAA,UAAU,EAAEoE,MAAM,CAACtC,QAAQ,CAACG,KAAAA;AAAM,KAAC,EAC9D/C,oBAAoB,EACpBgF,OACF,CAAC,CAAA;GACF,CAAA;EAED,oBACElB,IAAA,CAACqB,IAAI,EAAA;AAAOP,IAAAA,MAAM,EAANA,MAAM;AAAEI,IAAAA,OAAO,EAAPA,OAAO;AAAAhB,IAAAA,QAAA,EACzBC,cAAAA,GAAA,CAACkB,IAAI,CAACC,MAAM,EAAA;MAAApB,QAAA,eACVC,GAAA,CAACoB,UAAU,EAAA;AAACC,QAAAA,KAAK,EAAC,IAAI;AAAAtB,QAAAA,QAAA,EACnB5D,CAAC,CAAC,4BAA4B,EAAE;AAC/BmE,UAAAA,IAAI,EAAEnE,CAAC,CAAC,gCAAgC,EAAEoE,QAAQ,CAAA;SACnD,CAAA;OACS,CAAA;AAAC,KACF,CAAC,eACdV,IAAA,CAACyB,UAAU,EAAA;AACTC,MAAAA,WAAW,EAAE;AACXV,QAAAA,QAAQ,EAAEG,YAAY;AACtBQ,QAAAA,aAAa,EAAEC,oCAAoC;AACnDC,QAAAA,gBAAgB,EAAEC,8BAAAA;OAClB;AAAA5B,MAAAA,QAAA,EAEFC,cAAAA,GAAA,CAACkB,IAAI,CAACU,IAAI,EAAA;QAAA7B,QAAA,eACRC,GAAA,CAAC6B,MAAmB,EAAA;AAEhB/F,UAAAA,aAAa,EAAbA,aAAa;AACbC,UAAAA,oBAAoB,EAApBA,oBAAoB;AACpBC,UAAAA,uBAAuB,EAAvBA,uBAAAA;SAEH,CAAA;AAAC,OACO,CAAC,eACZgE,GAAA,CAACkB,IAAI,CAACY,MAAM,EAAA;QAAA/B,QAAA,eACVC,GAAA,CAAC+B,WAAW,EAAA;AACVC,UAAAA,iBAAiB,EAAE;AAAEC,YAAAA,OAAO,EAAElB,OAAAA;WAAU;AACxCmB,UAAAA,YAAY,EAAEpB,SAAAA;SACf,CAAA;AAAC,OACS,CAAC,CAAA;AAAA,KACJ,CAAC,CAAA;AAAA,GACT,CAAC,CAAA;AAEX;;;;"}
|
package/dist/Public.js
ADDED
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
import { B as BASE_URL, c as _defineProperty, Q as QUERY_KEYS, _ as _slicedToArray, b as STATUSES } from './constants-752da2ba.js';
|
|
2
|
+
import { PLURAL } from '@bigbinary/neeto-commons-frontend/constants';
|
|
3
|
+
import NeetoHeader from '@bigbinary/neeto-molecules/Header';
|
|
4
|
+
import Container from '@bigbinary/neeto-molecules/Container';
|
|
5
|
+
import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
|
|
6
|
+
import EditorContent from '@bigbinary/neeto-editor/EditorContent';
|
|
7
|
+
import Button from '@bigbinary/neetoui/Button';
|
|
8
|
+
import Callout from '@bigbinary/neetoui/Callout';
|
|
9
|
+
import Textarea from '@bigbinary/neetoui/Textarea';
|
|
10
|
+
import Typography from '@bigbinary/neetoui/Typography';
|
|
11
|
+
import { useMutationWithInvalidation } from '@bigbinary/neeto-commons-frontend/react-utils';
|
|
12
|
+
import { useQuery } from '@tanstack/react-query';
|
|
13
|
+
import axios from 'axios';
|
|
14
|
+
import { useState, useEffect } from 'react';
|
|
15
|
+
import { useParams } from 'react-router-dom';
|
|
16
|
+
import { useTranslation, Trans } from 'react-i18next';
|
|
17
|
+
import { isEmpty } from 'ramda';
|
|
18
|
+
import { withEventTargetValue } from '@bigbinary/neeto-commons-frontend/utils';
|
|
19
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
20
|
+
import 'i18next';
|
|
21
|
+
import '@bigbinary/neeto-editor/utils';
|
|
22
|
+
import 'yup';
|
|
23
|
+
|
|
24
|
+
var show = function show(id) {
|
|
25
|
+
return axios.get("".concat(BASE_URL, "/public/requests/").concat(id));
|
|
26
|
+
};
|
|
27
|
+
var accept = function accept(_ref) {
|
|
28
|
+
var id = _ref.id,
|
|
29
|
+
note = _ref.note;
|
|
30
|
+
return axios.patch("".concat(BASE_URL, "/public/requests/").concat(id, "/accept"), {
|
|
31
|
+
note: note
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
var decline = function decline(_ref2) {
|
|
35
|
+
var id = _ref2.id,
|
|
36
|
+
note = _ref2.note;
|
|
37
|
+
return axios.patch("".concat(BASE_URL, "/public/requests/").concat(id, "/decline"), {
|
|
38
|
+
note: note
|
|
39
|
+
});
|
|
40
|
+
};
|
|
41
|
+
var publicRequestsApi = {
|
|
42
|
+
show: show,
|
|
43
|
+
accept: accept,
|
|
44
|
+
decline: decline
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
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; }
|
|
48
|
+
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; }
|
|
49
|
+
var useFetchPublicRequest = function useFetchPublicRequest(_ref, options) {
|
|
50
|
+
var requestId = _ref.requestId;
|
|
51
|
+
return useQuery(_objectSpread({
|
|
52
|
+
queryKey: [QUERY_KEYS.SHOW_PUBLIC_REQUEST, requestId],
|
|
53
|
+
queryFn: function queryFn() {
|
|
54
|
+
return publicRequestsApi.show(requestId);
|
|
55
|
+
}
|
|
56
|
+
}, options));
|
|
57
|
+
};
|
|
58
|
+
var useAcceptPendingRequest = function useAcceptPendingRequest(options) {
|
|
59
|
+
return useMutationWithInvalidation(publicRequestsApi.accept, _objectSpread({
|
|
60
|
+
keysToInvalidate: [[QUERY_KEYS.SHOW_PUBLIC_REQUEST], [QUERY_KEYS.REQUESTS], [QUERY_KEYS.VIEWS]]
|
|
61
|
+
}, options));
|
|
62
|
+
};
|
|
63
|
+
var useDeclinePendingRequest = function useDeclinePendingRequest(options) {
|
|
64
|
+
return useMutationWithInvalidation(publicRequestsApi.decline, _objectSpread({
|
|
65
|
+
keysToInvalidate: [[QUERY_KEYS.SHOW_PUBLIC_REQUEST], [QUERY_KEYS.REQUESTS], [QUERY_KEYS.VIEWS]]
|
|
66
|
+
}, options));
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
var Public = function Public() {
|
|
70
|
+
var _t;
|
|
71
|
+
var _useState = useState(""),
|
|
72
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
73
|
+
note = _useState2[0],
|
|
74
|
+
setNote = _useState2[1];
|
|
75
|
+
var _useParams = useParams(),
|
|
76
|
+
id = _useParams.id;
|
|
77
|
+
var _useTranslation = useTranslation(),
|
|
78
|
+
t = _useTranslation.t;
|
|
79
|
+
var _useFetchPublicReques = useFetchPublicRequest({
|
|
80
|
+
requestId: id
|
|
81
|
+
}),
|
|
82
|
+
data = _useFetchPublicReques.data,
|
|
83
|
+
isLoading = _useFetchPublicReques.isLoading;
|
|
84
|
+
var _ref = data || {},
|
|
85
|
+
_ref$approvalRequest = _ref.approvalRequest,
|
|
86
|
+
approvalRequest = _ref$approvalRequest === void 0 ? {} : _ref$approvalRequest;
|
|
87
|
+
useEffect(function () {
|
|
88
|
+
var _data$approvalRequest;
|
|
89
|
+
if (data !== null && data !== void 0 && (_data$approvalRequest = data.approvalRequest) !== null && _data$approvalRequest !== void 0 && _data$approvalRequest.note) {
|
|
90
|
+
setNote(data.approvalRequest.note);
|
|
91
|
+
}
|
|
92
|
+
}, [data]);
|
|
93
|
+
var _useAcceptPendingRequ = useAcceptPendingRequest(),
|
|
94
|
+
acceptPendingRequest = _useAcceptPendingRequ.mutate,
|
|
95
|
+
isAccepting = _useAcceptPendingRequ.isPending;
|
|
96
|
+
var _useDeclinePendingReq = useDeclinePendingRequest(),
|
|
97
|
+
declinePendingRequest = _useDeclinePendingReq.mutate,
|
|
98
|
+
isDeclining = _useDeclinePendingReq.isPending;
|
|
99
|
+
var calloutStyle = approvalRequest.status === STATUSES.approved ? "success" : "danger";
|
|
100
|
+
var hideTextArea = approvalRequest.status !== STATUSES.pending && isEmpty(note);
|
|
101
|
+
if (isLoading) {
|
|
102
|
+
return /*#__PURE__*/jsx("div", {
|
|
103
|
+
className: "h-screen items-center justify-center",
|
|
104
|
+
children: /*#__PURE__*/jsx(PageLoader, {})
|
|
105
|
+
});
|
|
106
|
+
}
|
|
107
|
+
return /*#__PURE__*/jsxs(Container, {
|
|
108
|
+
children: [/*#__PURE__*/jsx(NeetoHeader, {
|
|
109
|
+
title: t("neetoApprovals.common.approval", PLURAL)
|
|
110
|
+
}), /*#__PURE__*/jsx("div", {
|
|
111
|
+
className: "flex h-screen w-full flex-col items-center",
|
|
112
|
+
children: /*#__PURE__*/jsx("div", {
|
|
113
|
+
className: "neeto-ui-shadow-s w-2/5 rounded border p-6",
|
|
114
|
+
children: approvalRequest ? /*#__PURE__*/jsxs("div", {
|
|
115
|
+
className: "flex w-full flex-col space-y-6",
|
|
116
|
+
children: [/*#__PURE__*/jsx(Typography, {
|
|
117
|
+
style: "h2",
|
|
118
|
+
children: approvalRequest.title
|
|
119
|
+
}), /*#__PURE__*/jsx(EditorContent, {
|
|
120
|
+
content: approvalRequest.message
|
|
121
|
+
}), !hideTextArea && /*#__PURE__*/jsx(Textarea, {
|
|
122
|
+
label: t("neetoApprovals.common.note"),
|
|
123
|
+
placeholder: t("neetoApprovals.inputs.placeholders.add_", {
|
|
124
|
+
what: (_t = t("neetoApprovals.common.note")) === null || _t === void 0 ? void 0 : _t.toLocaleLowerCase()
|
|
125
|
+
}),
|
|
126
|
+
value: note,
|
|
127
|
+
disabled: approvalRequest.status !== STATUSES.pending,
|
|
128
|
+
onChange: withEventTargetValue(setNote)
|
|
129
|
+
}), approvalRequest.status === STATUSES.pending ? /*#__PURE__*/jsxs("div", {
|
|
130
|
+
className: "mx-auto mt-8 flex space-x-6",
|
|
131
|
+
children: [/*#__PURE__*/jsx(Button, {
|
|
132
|
+
label: t("neetoApprovals.buttons.approve"),
|
|
133
|
+
onClick: function onClick() {
|
|
134
|
+
return acceptPendingRequest({
|
|
135
|
+
id: approvalRequest.id,
|
|
136
|
+
note: note
|
|
137
|
+
});
|
|
138
|
+
},
|
|
139
|
+
loading: isAccepting
|
|
140
|
+
}), /*#__PURE__*/jsx(Button, {
|
|
141
|
+
label: t("neetoApprovals.buttons.decline"),
|
|
142
|
+
onClick: function onClick() {
|
|
143
|
+
return declinePendingRequest({
|
|
144
|
+
id: approvalRequest.id,
|
|
145
|
+
note: note
|
|
146
|
+
});
|
|
147
|
+
},
|
|
148
|
+
style: "secondary",
|
|
149
|
+
loading: isDeclining
|
|
150
|
+
})]
|
|
151
|
+
}) : /*#__PURE__*/jsx(Callout, {
|
|
152
|
+
style: calloutStyle,
|
|
153
|
+
children: /*#__PURE__*/jsx(Typography, {
|
|
154
|
+
style: "body1",
|
|
155
|
+
children: /*#__PURE__*/jsx(Trans, {
|
|
156
|
+
i18nKey: "neetoApprovals.typography.approvalRequest",
|
|
157
|
+
values: {
|
|
158
|
+
status: approvalRequest.status
|
|
159
|
+
}
|
|
160
|
+
})
|
|
161
|
+
})
|
|
162
|
+
})]
|
|
163
|
+
}) : /*#__PURE__*/jsx(Typography, {
|
|
164
|
+
style: "h4",
|
|
165
|
+
className: "text-center",
|
|
166
|
+
children: t("neetoApprovals.common.notFound")
|
|
167
|
+
})
|
|
168
|
+
})
|
|
169
|
+
})]
|
|
170
|
+
});
|
|
171
|
+
};
|
|
172
|
+
|
|
173
|
+
export { Public as default };
|
|
174
|
+
//# sourceMappingURL=Public.js.map
|