@bigbinary/neeto-redirect-urls-frontend 2.2.13 → 2.2.14

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.
Files changed (41) hide show
  1. package/app/javascript/src/translations/ar.json +2 -1
  2. package/app/javascript/src/translations/bg.json +2 -1
  3. package/app/javascript/src/translations/ca.json +2 -1
  4. package/app/javascript/src/translations/cs.json +2 -1
  5. package/app/javascript/src/translations/da.json +2 -1
  6. package/app/javascript/src/translations/de.json +2 -1
  7. package/app/javascript/src/translations/en.json +2 -1
  8. package/app/javascript/src/translations/es-MX.json +2 -1
  9. package/app/javascript/src/translations/es.json +2 -1
  10. package/app/javascript/src/translations/et.json +2 -1
  11. package/app/javascript/src/translations/fi.json +2 -1
  12. package/app/javascript/src/translations/fil.json +2 -1
  13. package/app/javascript/src/translations/fr.json +2 -1
  14. package/app/javascript/src/translations/hi.json +2 -1
  15. package/app/javascript/src/translations/hr.json +2 -1
  16. package/app/javascript/src/translations/id.json +2 -1
  17. package/app/javascript/src/translations/it.json +2 -1
  18. package/app/javascript/src/translations/ja.json +2 -1
  19. package/app/javascript/src/translations/ko.json +2 -1
  20. package/app/javascript/src/translations/nl.json +2 -1
  21. package/app/javascript/src/translations/pl.json +2 -1
  22. package/app/javascript/src/translations/pt-BR.json +2 -1
  23. package/app/javascript/src/translations/pt.json +2 -1
  24. package/app/javascript/src/translations/ro.json +2 -1
  25. package/app/javascript/src/translations/ru.json +2 -1
  26. package/app/javascript/src/translations/sk.json +2 -1
  27. package/app/javascript/src/translations/sl.json +2 -1
  28. package/app/javascript/src/translations/sv.json +2 -1
  29. package/app/javascript/src/translations/th.json +2 -1
  30. package/app/javascript/src/translations/tr.json +2 -1
  31. package/app/javascript/src/translations/uk.json +2 -1
  32. package/app/javascript/src/translations/vi.json +2 -1
  33. package/app/javascript/src/translations/zh-CN.json +2 -1
  34. package/app/javascript/src/translations/zh-TW.json +2 -1
  35. package/dist/RedirectUrls.js +103 -86
  36. package/dist/RedirectUrls.js.map +1 -1
  37. package/dist/cjs/RedirectUrls.js +102 -85
  38. package/dist/cjs/RedirectUrls.js.map +1 -1
  39. package/dist/cjs/index.js +1 -1
  40. package/dist/index.js +1 -1
  41. package/package.json +13 -12
@@ -1 +1 @@
1
- {"version":3,"file":"RedirectUrls.js","sources":["../app/javascript/src/components/commons/DeleteRedirectUrlModal.jsx","../app/javascript/src/constants/regexp.js","../app/javascript/src/components/commons/constants.js","../app/javascript/src/components/commons/RedirectUrlPane.jsx","../app/javascript/src/components/constants.js","../app/javascript/src/routes.js","../app/javascript/src/components/utils.js","../app/javascript/src/constants/index.js","../app/javascript/src/apis/redirect_url.js","../app/javascript/src/constants/query.js","../app/javascript/src/hooks/reactQuery/useRedirectUrlApi.js","../app/javascript/src/constants/helpUrls.js","../app/javascript/src/components/RedirectUrls/DomainRedirection/constants.js","../app/javascript/src/components/RedirectUrls/DomainRedirection/index.jsx","../app/javascript/src/components/RedirectUrls/utils.js","../app/javascript/src/components/RedirectUrls/RedirectUrlsTable.jsx","../app/javascript/src/components/RedirectUrls/index.jsx"],"sourcesContent":["import { Alert } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nconst DeleteRedirectUrlModal = ({\n handleClose,\n handleSubmit,\n detailsToDelete,\n isOpen,\n}) => {\n const { t } = useTranslation();\n if (detailsToDelete === null) return null;\n\n const { id, toPath, fromPath } = detailsToDelete;\n const title = t(\"neetoRedirectUrls.alerts.delete.title\");\n\n return (\n <Alert\n {...{ isOpen, title }}\n submitButtonLabel={t(\"neetoRedirectUrls.common.delete\")}\n message={\n <Trans\n i18nKey=\"neetoRedirectUrls.alerts.delete.confirm\"\n values={{ from_path: fromPath, to_path: toPath }}\n />\n }\n onClose={handleClose}\n onSubmit={() => handleSubmit(id)}\n />\n );\n};\n\nDeleteRedirectUrlModal.propTypes = {\n handleClose: PropTypes.func,\n handleSubmit: PropTypes.func,\n isOpen: PropTypes.bool,\n};\n\nexport default DeleteRedirectUrlModal;\n","export const URL_PATHNAME_REGEX = /^\\/[-a-zA-Z0-9@:%_+.~#?&//=]*$/g;\n","import { t } from \"i18next\";\nimport { VALID_URL_REGEX } from \"neetocommons/constants\";\nimport * as yup from \"yup\";\n\nimport { URL_PATHNAME_REGEX } from \"src/constants/regexp\";\n\nexport const REDIRECT_URL_VALIDATION_SCHEMA = yup.object().shape({\n fromPath: yup\n .string()\n .required(\n t(\"neetoRedirectUrls.redirect.validations.required\", {\n entity: \"Source\",\n })\n )\n .matches(\n URL_PATHNAME_REGEX,\n t(\"neetoRedirectUrls.redirect.validations.source\")\n ),\n toPath: yup\n .string()\n .required(\n t(\"neetoRedirectUrls.redirect.validations.required\", {\n entity: \"Destination\",\n })\n )\n .matches(\n new RegExp(`${VALID_URL_REGEX.source}|${URL_PATHNAME_REGEX.source}`),\n t(\"neetoRedirectUrls.redirect.validations.destination\")\n )\n .test(\n \"paths-not-same\",\n t(\"neetoRedirectUrls.redirect.validations.samePaths\"),\n (value, context) => {\n const { fromPath } = context.parent;\n if (!value || !fromPath) return true;\n\n return value !== fromPath;\n }\n ),\n});\n","import { noop } from \"neetocist\";\nimport { Pane, Typography } from \"neetoui\";\nimport { Input, Form, ActionBlock } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { REDIRECT_URL_VALIDATION_SCHEMA } from \"./constants\";\n\nconst RedirectUrlPane = ({\n handleClose,\n handleSubmit,\n initialValues = {},\n setInitialFocusField = noop,\n}) => {\n const { t } = useTranslation();\n const redirectUrlId = initialValues?.id;\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\">\n {redirectUrlId\n ? t(\"neetoRedirectUrls.redirect.edit\")\n : t(\"neetoRedirectUrls.redirect.add\")}\n </Typography>\n </Pane.Header>\n <Form\n formikProps={{\n initialValues: initialValues || {\n fromPath: \"\",\n toPath: \"\",\n },\n validationSchema: REDIRECT_URL_VALIDATION_SCHEMA,\n onSubmit: (values, formikBag) => {\n handleSubmit({ ...values }, formikBag);\n },\n }}\n >\n <>\n <Pane.Body>\n <div className=\"w-full space-y-4\">\n <Input\n required\n id=\"fromPath\"\n label={t(\"neetoRedirectUrls.redirect.source\")}\n name=\"fromPath\"\n ref={setInitialFocusField}\n placeholder={t(\n \"neetoRedirectUrls.common.placeholder.relativeUrl\"\n )}\n />\n <Input\n required\n id=\"toPath\"\n label={t(\"neetoRedirectUrls.redirect.destination\")}\n name=\"toPath\"\n placeholder={window.location.origin}\n />\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock cancelButtonProps={{ onClick: handleClose }} />\n </Pane.Footer>\n </>\n </Form>\n </>\n );\n};\n\nRedirectUrlPane.propTypes = {\n handleClose: PropTypes.func,\n handleSubmit: PropTypes.func,\n};\n\nexport default RedirectUrlPane;\n","import { t } from \"i18next\";\n\nexport const SETTINGS_CATEGORIES = { GENERAL: \"GENERAL\" };\n\nexport const SETTINGS_CATEGORIES_LABELS = {\n [SETTINGS_CATEGORIES.GENERAL]: t(\"neetoRedirectUrls.settings.general.title\"),\n};\n\nexport const SHOW_TOASTR_CONFIG = { showToastr: false };\n","const routes = {\n admin: {\n index: \"/admin\",\n courses: {\n chapters: {\n show: \"/admin/courses/:courseId/chapters/:chapterId\",\n chapterVersions: {\n show: \"/admin/courses/:courseId/chapters/:chapterId/chapter-versions/:chapterVersionId\",\n },\n pages: {\n show: \"/admin/courses/:courseId/chapters/:chapterId/pages/:pageId\",\n pageVersions: {\n show: \"/admin/courses/:courseId/chapters/:chapterId/pages/:pageId/page-versions/:pageVersionId\",\n },\n },\n },\n index: \"/admin/courses\",\n show: \"/admin/courses/:courseId\",\n deployments: {\n index: \"/admin/courses/:courseId/deployments\",\n show: \"/admin/courses/:courseId/deployments/:deploymentId\",\n },\n configure: {\n index: \"/admin/courses/:courseId/configure\",\n security: \"/admin/courses/:courseId/configure/security\",\n certificateConfiguration:\n \"/admin/courses/:courseId/configure/certificate_configuration\",\n },\n },\n pullRequestApps: {\n index: \"/admin/pull_request_apps\",\n show: \"/admin/pull_request_apps/:pullRequestAppId\",\n courseDeployments: {\n show: \"/admin/pull_request_apps/:pullRequestAppId/course-deployments/:courseDeploymentId\",\n },\n },\n members: \"/admin/members\",\n adminPanel: \"/admin/admin-panel\",\n reports: {\n index: \"/admin/reports\",\n invalidUrls: \"/admin/reports/invalid-urls\",\n },\n assets: {\n index: \"/admin/assets\",\n databases: \"/admin/assets/databases\",\n videos: \"/admin/assets/videos\",\n audios: \"/admin/assets/audios\",\n resources: \"/admin/assets/resources\",\n },\n },\n home: \"/\",\n};\n\nexport default routes;\n","import { t } from \"i18next\";\nimport { buildUrl } from \"neetocommons/utils\";\n\nimport routes from \"routes\";\n\nimport { SETTINGS_CATEGORIES_LABELS } from \"./constants\";\n\nexport const buildSettingsBreadcrumbs = (category, pageTitle) => [\n {\n link: routes.admin.adminPanel,\n text: t(\"neetoRedirectUrls.settings.title\"),\n },\n {\n link: buildUrl(routes.admin.adminPanel, {\n category: category.toLowerCase(),\n }),\n text: SETTINGS_CATEGORIES_LABELS[category],\n },\n ...(pageTitle ? [{ text: pageTitle }] : []),\n];\n\nexport const normalizeURL = url => (url ? url.replace(/\\/+$/, \"\") : \"\");\n\nexport const handleError = (setStatus, error) => {\n const { response } = error;\n if (response && response.data && response.data.errors) {\n setStatus(response.data.errors);\n }\n};\n","export const REDIRECT_URLS_BASE_URL =\n \"/neeto_redirect_urls_engine/api/v1/redirect_urls\";\n","import axios from \"axios\";\n\nimport { REDIRECT_URLS_BASE_URL } from \"src/constants\";\n\nconst fetch = () => axios.get(REDIRECT_URLS_BASE_URL);\n\nconst fetchAll = params => axios.get(REDIRECT_URLS_BASE_URL, params);\n\nconst create = ({ payload, config }) =>\n axios.post(REDIRECT_URLS_BASE_URL, payload, config);\n\nconst update = ({ id, payload, config }) =>\n axios.put(`${REDIRECT_URLS_BASE_URL}/${id}`, payload, config);\n\nconst destroy = id => axios.delete(`${REDIRECT_URLS_BASE_URL}/${id}`);\n\nconst redirectUrlApi = { fetch, fetchAll, create, update, destroy };\n\nexport default redirectUrlApi;\n","export const QUERY_KEYS = { REDIRECT_URLS: \"redirect_urls\" };\n\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport redirectUrlApi from \"apis/redirect_url\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useFetchAllRedirectUrls = (searchQuery, options) =>\n useQuery({\n queryKey: [QUERY_KEYS.REDIRECT_URLS, searchQuery],\n queryFn: () => redirectUrlApi.fetchAll(searchQuery),\n ...options,\n });\n\nconst useCreateRedirectUrl = options =>\n useMutationWithInvalidation(redirectUrlApi.create, {\n keysToInvalidate: [QUERY_KEYS.REDIRECT_URLS],\n ...options,\n });\n\nconst useUpdateRedirectUrl = options =>\n useMutationWithInvalidation(redirectUrlApi.update, {\n keysToInvalidate: [QUERY_KEYS.REDIRECT_URLS],\n ...options,\n });\n\nconst useDestroyRedirectUrl = options =>\n useMutationWithInvalidation(redirectUrlApi.destroy, {\n keysToInvalidate: [QUERY_KEYS.REDIRECT_URLS],\n ...options,\n });\n\nexport {\n useFetchAllRedirectUrls,\n useCreateRedirectUrl,\n useUpdateRedirectUrl,\n useDestroyRedirectUrl,\n};\n","export const DOC_BASE_URL = `https://help.${globalProps.appName.toLowerCase()}.com/articles`;\n\nexport const CREATE_REDIRECT_URL_HELP_DOC_URL = `${DOC_BASE_URL}/creating-a-redirect-url`;\n\nexport const DOMAIN_LEVEL_REDIRECT_HELP_DOC_URL = `${DOC_BASE_URL}/domain-level-redirection`;\n","import { t } from \"i18next\";\nimport { VALID_URL_REGEX } from \"neetocommons/constants\";\nimport * as yup from \"yup\";\n\nimport { normalizeURL } from \"components/utils\";\n\nexport const DOMAIN_REDIRECTION_VALIDATION_SCHEMA = yup.object().shape({\n toPath: yup\n .string()\n .nullable()\n .when(\"domainRedirectionActive\", {\n is: true,\n then: yup\n .string()\n .required(\n t(\"neetoRedirectUrls.redirect.validations.required\", {\n entity: \"Destination\",\n })\n )\n .matches(\n VALID_URL_REGEX,\n t(\"neetoRedirectUrls.redirect.validations.destination\")\n )\n .test(\n \"not-duplicate-domain\",\n t(\"neetoRedirectUrls.redirect.validations.duplicateDomain\"),\n value => {\n if (!value) return true;\n\n const domainUrls =\n window.globalProps.organization?.domainUrls?.map(normalizeURL) ||\n [];\n\n return !domainUrls.includes(normalizeURL(value));\n }\n ),\n }),\n});\n","import { useEffect, useState } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { Edit } from \"neetoicons\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport { FormikInlineInput } from \"neetomolecules/InlineInput\";\nimport { Typography, Label, Button } from \"neetoui\";\nimport { Switch, Form, Input } from \"neetoui/formik\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport {\n useCreateRedirectUrl,\n useDestroyRedirectUrl,\n useUpdateRedirectUrl,\n} from \"hooks/reactQuery/useRedirectUrlApi\";\nimport { DOMAIN_LEVEL_REDIRECT_HELP_DOC_URL } from \"src/constants/helpUrls\";\n\nimport { DOMAIN_REDIRECTION_VALIDATION_SCHEMA } from \"./constants\";\n\nconst DomainRedirection = ({ domainRedirectUrl, entity, helpDocUrls }) => {\n const [isEditingDomainRedirect, setIsEditingDomainRedirect] = useState(true);\n const { t } = useTranslation();\n const { mutateAsync: createLink } = useCreateRedirectUrl();\n\n const { mutateAsync: updateLink } = useUpdateRedirectUrl();\n const { mutate: destroyLink } = useDestroyRedirectUrl();\n\n const initialValues = {\n domainRedirectionActive: isPresent(domainRedirectUrl?.toPath),\n toPath: domainRedirectUrl?.toPath,\n };\n\n const handleSubmit = values => {\n const payload = {\n toPath: values.toPath,\n redirection_type: \"domain\",\n };\n\n return domainRedirectUrl\n ? updateLink({ id: domainRedirectUrl.id, payload })\n : createLink({ payload });\n };\n\n const handleRemoveRedirection = domainLinkActive => {\n if (!(domainLinkActive && domainRedirectUrl)) {\n setIsEditingDomainRedirect(true);\n\n return;\n }\n destroyLink(domainRedirectUrl.id);\n };\n\n useEffect(() => {\n if (isPresent(domainRedirectUrl?.toPath)) {\n setIsEditingDomainRedirect(false);\n }\n }, [domainRedirectUrl]);\n\n return (\n <Form\n className=\"mb-6 w-full\"\n formikProps={{\n initialValues,\n validationSchema: DOMAIN_REDIRECTION_VALIDATION_SCHEMA,\n enableReinitialize: true,\n onSubmit: handleSubmit,\n }}\n >\n {({ values: { domainRedirectionActive }, dirty }) => (\n <CardLayout containerClassName=\"ml-0\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-col space-y-2\">\n <Label className=\"flex items-center gap-2\">\n <Switch\n data-cy=\"domain-level-redirection-switch\"\n name=\"domainRedirectionActive\"\n onClick={() =>\n handleRemoveRedirection(domainRedirectionActive)\n }\n />\n <Typography\n component=\"span\"\n data-cy=\"domain-level-redirection-heading\"\n style=\"h5\"\n weight=\"medium\"\n >\n {t(\"neetoRedirectUrls.redirect.domainLevelRedirect.label\")}\n </Typography>\n </Label>\n <Typography component=\"p\" style=\"body2\">\n <Trans\n i18nKey=\"neetoRedirectUrls.redirect.domainLevelRedirect.description\"\n values={{ entity, app: window.globalProps.appName }}\n components={{\n Link: (\n <Button\n className=\"text-sm\"\n data-cy=\"domain-level-redirections-help-button\"\n style=\"link\"\n target=\"_blank\"\n href={\n helpDocUrls.domainLevelRedirectUrl ||\n DOMAIN_LEVEL_REDIRECT_HELP_DOC_URL\n }\n />\n ),\n }}\n />\n </Typography>\n </div>\n </div>\n {domainRedirectionActive && (\n <div className=\"mt-2 flex w-1/2 items-start space-x-3\">\n {isEditingDomainRedirect ? (\n <FormikInlineInput\n data-cy=\"domain-level-redirection-link-text-field\"\n handleCancel={() => dirty}\n name=\"toPath\"\n placeholder={t(\"neetoRedirectUrls.common.placeholder.url\")}\n cancelButtonProps={{\n disabled: !dirty,\n \"data-cy\": \"domain-level-redirection-link-cancel-button\",\n }}\n submitButtonProps={{\n \"data-cy\": \"domain-level-redirection-link-submit-button\",\n }}\n />\n ) : (\n <>\n <Input disabled name=\"toPath\" />\n <Button\n data-cy=\"domain-level-redirection-edit-btn\"\n icon={Edit}\n style=\"link\"\n onClick={() => setIsEditingDomainRedirect(true)}\n />\n </>\n )}\n </div>\n )}\n </CardLayout>\n )}\n </Form>\n );\n};\n\nexport default DomainRedirection;\n","import { t } from \"i18next\";\n\nimport { SETTINGS_CATEGORIES } from \"../constants\";\nimport { buildSettingsBreadcrumbs } from \"../utils\";\n\nexport const buildBreadcrumbs = pageTitle =>\n buildSettingsBreadcrumbs(SETTINGS_CATEGORIES.GENERAL, pageTitle);\n\nexport const buildMoreMenuItems = ({\n redirectUrl,\n setUrlDetailsToEdit,\n setUrlDetailsToDelete,\n}) => {\n const { id, fromPath, toPath } = redirectUrl;\n\n return [\n {\n key: \"edit-menu\",\n \"data-cy\": \"neeto-redirect-url-edit-btn\",\n label: t(\"neetoRedirectUrls.common.edit\"),\n onClick: () => {\n setUrlDetailsToEdit({ id, fromPath, toPath });\n },\n },\n {\n key: \"delete-menu\",\n \"data-cy\": \"neeto-redirect-url-delete-btn\",\n label: t(\"neetoRedirectUrls.common.delete\"),\n onClick: () => {\n setUrlDetailsToDelete({ id, fromPath, toPath });\n },\n },\n ];\n};\n","import { DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport MoreDropdown from \"neetomolecules/MoreDropdown\";\nimport TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Table } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { buildMoreMenuItems } from \"./utils\";\n\nconst RedirectUrlsTable = ({\n redirectUrls = [],\n currentPageNumber,\n setCurrentPageNumber,\n recordsCount,\n setUrlDetailsToEdit,\n setUrlDetailsToDelete,\n isFetching,\n}) => {\n const truncateUrl = url => {\n const urlString = String(url);\n\n return urlString.length <= 50 ? urlString : `${urlString.slice(0, 50)}...`;\n };\n\n const { t } = useTranslation();\n const columnData = [\n {\n title: t(\"neetoRedirectUrls.redirect.source\"),\n dataIndex: \"source\",\n key: \"name\",\n width: 300,\n render: (_, redirectUrl) => {\n const { fromPath } = redirectUrl;\n\n return (\n <div className=\"flex items-center justify-between gap-x-3\">\n <span>{fromPath && truncateUrl(fromPath)}</span>\n <MoreDropdown\n dropdownButtonProps={{ className: \"mr-1 my-1\" }}\n dropdownProps={{\n strategy: \"fixed\",\n appendTo: () => document.body,\n }}\n menuItems={buildMoreMenuItems({\n redirectUrl,\n setUrlDetailsToEdit,\n setUrlDetailsToDelete,\n })}\n />\n </div>\n );\n },\n },\n {\n title: t(\"neetoRedirectUrls.redirect.destination\"),\n dataIndex: \"toPath\",\n key: \"toPath\",\n width: 300,\n render: toPath => toPath && truncateUrl(toPath),\n },\n ];\n\n return (\n <TableWrapper hasPagination={recordsCount > DEFAULT_PAGE_SIZE}>\n <Table\n {...{ columnData, currentPageNumber }}\n fixedHeight\n handlePageChange={page => setCurrentPageNumber(page)}\n loading={isFetching}\n rowData={redirectUrls}\n totalCount={recordsCount}\n paginationProps={{\n hideOnSinglePage: recordsCount < DEFAULT_PAGE_SIZE + 1,\n showSizeChanger: recordsCount > DEFAULT_PAGE_SIZE,\n }}\n />\n </TableWrapper>\n );\n};\n\nexport default RedirectUrlsTable;\n","import { useRef, useState } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { showThumbsUpToastr } from \"neetocommons/utils\";\nimport Container from \"neetomolecules/Container\";\nimport Header from \"neetomolecules/Header\";\nimport PageLoader from \"neetomolecules/PageLoader\";\nimport { Pane, NoData, Button } from \"neetoui\";\nimport { isEmpty, isNotNil } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport DeleteRedirectUrlModal from \"components/commons/DeleteRedirectUrlModal\";\nimport RedirectUrlPane from \"components/commons/RedirectUrlPane\";\nimport { SHOW_TOASTR_CONFIG } from \"components/constants\";\nimport { handleError } from \"components/utils\";\nimport {\n useFetchAllRedirectUrls,\n useUpdateRedirectUrl,\n useDestroyRedirectUrl,\n useCreateRedirectUrl,\n} from \"hooks/reactQuery/useRedirectUrlApi\";\nimport { CREATE_REDIRECT_URL_HELP_DOC_URL } from \"src/constants/helpUrls\";\n\nimport DomainRedirection from \"./DomainRedirection\";\nimport RedirectUrlsTable from \"./RedirectUrlsTable\";\nimport { buildBreadcrumbs } from \"./utils\";\n\nconst RedirectUrls = ({ entity, helpDocUrls = {} }) => {\n const { t } = useTranslation();\n const { searchTerm = \"\" } = useQueryParams();\n const initialFocusField = useRef();\n const [currentPageNumber, setCurrentPageNumber] = useState(1);\n const [urlDetailsToDelete, setUrlDetailsToDelete] = useState(null);\n const [urlDetailsToEdit, setUrlDetailsToEdit] = useState(null);\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n const { mutate: createRedirectUrl } = useCreateRedirectUrl();\n\n const searchQuery = {\n page: currentPageNumber,\n ...(isEmpty(searchTerm) ? {} : { searchTerm }),\n };\n\n const {\n data: { redirectUrls = [], domainRedirectUrl } = {},\n isLoading,\n isFetching,\n } = useFetchAllRedirectUrls({ params: searchQuery });\n\n const isFiltersVisible = redirectUrls?.length > 0 || isPresent(searchTerm);\n\n const { mutate: updateRedirectUrl } = useUpdateRedirectUrl();\n\n const { mutate: deleteRedirectUrl } = useDestroyRedirectUrl();\n\n const handleCreateRedirectUrl = (\n redirectUrl,\n { setSubmitting, setStatus }\n ) => {\n createRedirectUrl(\n { payload: redirectUrl, config: SHOW_TOASTR_CONFIG },\n {\n onError: error => {\n handleError(setStatus, error);\n setSubmitting(false);\n },\n onSuccess: () => {\n showThumbsUpToastr();\n setIsModalOpen(false);\n },\n }\n );\n };\n\n const handleRedirectUrlUpdate = (\n redirectUrl,\n { setSubmitting, setStatus }\n ) => {\n updateRedirectUrl(\n { id: redirectUrl.id, payload: redirectUrl, config: SHOW_TOASTR_CONFIG },\n {\n onError: error => {\n handleError(setStatus, error);\n setSubmitting(false);\n },\n onSuccess: () => {\n showThumbsUpToastr();\n setUrlDetailsToEdit(null);\n },\n }\n );\n };\n\n const handleRedirectUrlDelete = urlId => {\n deleteRedirectUrl(urlId, {\n onSettled: () => {\n setUrlDetailsToDelete(null);\n },\n });\n };\n\n const pageTitle = t(\"neetoRedirectUrls.settings.redirecturl.title\");\n\n const setInitialFocusField = fieldRef =>\n (initialFocusField.current = fieldRef);\n\n return (\n <Container className=\"w-full\">\n {isLoading ? (\n <PageLoader />\n ) : (\n <>\n <Header\n breadcrumbs={buildBreadcrumbs(pageTitle)}\n title={pageTitle}\n actionBlock={\n <Button\n data-cy=\"add-new-redirect-url-button\"\n label={t(\"neetoRedirectUrls.redirect.add\")}\n onClick={() => setIsModalOpen(true)}\n />\n }\n searchProps={\n isFiltersVisible && {\n placeholder: t(\"neetoRedirectUrls.redirect.search\"),\n }\n }\n titleHelpPopoverProps={{\n title: t(\"neetoRedirectUrls.settings.redirecturl.title\"),\n description: t(\n \"neetoRedirectUrls.settings.redirecturl.description\"\n ),\n helpLinkProps: {\n href:\n helpDocUrls.createRedirectUrl ||\n CREATE_REDIRECT_URL_HELP_DOC_URL,\n },\n }}\n />\n <>\n {isEmpty(redirectUrls) ? (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n title={t(\"neetoRedirectUrls.emptyState.redirectURLs.title\")}\n helpText={\n <Trans\n i18nKey=\"neetoRedirectUrls.emptyState.redirectURLs.description\"\n components={{\n helpLink: (\n <Button\n style=\"link\"\n target=\"_blank\"\n href={\n helpDocUrls.createRedirectUrl ||\n CREATE_REDIRECT_URL_HELP_DOC_URL\n }\n />\n ),\n }}\n />\n }\n primaryButtonProps={{\n label: t(\"neetoRedirectUrls.redirect.add\"),\n onClick: () => setIsModalOpen(true),\n }}\n />\n </div>\n ) : (\n <>\n <div className=\"w-full\">\n <DomainRedirection\n {...{ domainRedirectUrl, entity, helpDocUrls }}\n />\n </div>\n <RedirectUrlsTable\n {...{\n currentPageNumber,\n isFetching,\n redirectUrls,\n setCurrentPageNumber,\n setUrlDetailsToDelete,\n setUrlDetailsToEdit,\n }}\n recordsCount={redirectUrls.length}\n />\n </>\n )}\n <DeleteRedirectUrlModal\n detailsToDelete={urlDetailsToDelete}\n handleClose={() => setUrlDetailsToDelete(null)}\n handleSubmit={handleRedirectUrlDelete}\n isOpen={urlDetailsToDelete !== null}\n />\n <Pane\n initialFocusRef={initialFocusField}\n isOpen={isModalOpen || isNotNil(urlDetailsToEdit)}\n onClose={() => {\n setIsModalOpen(false);\n setUrlDetailsToEdit(null);\n }}\n >\n <RedirectUrlPane\n {...{ setInitialFocusField }}\n handleClose={() => setIsModalOpen(false)}\n initialValues={urlDetailsToEdit ?? {}}\n handleSubmit={\n isNotNil(urlDetailsToEdit)\n ? handleRedirectUrlUpdate\n : handleCreateRedirectUrl\n }\n />\n </Pane>\n </>\n </>\n )}\n </Container>\n );\n};\n\nexport default RedirectUrls;\n"],"names":["DeleteRedirectUrlModal","_ref","handleClose","handleSubmit","detailsToDelete","isOpen","_useTranslation","useTranslation","t","id","toPath","fromPath","title","_jsx","Alert","submitButtonLabel","message","Trans","i18nKey","values","from_path","to_path","onClose","onSubmit","URL_PATHNAME_REGEX","REDIRECT_URL_VALIDATION_SCHEMA","yup","object","shape","string","required","entity","matches","RegExp","concat","VALID_URL_REGEX","source","test","value","context","parent","RedirectUrlPane","_ref$initialValues","initialValues","_ref$setInitialFocusF","setInitialFocusField","noop","redirectUrlId","_jsxs","_Fragment","children","Pane","Header","Typography","style","Form","formikProps","validationSchema","formikBag","_objectSpread","Body","className","Input","label","name","ref","placeholder","window","location","origin","Footer","ActionBlock","cancelButtonProps","onClick","SETTINGS_CATEGORIES","GENERAL","SETTINGS_CATEGORIES_LABELS","_defineProperty","SHOW_TOASTR_CONFIG","showToastr","routes","admin","index","courses","chapters","show","chapterVersions","pages","pageVersions","deployments","configure","security","certificateConfiguration","pullRequestApps","courseDeployments","members","adminPanel","reports","invalidUrls","assets","databases","videos","audios","resources","home","buildSettingsBreadcrumbs","category","pageTitle","link","text","buildUrl","toLowerCase","_toConsumableArray","normalizeURL","url","replace","handleError","setStatus","error","response","data","errors","REDIRECT_URLS_BASE_URL","fetch","axios","get","fetchAll","params","create","payload","config","post","update","_ref2","put","destroy","redirectUrlApi","QUERY_KEYS","REDIRECT_URLS","useFetchAllRedirectUrls","searchQuery","options","useQuery","queryKey","queryFn","useCreateRedirectUrl","useMutationWithInvalidation","keysToInvalidate","useUpdateRedirectUrl","useDestroyRedirectUrl","DOC_BASE_URL","globalProps","appName","CREATE_REDIRECT_URL_HELP_DOC_URL","DOMAIN_LEVEL_REDIRECT_HELP_DOC_URL","DOMAIN_REDIRECTION_VALIDATION_SCHEMA","nullable","when","is","then","_window$globalProps$o","domainUrls","organization","map","includes","DomainRedirection","domainRedirectUrl","helpDocUrls","_useState","useState","_useState2","_slicedToArray","isEditingDomainRedirect","setIsEditingDomainRedirect","_useCreateRedirectUrl","createLink","mutateAsync","_useUpdateRedirectUrl","updateLink","_useDestroyRedirectUr","destroyLink","mutate","domainRedirectionActive","isPresent","redirection_type","handleRemoveRedirection","domainLinkActive","useEffect","enableReinitialize","dirty","CardLayout","containerClassName","Label","Switch","component","weight","app","components","Link","Button","target","href","domainLevelRedirectUrl","FormikInlineInput","handleCancel","disabled","submitButtonProps","icon","Edit","buildBreadcrumbs","buildMoreMenuItems","redirectUrl","setUrlDetailsToEdit","setUrlDetailsToDelete","key","RedirectUrlsTable","_ref$redirectUrls","redirectUrls","currentPageNumber","setCurrentPageNumber","recordsCount","isFetching","truncateUrl","urlString","String","length","slice","columnData","dataIndex","width","render","_","MoreDropdown","dropdownButtonProps","dropdownProps","strategy","appendTo","document","body","menuItems","TableWrapper","hasPagination","DEFAULT_PAGE_SIZE","Table","fixedHeight","handlePageChange","page","loading","rowData","totalCount","paginationProps","hideOnSinglePage","showSizeChanger","RedirectUrls","_ref$helpDocUrls","_useQueryParams","useQueryParams","_useQueryParams$searc","searchTerm","initialFocusField","useRef","_useState3","_useState4","urlDetailsToDelete","_useState5","_useState6","urlDetailsToEdit","_useState7","_useState8","isModalOpen","setIsModalOpen","createRedirectUrl","isEmpty","_useFetchAllRedirectU","_useFetchAllRedirectU2","_useFetchAllRedirectU3","_useFetchAllRedirectU4","isLoading","isFiltersVisible","updateRedirectUrl","deleteRedirectUrl","handleCreateRedirectUrl","setSubmitting","onError","onSuccess","showThumbsUpToastr","handleRedirectUrlUpdate","_ref3","handleRedirectUrlDelete","urlId","onSettled","fieldRef","current","Container","PageLoader","breadcrumbs","actionBlock","searchProps","titleHelpPopoverProps","description","helpLinkProps","NoData","helpText","helpLink","primaryButtonProps","initialFocusRef","isNotNil"],"mappings":"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"}
1
+ {"version":3,"file":"RedirectUrls.js","sources":["../app/javascript/src/components/commons/DeleteRedirectUrlModal.jsx","../app/javascript/src/routes.js","../app/javascript/src/components/constants.js","../app/javascript/src/components/utils.js","../app/javascript/src/constants/regexp.js","../app/javascript/src/components/commons/constants.js","../app/javascript/src/components/commons/RedirectUrlPane.jsx","../app/javascript/src/constants/index.js","../app/javascript/src/apis/redirect_url.js","../app/javascript/src/constants/query.js","../app/javascript/src/hooks/reactQuery/useRedirectUrlApi.js","../app/javascript/src/constants/helpUrls.js","../app/javascript/src/components/RedirectUrls/DomainRedirection/constants.js","../app/javascript/src/components/RedirectUrls/DomainRedirection/index.jsx","../app/javascript/src/components/RedirectUrls/utils.js","../app/javascript/src/components/RedirectUrls/RedirectUrlsTable.jsx","../app/javascript/src/components/RedirectUrls/index.jsx"],"sourcesContent":["import { Alert } from \"neetoui\";\nimport PropTypes from \"prop-types\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nconst DeleteRedirectUrlModal = ({\n handleClose,\n handleSubmit,\n detailsToDelete,\n isOpen,\n}) => {\n const { t } = useTranslation();\n if (detailsToDelete === null) return null;\n\n const { id, toPath, fromPath } = detailsToDelete;\n const title = t(\"neetoRedirectUrls.alerts.delete.title\");\n\n return (\n <Alert\n {...{ isOpen, title }}\n submitButtonLabel={t(\"neetoRedirectUrls.common.delete\")}\n message={\n <Trans\n i18nKey=\"neetoRedirectUrls.alerts.delete.confirm\"\n values={{ from_path: fromPath, to_path: toPath }}\n />\n }\n onClose={handleClose}\n onSubmit={() => handleSubmit(id)}\n />\n );\n};\n\nDeleteRedirectUrlModal.propTypes = {\n handleClose: PropTypes.func,\n handleSubmit: PropTypes.func,\n isOpen: PropTypes.bool,\n};\n\nexport default DeleteRedirectUrlModal;\n","const routes = {\n admin: {\n index: \"/admin\",\n courses: {\n chapters: {\n show: \"/admin/courses/:courseId/chapters/:chapterId\",\n chapterVersions: {\n show: \"/admin/courses/:courseId/chapters/:chapterId/chapter-versions/:chapterVersionId\",\n },\n pages: {\n show: \"/admin/courses/:courseId/chapters/:chapterId/pages/:pageId\",\n pageVersions: {\n show: \"/admin/courses/:courseId/chapters/:chapterId/pages/:pageId/page-versions/:pageVersionId\",\n },\n },\n },\n index: \"/admin/courses\",\n show: \"/admin/courses/:courseId\",\n deployments: {\n index: \"/admin/courses/:courseId/deployments\",\n show: \"/admin/courses/:courseId/deployments/:deploymentId\",\n },\n configure: {\n index: \"/admin/courses/:courseId/configure\",\n security: \"/admin/courses/:courseId/configure/security\",\n certificateConfiguration:\n \"/admin/courses/:courseId/configure/certificate_configuration\",\n },\n },\n pullRequestApps: {\n index: \"/admin/pull_request_apps\",\n show: \"/admin/pull_request_apps/:pullRequestAppId\",\n courseDeployments: {\n show: \"/admin/pull_request_apps/:pullRequestAppId/course-deployments/:courseDeploymentId\",\n },\n },\n members: \"/admin/members\",\n adminPanel: \"/admin/admin-panel\",\n reports: {\n index: \"/admin/reports\",\n invalidUrls: \"/admin/reports/invalid-urls\",\n },\n assets: {\n index: \"/admin/assets\",\n databases: \"/admin/assets/databases\",\n videos: \"/admin/assets/videos\",\n audios: \"/admin/assets/audios\",\n resources: \"/admin/assets/resources\",\n },\n },\n home: \"/\",\n};\n\nexport default routes;\n","import { t } from \"i18next\";\n\nexport const SETTINGS_CATEGORIES = { GENERAL: \"GENERAL\" };\n\nexport const SETTINGS_CATEGORIES_LABELS = {\n [SETTINGS_CATEGORIES.GENERAL]: t(\"neetoRedirectUrls.settings.general.title\"),\n};\n\nexport const SHOW_TOASTR_CONFIG = { showToastr: false };\n","import { t } from \"i18next\";\nimport { RESERVED_PATHS } from \"neetocommons/constants\";\nimport { buildUrl } from \"neetocommons/utils\";\n\nimport routes from \"routes\";\n\nimport { SETTINGS_CATEGORIES_LABELS } from \"./constants\";\n\nexport const buildSettingsBreadcrumbs = (category, pageTitle) => [\n {\n link: routes.admin.adminPanel,\n text: t(\"neetoRedirectUrls.settings.title\"),\n },\n {\n link: buildUrl(routes.admin.adminPanel, {\n category: category.toLowerCase(),\n }),\n text: SETTINGS_CATEGORIES_LABELS[category],\n },\n ...(pageTitle ? [{ text: pageTitle }] : []),\n];\n\nexport const normalizeURL = url => (url ? url.replace(/\\/+$/, \"\") : \"\");\n\nexport const handleError = (setStatus, error) => {\n const { response } = error;\n if (response && response.data && response.data.errors) {\n setStatus(response.data.errors);\n }\n};\n\nexport const isReservedPath = url => {\n if (!url) return false;\n\n const domainUrls =\n window.globalProps.organization?.domainUrls?.map(normalizeURL) || [];\n\n return domainUrls.some(domainUrl =>\n RESERVED_PATHS.some(\n reservedPath =>\n normalizeURL(url) === normalizeURL(`${domainUrl}/${reservedPath}`)\n )\n );\n};\n","export const URL_PATHNAME_REGEX = /^\\/[-a-zA-Z0-9@:%_+.~#?&//=]*$/g;\n","import { t } from \"i18next\";\nimport { VALID_URL_REGEX } from \"neetocommons/constants\";\nimport * as yup from \"yup\";\n\nimport { isReservedPath } from \"components/utils\";\nimport { URL_PATHNAME_REGEX } from \"src/constants/regexp\";\n\nexport const REDIRECT_URL_VALIDATION_SCHEMA = yup.object().shape({\n fromPath: yup\n .string()\n .required(\n t(\"neetoRedirectUrls.redirect.validations.required\", {\n entity: \"Source\",\n })\n )\n .matches(\n URL_PATHNAME_REGEX,\n t(\"neetoRedirectUrls.redirect.validations.source\")\n ),\n toPath: yup\n .string()\n .required(\n t(\"neetoRedirectUrls.redirect.validations.required\", {\n entity: \"Destination\",\n })\n )\n .matches(\n new RegExp(`${VALID_URL_REGEX.source}|${URL_PATHNAME_REGEX.source}`),\n t(\"neetoRedirectUrls.redirect.validations.destination\")\n )\n .test(\n \"paths-not-same\",\n t(\"neetoRedirectUrls.redirect.validations.samePaths\"),\n (value, context) => {\n const { fromPath } = context.parent;\n if (!value || !fromPath) return true;\n\n return value !== fromPath;\n }\n )\n .test(\n \"reserved-path\",\n t(\"neetoRedirectUrls.redirect.validations.reservedPath\"),\n value => !isReservedPath(value)\n ),\n});\n","import { noop } from \"neetocist\";\nimport { Pane, Typography } from \"neetoui\";\nimport { Input, Form, ActionBlock } from \"neetoui/formik\";\nimport PropTypes from \"prop-types\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { REDIRECT_URL_VALIDATION_SCHEMA } from \"./constants\";\n\nconst RedirectUrlPane = ({\n handleClose,\n handleSubmit,\n initialValues = {},\n setInitialFocusField = noop,\n}) => {\n const { t } = useTranslation();\n const redirectUrlId = initialValues?.id;\n\n return (\n <>\n <Pane.Header>\n <Typography style=\"h2\">\n {redirectUrlId\n ? t(\"neetoRedirectUrls.redirect.edit\")\n : t(\"neetoRedirectUrls.redirect.add\")}\n </Typography>\n </Pane.Header>\n <Form\n formikProps={{\n initialValues: initialValues || {\n fromPath: \"\",\n toPath: \"\",\n },\n validationSchema: REDIRECT_URL_VALIDATION_SCHEMA,\n onSubmit: (values, formikBag) => {\n handleSubmit({ ...values }, formikBag);\n },\n }}\n >\n <>\n <Pane.Body>\n <div className=\"w-full space-y-4\">\n <Input\n required\n id=\"fromPath\"\n label={t(\"neetoRedirectUrls.redirect.source\")}\n name=\"fromPath\"\n ref={setInitialFocusField}\n placeholder={t(\n \"neetoRedirectUrls.common.placeholder.relativeUrl\"\n )}\n />\n <Input\n required\n id=\"toPath\"\n label={t(\"neetoRedirectUrls.redirect.destination\")}\n name=\"toPath\"\n placeholder={window.location.origin}\n />\n </div>\n </Pane.Body>\n <Pane.Footer>\n <ActionBlock cancelButtonProps={{ onClick: handleClose }} />\n </Pane.Footer>\n </>\n </Form>\n </>\n );\n};\n\nRedirectUrlPane.propTypes = {\n handleClose: PropTypes.func,\n handleSubmit: PropTypes.func,\n};\n\nexport default RedirectUrlPane;\n","export const REDIRECT_URLS_BASE_URL =\n \"/neeto_redirect_urls_engine/api/v1/redirect_urls\";\n","import axios from \"axios\";\n\nimport { REDIRECT_URLS_BASE_URL } from \"src/constants\";\n\nconst fetch = () => axios.get(REDIRECT_URLS_BASE_URL);\n\nconst fetchAll = params => axios.get(REDIRECT_URLS_BASE_URL, params);\n\nconst create = ({ payload, config }) =>\n axios.post(REDIRECT_URLS_BASE_URL, payload, config);\n\nconst update = ({ id, payload, config }) =>\n axios.put(`${REDIRECT_URLS_BASE_URL}/${id}`, payload, config);\n\nconst destroy = id => axios.delete(`${REDIRECT_URLS_BASE_URL}/${id}`);\n\nconst redirectUrlApi = { fetch, fetchAll, create, update, destroy };\n\nexport default redirectUrlApi;\n","export const QUERY_KEYS = { REDIRECT_URLS: \"redirect_urls\" };\n\n","import { useQuery } from \"@tanstack/react-query\";\nimport { useMutationWithInvalidation } from \"neetocommons/react-utils\";\n\nimport redirectUrlApi from \"apis/redirect_url\";\nimport { QUERY_KEYS } from \"src/constants/query\";\n\nconst useFetchAllRedirectUrls = (searchQuery, options) =>\n useQuery({\n queryKey: [QUERY_KEYS.REDIRECT_URLS, searchQuery],\n queryFn: () => redirectUrlApi.fetchAll(searchQuery),\n ...options,\n });\n\nconst useCreateRedirectUrl = options =>\n useMutationWithInvalidation(redirectUrlApi.create, {\n keysToInvalidate: [QUERY_KEYS.REDIRECT_URLS],\n ...options,\n });\n\nconst useUpdateRedirectUrl = options =>\n useMutationWithInvalidation(redirectUrlApi.update, {\n keysToInvalidate: [QUERY_KEYS.REDIRECT_URLS],\n ...options,\n });\n\nconst useDestroyRedirectUrl = options =>\n useMutationWithInvalidation(redirectUrlApi.destroy, {\n keysToInvalidate: [QUERY_KEYS.REDIRECT_URLS],\n ...options,\n });\n\nexport {\n useFetchAllRedirectUrls,\n useCreateRedirectUrl,\n useUpdateRedirectUrl,\n useDestroyRedirectUrl,\n};\n","export const DOC_BASE_URL = `https://help.${globalProps.appName.toLowerCase()}.com/articles`;\n\nexport const CREATE_REDIRECT_URL_HELP_DOC_URL = `${DOC_BASE_URL}/creating-a-redirect-url`;\n\nexport const DOMAIN_LEVEL_REDIRECT_HELP_DOC_URL = `${DOC_BASE_URL}/domain-level-redirection`;\n","import { t } from \"i18next\";\nimport { VALID_URL_REGEX } from \"neetocommons/constants\";\nimport * as yup from \"yup\";\n\nimport { normalizeURL, isReservedPath } from \"components/utils\";\n\nexport const DOMAIN_REDIRECTION_VALIDATION_SCHEMA = yup.object().shape({\n toPath: yup\n .string()\n .nullable()\n .when(\"domainRedirectionActive\", {\n is: true,\n then: yup\n .string()\n .required(\n t(\"neetoRedirectUrls.redirect.validations.required\", {\n entity: \"Destination\",\n })\n )\n .matches(\n VALID_URL_REGEX,\n t(\"neetoRedirectUrls.redirect.validations.destination\")\n )\n .test(\n \"not-duplicate-domain\",\n t(\"neetoRedirectUrls.redirect.validations.duplicateDomain\"),\n value => {\n if (!value) return true;\n\n const domainUrls =\n window.globalProps.organization?.domainUrls?.map(normalizeURL) ||\n [];\n\n return !domainUrls.includes(normalizeURL(value));\n }\n )\n .test(\n \"reserved-path\",\n t(\"neetoRedirectUrls.redirect.validations.reservedPath\"),\n value => !isReservedPath(value)\n ),\n }),\n});\n","import { useEffect, useState } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { Edit } from \"neetoicons\";\nimport CardLayout from \"neetomolecules/CardLayout\";\nimport { FormikInlineInput } from \"neetomolecules/InlineInput\";\nimport { Typography, Label, Button } from \"neetoui\";\nimport { Switch, Form, Input } from \"neetoui/formik\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport {\n useCreateRedirectUrl,\n useDestroyRedirectUrl,\n useUpdateRedirectUrl,\n} from \"hooks/reactQuery/useRedirectUrlApi\";\nimport { DOMAIN_LEVEL_REDIRECT_HELP_DOC_URL } from \"src/constants/helpUrls\";\n\nimport { DOMAIN_REDIRECTION_VALIDATION_SCHEMA } from \"./constants\";\n\nconst DomainRedirection = ({ domainRedirectUrl, entity, helpDocUrls }) => {\n const [isEditingDomainRedirect, setIsEditingDomainRedirect] = useState(true);\n const { t } = useTranslation();\n const { mutateAsync: createLink } = useCreateRedirectUrl();\n\n const { mutateAsync: updateLink } = useUpdateRedirectUrl();\n const { mutate: destroyLink } = useDestroyRedirectUrl();\n\n const initialValues = {\n domainRedirectionActive: isPresent(domainRedirectUrl?.toPath),\n toPath: domainRedirectUrl?.toPath,\n };\n\n const handleSubmit = values => {\n const payload = {\n toPath: values.toPath,\n redirection_type: \"domain\",\n };\n\n return domainRedirectUrl\n ? updateLink({ id: domainRedirectUrl.id, payload })\n : createLink({ payload });\n };\n\n const handleRemoveRedirection = domainLinkActive => {\n if (!(domainLinkActive && domainRedirectUrl)) {\n setIsEditingDomainRedirect(true);\n\n return;\n }\n destroyLink(domainRedirectUrl.id);\n };\n\n useEffect(() => {\n if (isPresent(domainRedirectUrl?.toPath)) {\n setIsEditingDomainRedirect(false);\n }\n }, [domainRedirectUrl]);\n\n return (\n <Form\n className=\"mb-6 w-full\"\n formikProps={{\n initialValues,\n validationSchema: DOMAIN_REDIRECTION_VALIDATION_SCHEMA,\n enableReinitialize: true,\n onSubmit: handleSubmit,\n }}\n >\n {({ values: { domainRedirectionActive }, dirty }) => (\n <CardLayout containerClassName=\"ml-0\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex flex-col space-y-2\">\n <Label className=\"flex items-center gap-2\">\n <Switch\n data-cy=\"domain-level-redirection-switch\"\n name=\"domainRedirectionActive\"\n onClick={() =>\n handleRemoveRedirection(domainRedirectionActive)\n }\n />\n <Typography\n component=\"span\"\n data-cy=\"domain-level-redirection-heading\"\n style=\"h5\"\n weight=\"medium\"\n >\n {t(\"neetoRedirectUrls.redirect.domainLevelRedirect.label\")}\n </Typography>\n </Label>\n <Typography component=\"p\" style=\"body2\">\n <Trans\n i18nKey=\"neetoRedirectUrls.redirect.domainLevelRedirect.description\"\n values={{ entity, app: window.globalProps.appName }}\n components={{\n Link: (\n <Button\n className=\"text-sm\"\n data-cy=\"domain-level-redirections-help-button\"\n style=\"link\"\n target=\"_blank\"\n href={\n helpDocUrls.domainLevelRedirectUrl ||\n DOMAIN_LEVEL_REDIRECT_HELP_DOC_URL\n }\n />\n ),\n }}\n />\n </Typography>\n </div>\n </div>\n {domainRedirectionActive && (\n <div className=\"mt-2 flex w-1/2 items-start space-x-3\">\n {isEditingDomainRedirect ? (\n <FormikInlineInput\n data-cy=\"domain-level-redirection-link-text-field\"\n handleCancel={() => dirty}\n name=\"toPath\"\n placeholder={t(\"neetoRedirectUrls.common.placeholder.url\")}\n cancelButtonProps={{\n disabled: !dirty,\n \"data-cy\": \"domain-level-redirection-link-cancel-button\",\n }}\n submitButtonProps={{\n \"data-cy\": \"domain-level-redirection-link-submit-button\",\n }}\n />\n ) : (\n <>\n <Input disabled name=\"toPath\" />\n <Button\n data-cy=\"domain-level-redirection-edit-btn\"\n icon={Edit}\n style=\"link\"\n onClick={() => setIsEditingDomainRedirect(true)}\n />\n </>\n )}\n </div>\n )}\n </CardLayout>\n )}\n </Form>\n );\n};\n\nexport default DomainRedirection;\n","import { t } from \"i18next\";\n\nimport { SETTINGS_CATEGORIES } from \"../constants\";\nimport { buildSettingsBreadcrumbs } from \"../utils\";\n\nexport const buildBreadcrumbs = pageTitle =>\n buildSettingsBreadcrumbs(SETTINGS_CATEGORIES.GENERAL, pageTitle);\n\nexport const buildMoreMenuItems = ({\n redirectUrl,\n setUrlDetailsToEdit,\n setUrlDetailsToDelete,\n}) => {\n const { id, fromPath, toPath } = redirectUrl;\n\n return [\n {\n key: \"edit-menu\",\n \"data-cy\": \"neeto-redirect-url-edit-btn\",\n label: t(\"neetoRedirectUrls.common.edit\"),\n onClick: () => {\n setUrlDetailsToEdit({ id, fromPath, toPath });\n },\n },\n {\n key: \"delete-menu\",\n \"data-cy\": \"neeto-redirect-url-delete-btn\",\n label: t(\"neetoRedirectUrls.common.delete\"),\n onClick: () => {\n setUrlDetailsToDelete({ id, fromPath, toPath });\n },\n },\n ];\n};\n","import { DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport MoreDropdown from \"neetomolecules/MoreDropdown\";\nimport TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Table } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { buildMoreMenuItems } from \"./utils\";\n\nconst RedirectUrlsTable = ({\n redirectUrls = [],\n currentPageNumber,\n setCurrentPageNumber,\n recordsCount,\n setUrlDetailsToEdit,\n setUrlDetailsToDelete,\n isFetching,\n}) => {\n const truncateUrl = url => {\n const urlString = String(url);\n\n return urlString.length <= 50 ? urlString : `${urlString.slice(0, 50)}...`;\n };\n\n const { t } = useTranslation();\n const columnData = [\n {\n title: t(\"neetoRedirectUrls.redirect.source\"),\n dataIndex: \"source\",\n key: \"name\",\n width: 300,\n render: (_, redirectUrl) => {\n const { fromPath } = redirectUrl;\n\n return (\n <div className=\"flex items-center justify-between gap-x-3\">\n <span>{fromPath && truncateUrl(fromPath)}</span>\n <MoreDropdown\n dropdownButtonProps={{ className: \"mr-1 my-1\" }}\n dropdownProps={{\n strategy: \"fixed\",\n appendTo: () => document.body,\n }}\n menuItems={buildMoreMenuItems({\n redirectUrl,\n setUrlDetailsToEdit,\n setUrlDetailsToDelete,\n })}\n />\n </div>\n );\n },\n },\n {\n title: t(\"neetoRedirectUrls.redirect.destination\"),\n dataIndex: \"toPath\",\n key: \"toPath\",\n width: 300,\n render: toPath => toPath && truncateUrl(toPath),\n },\n ];\n\n return (\n <TableWrapper hasPagination={recordsCount > DEFAULT_PAGE_SIZE}>\n <Table\n {...{ columnData, currentPageNumber }}\n fixedHeight\n handlePageChange={page => setCurrentPageNumber(page)}\n loading={isFetching}\n rowData={redirectUrls}\n totalCount={recordsCount}\n paginationProps={{\n hideOnSinglePage: recordsCount < DEFAULT_PAGE_SIZE + 1,\n showSizeChanger: recordsCount > DEFAULT_PAGE_SIZE,\n }}\n />\n </TableWrapper>\n );\n};\n\nexport default RedirectUrlsTable;\n","import { useRef, useState } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { useQueryParams } from \"neetocommons/react-utils\";\nimport { showThumbsUpToastr } from \"neetocommons/utils\";\nimport Container from \"neetomolecules/Container\";\nimport Header from \"neetomolecules/Header\";\nimport { Pane, NoData, Button, Spinner } from \"neetoui\";\nimport { isEmpty, isNotNil } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport DeleteRedirectUrlModal from \"components/commons/DeleteRedirectUrlModal\";\nimport RedirectUrlPane from \"components/commons/RedirectUrlPane\";\nimport { SHOW_TOASTR_CONFIG } from \"components/constants\";\nimport { handleError } from \"components/utils\";\nimport {\n useFetchAllRedirectUrls,\n useUpdateRedirectUrl,\n useDestroyRedirectUrl,\n useCreateRedirectUrl,\n} from \"hooks/reactQuery/useRedirectUrlApi\";\nimport { CREATE_REDIRECT_URL_HELP_DOC_URL } from \"src/constants/helpUrls\";\n\nimport DomainRedirection from \"./DomainRedirection\";\nimport RedirectUrlsTable from \"./RedirectUrlsTable\";\nimport { buildBreadcrumbs } from \"./utils\";\n\nconst RedirectUrls = ({ entity, helpDocUrls = {} }) => {\n const { t } = useTranslation();\n const { searchTerm = \"\" } = useQueryParams();\n const initialFocusField = useRef();\n const [currentPageNumber, setCurrentPageNumber] = useState(1);\n const [urlDetailsToDelete, setUrlDetailsToDelete] = useState(null);\n const [urlDetailsToEdit, setUrlDetailsToEdit] = useState(null);\n const [isModalOpen, setIsModalOpen] = useState(false);\n\n const { mutate: createRedirectUrl } = useCreateRedirectUrl();\n\n const searchQuery = {\n page: currentPageNumber,\n ...(isEmpty(searchTerm) ? {} : { searchTerm }),\n };\n\n const {\n data: { redirectUrls = [], domainRedirectUrl } = {},\n isLoading,\n isFetching,\n } = useFetchAllRedirectUrls({ params: searchQuery });\n\n const isFiltersVisible = redirectUrls?.length > 0 || isPresent(searchTerm);\n\n const { mutate: updateRedirectUrl } = useUpdateRedirectUrl();\n\n const { mutate: deleteRedirectUrl } = useDestroyRedirectUrl();\n\n const handleCreateRedirectUrl = (\n redirectUrl,\n { setSubmitting, setStatus }\n ) => {\n createRedirectUrl(\n { payload: redirectUrl, config: SHOW_TOASTR_CONFIG },\n {\n onError: error => {\n handleError(setStatus, error);\n setSubmitting(false);\n },\n onSuccess: () => {\n showThumbsUpToastr();\n setIsModalOpen(false);\n },\n }\n );\n };\n\n const handleRedirectUrlUpdate = (\n redirectUrl,\n { setSubmitting, setStatus }\n ) => {\n updateRedirectUrl(\n { id: redirectUrl.id, payload: redirectUrl, config: SHOW_TOASTR_CONFIG },\n {\n onError: error => {\n handleError(setStatus, error);\n setSubmitting(false);\n },\n onSuccess: () => {\n showThumbsUpToastr();\n setUrlDetailsToEdit(null);\n },\n }\n );\n };\n\n const handleRedirectUrlDelete = urlId => {\n deleteRedirectUrl(urlId, {\n onSettled: () => {\n setUrlDetailsToDelete(null);\n },\n });\n };\n\n const pageTitle = t(\"neetoRedirectUrls.settings.redirecturl.title\");\n\n const setInitialFocusField = fieldRef =>\n (initialFocusField.current = fieldRef);\n\n return (\n <Container className=\"w-full\">\n {isLoading ? (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n ) : (\n <>\n <Header\n breadcrumbs={buildBreadcrumbs(pageTitle)}\n title={pageTitle}\n actionBlock={\n <Button\n data-cy=\"add-new-redirect-url-button\"\n label={t(\"neetoRedirectUrls.redirect.add\")}\n onClick={() => setIsModalOpen(true)}\n />\n }\n searchProps={\n isFiltersVisible && {\n placeholder: t(\"neetoRedirectUrls.redirect.search\"),\n }\n }\n titleHelpPopoverProps={{\n title: t(\"neetoRedirectUrls.settings.redirecturl.title\"),\n description: t(\n \"neetoRedirectUrls.settings.redirecturl.description\"\n ),\n helpLinkProps: {\n href:\n helpDocUrls.createRedirectUrl ||\n CREATE_REDIRECT_URL_HELP_DOC_URL,\n },\n }}\n />\n <>\n {isEmpty(redirectUrls) ? (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n title={t(\"neetoRedirectUrls.emptyState.redirectURLs.title\")}\n helpText={\n <Trans\n i18nKey=\"neetoRedirectUrls.emptyState.redirectURLs.description\"\n components={{\n helpLink: (\n <Button\n style=\"link\"\n target=\"_blank\"\n href={\n helpDocUrls.createRedirectUrl ||\n CREATE_REDIRECT_URL_HELP_DOC_URL\n }\n />\n ),\n }}\n />\n }\n primaryButtonProps={{\n label: t(\"neetoRedirectUrls.redirect.add\"),\n onClick: () => setIsModalOpen(true),\n }}\n />\n </div>\n ) : (\n <>\n <div className=\"w-full\">\n <DomainRedirection\n {...{ domainRedirectUrl, entity, helpDocUrls }}\n />\n </div>\n <RedirectUrlsTable\n {...{\n currentPageNumber,\n isFetching,\n redirectUrls,\n setCurrentPageNumber,\n setUrlDetailsToDelete,\n setUrlDetailsToEdit,\n }}\n recordsCount={redirectUrls.length}\n />\n </>\n )}\n <DeleteRedirectUrlModal\n detailsToDelete={urlDetailsToDelete}\n handleClose={() => setUrlDetailsToDelete(null)}\n handleSubmit={handleRedirectUrlDelete}\n isOpen={urlDetailsToDelete !== null}\n />\n <Pane\n initialFocusRef={initialFocusField}\n isOpen={isModalOpen || isNotNil(urlDetailsToEdit)}\n onClose={() => {\n setIsModalOpen(false);\n setUrlDetailsToEdit(null);\n }}\n >\n <RedirectUrlPane\n {...{ setInitialFocusField }}\n handleClose={() => setIsModalOpen(false)}\n initialValues={urlDetailsToEdit ?? {}}\n handleSubmit={\n isNotNil(urlDetailsToEdit)\n ? handleRedirectUrlUpdate\n : handleCreateRedirectUrl\n }\n />\n </Pane>\n </>\n </>\n )}\n </Container>\n );\n};\n\nexport default RedirectUrls;\n"],"names":["DeleteRedirectUrlModal","_ref","handleClose","handleSubmit","detailsToDelete","isOpen","_useTranslation","useTranslation","t","id","toPath","fromPath","title","_jsx","Alert","submitButtonLabel","message","Trans","i18nKey","values","from_path","to_path","onClose","onSubmit","routes","admin","index","courses","chapters","show","chapterVersions","pages","pageVersions","deployments","configure","security","certificateConfiguration","pullRequestApps","courseDeployments","members","adminPanel","reports","invalidUrls","assets","databases","videos","audios","resources","home","SETTINGS_CATEGORIES","GENERAL","SETTINGS_CATEGORIES_LABELS","_defineProperty","SHOW_TOASTR_CONFIG","showToastr","buildSettingsBreadcrumbs","category","pageTitle","link","text","buildUrl","toLowerCase","concat","_toConsumableArray","normalizeURL","url","replace","handleError","setStatus","error","response","data","errors","isReservedPath","_window$globalProps$o","domainUrls","window","globalProps","organization","map","some","domainUrl","RESERVED_PATHS","reservedPath","URL_PATHNAME_REGEX","REDIRECT_URL_VALIDATION_SCHEMA","yup","object","shape","string","required","entity","matches","RegExp","VALID_URL_REGEX","source","test","value","context","parent","RedirectUrlPane","_ref$initialValues","initialValues","_ref$setInitialFocusF","setInitialFocusField","noop","redirectUrlId","_jsxs","_Fragment","children","Pane","Header","Typography","style","Form","formikProps","validationSchema","formikBag","_objectSpread","Body","className","Input","label","name","ref","placeholder","location","origin","Footer","ActionBlock","cancelButtonProps","onClick","REDIRECT_URLS_BASE_URL","fetch","axios","get","fetchAll","params","create","payload","config","post","update","_ref2","put","destroy","redirectUrlApi","QUERY_KEYS","REDIRECT_URLS","useFetchAllRedirectUrls","searchQuery","options","useQuery","queryKey","queryFn","useCreateRedirectUrl","useMutationWithInvalidation","keysToInvalidate","useUpdateRedirectUrl","useDestroyRedirectUrl","DOC_BASE_URL","appName","CREATE_REDIRECT_URL_HELP_DOC_URL","DOMAIN_LEVEL_REDIRECT_HELP_DOC_URL","DOMAIN_REDIRECTION_VALIDATION_SCHEMA","nullable","when","is","then","includes","DomainRedirection","domainRedirectUrl","helpDocUrls","_useState","useState","_useState2","_slicedToArray","isEditingDomainRedirect","setIsEditingDomainRedirect","_useCreateRedirectUrl","createLink","mutateAsync","_useUpdateRedirectUrl","updateLink","_useDestroyRedirectUr","destroyLink","mutate","domainRedirectionActive","isPresent","redirection_type","handleRemoveRedirection","domainLinkActive","useEffect","enableReinitialize","dirty","CardLayout","containerClassName","Label","Switch","component","weight","app","components","Link","Button","target","href","domainLevelRedirectUrl","FormikInlineInput","handleCancel","disabled","submitButtonProps","icon","Edit","buildBreadcrumbs","buildMoreMenuItems","redirectUrl","setUrlDetailsToEdit","setUrlDetailsToDelete","key","RedirectUrlsTable","_ref$redirectUrls","redirectUrls","currentPageNumber","setCurrentPageNumber","recordsCount","isFetching","truncateUrl","urlString","String","length","slice","columnData","dataIndex","width","render","_","MoreDropdown","dropdownButtonProps","dropdownProps","strategy","appendTo","document","body","menuItems","TableWrapper","hasPagination","DEFAULT_PAGE_SIZE","Table","fixedHeight","handlePageChange","page","loading","rowData","totalCount","paginationProps","hideOnSinglePage","showSizeChanger","RedirectUrls","_ref$helpDocUrls","_useQueryParams","useQueryParams","_useQueryParams$searc","searchTerm","initialFocusField","useRef","_useState3","_useState4","urlDetailsToDelete","_useState5","_useState6","urlDetailsToEdit","_useState7","_useState8","isModalOpen","setIsModalOpen","createRedirectUrl","isEmpty","_useFetchAllRedirectU","_useFetchAllRedirectU2","_useFetchAllRedirectU3","_useFetchAllRedirectU4","isLoading","isFiltersVisible","updateRedirectUrl","deleteRedirectUrl","handleCreateRedirectUrl","setSubmitting","onError","onSuccess","showThumbsUpToastr","handleRedirectUrlUpdate","_ref3","handleRedirectUrlDelete","urlId","onSettled","fieldRef","current","Container","Spinner","breadcrumbs","actionBlock","searchProps","titleHelpPopoverProps","description","helpLinkProps","NoData","helpText","helpLink","primaryButtonProps","initialFocusRef","isNotNil"],"mappings":"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"}
@@ -8,10 +8,10 @@ var reactUtils = require('@bigbinary/neeto-commons-frontend/react-utils');
8
8
  var utils = require('@bigbinary/neeto-commons-frontend/utils');
9
9
  var Container = require('@bigbinary/neeto-molecules/Container');
10
10
  var Header = require('@bigbinary/neeto-molecules/Header');
11
- var PageLoader = require('@bigbinary/neeto-molecules/PageLoader');
12
11
  var Pane = require('@bigbinary/neetoui/Pane');
13
12
  var NoData = require('@bigbinary/neetoui/NoData');
14
13
  var Button = require('@bigbinary/neetoui/Button');
14
+ var Spinner = require('@bigbinary/neetoui/Spinner');
15
15
  var ramda = require('ramda');
16
16
  var reactI18next = require('react-i18next');
17
17
  var Alert = require('@bigbinary/neetoui/Alert');
@@ -84,89 +84,6 @@ var DeleteRedirectUrlModal = function DeleteRedirectUrlModal(_ref) {
84
84
  });
85
85
  };
86
86
 
87
- var URL_PATHNAME_REGEX = /^\/[-a-zA-Z0-9@:%_+.~#?&//=]*$/g;
88
-
89
- var REDIRECT_URL_VALIDATION_SCHEMA = yup__namespace.object().shape({
90
- fromPath: yup__namespace.string().required(i18next.t("neetoRedirectUrls.redirect.validations.required", {
91
- entity: "Source"
92
- })).matches(URL_PATHNAME_REGEX, i18next.t("neetoRedirectUrls.redirect.validations.source")),
93
- toPath: yup__namespace.string().required(i18next.t("neetoRedirectUrls.redirect.validations.required", {
94
- entity: "Destination"
95
- })).matches(new RegExp("".concat(constants.VALID_URL_REGEX.source, "|").concat(URL_PATHNAME_REGEX.source)), i18next.t("neetoRedirectUrls.redirect.validations.destination")).test("paths-not-same", i18next.t("neetoRedirectUrls.redirect.validations.samePaths"), function (value, context) {
96
- var fromPath = context.parent.fromPath;
97
- if (!value || !fromPath) return true;
98
- return value !== fromPath;
99
- })
100
- });
101
-
102
- function ownKeys$2(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; }
103
- function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
104
- var RedirectUrlPane = function RedirectUrlPane(_ref) {
105
- var handleClose = _ref.handleClose,
106
- handleSubmit = _ref.handleSubmit,
107
- _ref$initialValues = _ref.initialValues,
108
- initialValues = _ref$initialValues === void 0 ? {} : _ref$initialValues,
109
- _ref$setInitialFocusF = _ref.setInitialFocusField,
110
- setInitialFocusField = _ref$setInitialFocusF === void 0 ? neetoCist.noop : _ref$setInitialFocusF;
111
- var _useTranslation = reactI18next.useTranslation(),
112
- t = _useTranslation.t;
113
- var redirectUrlId = initialValues === null || initialValues === void 0 ? void 0 : initialValues.id;
114
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
115
- children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Header, {
116
- children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
117
- style: "h2",
118
- children: redirectUrlId ? t("neetoRedirectUrls.redirect.edit") : t("neetoRedirectUrls.redirect.add")
119
- })
120
- }), /*#__PURE__*/jsxRuntime.jsx(Form, {
121
- formikProps: {
122
- initialValues: initialValues || {
123
- fromPath: "",
124
- toPath: ""
125
- },
126
- validationSchema: REDIRECT_URL_VALIDATION_SCHEMA,
127
- onSubmit: function onSubmit(values, formikBag) {
128
- handleSubmit(_objectSpread$2({}, values), formikBag);
129
- }
130
- },
131
- children: /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
132
- children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
133
- children: /*#__PURE__*/jsxRuntime.jsxs("div", {
134
- className: "w-full space-y-4",
135
- children: [/*#__PURE__*/jsxRuntime.jsx(Input, {
136
- required: true,
137
- id: "fromPath",
138
- label: t("neetoRedirectUrls.redirect.source"),
139
- name: "fromPath",
140
- ref: setInitialFocusField,
141
- placeholder: t("neetoRedirectUrls.common.placeholder.relativeUrl")
142
- }), /*#__PURE__*/jsxRuntime.jsx(Input, {
143
- required: true,
144
- id: "toPath",
145
- label: t("neetoRedirectUrls.redirect.destination"),
146
- name: "toPath",
147
- placeholder: window.location.origin
148
- })]
149
- })
150
- }), /*#__PURE__*/jsxRuntime.jsx(Pane.Footer, {
151
- children: /*#__PURE__*/jsxRuntime.jsx(ActionBlock, {
152
- cancelButtonProps: {
153
- onClick: handleClose
154
- }
155
- })
156
- })]
157
- })
158
- })]
159
- });
160
- };
161
-
162
- var SETTINGS_CATEGORIES = {
163
- GENERAL: "GENERAL"
164
- };
165
- var SETTINGS_CATEGORIES_LABELS = _defineProperty({}, SETTINGS_CATEGORIES.GENERAL, i18next.t("neetoRedirectUrls.settings.general.title"));
166
- var SHOW_TOASTR_CONFIG = {
167
- showToastr: false
168
- };
169
-
170
87
  var routes = {
171
88
  admin: {
172
89
  index: "/admin",
@@ -219,6 +136,14 @@ var routes = {
219
136
  home: "/"
220
137
  };
221
138
 
139
+ var SETTINGS_CATEGORIES = {
140
+ GENERAL: "GENERAL"
141
+ };
142
+ var SETTINGS_CATEGORIES_LABELS = _defineProperty({}, SETTINGS_CATEGORIES.GENERAL, i18next.t("neetoRedirectUrls.settings.general.title"));
143
+ var SHOW_TOASTR_CONFIG = {
144
+ showToastr: false
145
+ };
146
+
222
147
  var buildSettingsBreadcrumbs = function buildSettingsBreadcrumbs(category, pageTitle) {
223
148
  return [{
224
149
  link: routes.admin.adminPanel,
@@ -241,6 +166,93 @@ var handleError = function handleError(setStatus, error) {
241
166
  setStatus(response.data.errors);
242
167
  }
243
168
  };
169
+ var isReservedPath = function isReservedPath(url) {
170
+ var _window$globalProps$o;
171
+ if (!url) return false;
172
+ var domainUrls = ((_window$globalProps$o = window.globalProps.organization) === null || _window$globalProps$o === void 0 || (_window$globalProps$o = _window$globalProps$o.domainUrls) === null || _window$globalProps$o === void 0 ? void 0 : _window$globalProps$o.map(normalizeURL)) || [];
173
+ return domainUrls.some(function (domainUrl) {
174
+ return constants.RESERVED_PATHS.some(function (reservedPath) {
175
+ return normalizeURL(url) === normalizeURL("".concat(domainUrl, "/").concat(reservedPath));
176
+ });
177
+ });
178
+ };
179
+
180
+ var URL_PATHNAME_REGEX = /^\/[-a-zA-Z0-9@:%_+.~#?&//=]*$/g;
181
+
182
+ var REDIRECT_URL_VALIDATION_SCHEMA = yup__namespace.object().shape({
183
+ fromPath: yup__namespace.string().required(i18next.t("neetoRedirectUrls.redirect.validations.required", {
184
+ entity: "Source"
185
+ })).matches(URL_PATHNAME_REGEX, i18next.t("neetoRedirectUrls.redirect.validations.source")),
186
+ toPath: yup__namespace.string().required(i18next.t("neetoRedirectUrls.redirect.validations.required", {
187
+ entity: "Destination"
188
+ })).matches(new RegExp("".concat(constants.VALID_URL_REGEX.source, "|").concat(URL_PATHNAME_REGEX.source)), i18next.t("neetoRedirectUrls.redirect.validations.destination")).test("paths-not-same", i18next.t("neetoRedirectUrls.redirect.validations.samePaths"), function (value, context) {
189
+ var fromPath = context.parent.fromPath;
190
+ if (!value || !fromPath) return true;
191
+ return value !== fromPath;
192
+ }).test("reserved-path", i18next.t("neetoRedirectUrls.redirect.validations.reservedPath"), function (value) {
193
+ return !isReservedPath(value);
194
+ })
195
+ });
196
+
197
+ function ownKeys$2(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; }
198
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
199
+ var RedirectUrlPane = function RedirectUrlPane(_ref) {
200
+ var handleClose = _ref.handleClose,
201
+ handleSubmit = _ref.handleSubmit,
202
+ _ref$initialValues = _ref.initialValues,
203
+ initialValues = _ref$initialValues === void 0 ? {} : _ref$initialValues,
204
+ _ref$setInitialFocusF = _ref.setInitialFocusField,
205
+ setInitialFocusField = _ref$setInitialFocusF === void 0 ? neetoCist.noop : _ref$setInitialFocusF;
206
+ var _useTranslation = reactI18next.useTranslation(),
207
+ t = _useTranslation.t;
208
+ var redirectUrlId = initialValues === null || initialValues === void 0 ? void 0 : initialValues.id;
209
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
210
+ children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Header, {
211
+ children: /*#__PURE__*/jsxRuntime.jsx(Typography, {
212
+ style: "h2",
213
+ children: redirectUrlId ? t("neetoRedirectUrls.redirect.edit") : t("neetoRedirectUrls.redirect.add")
214
+ })
215
+ }), /*#__PURE__*/jsxRuntime.jsx(Form, {
216
+ formikProps: {
217
+ initialValues: initialValues || {
218
+ fromPath: "",
219
+ toPath: ""
220
+ },
221
+ validationSchema: REDIRECT_URL_VALIDATION_SCHEMA,
222
+ onSubmit: function onSubmit(values, formikBag) {
223
+ handleSubmit(_objectSpread$2({}, values), formikBag);
224
+ }
225
+ },
226
+ children: /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
227
+ children: [/*#__PURE__*/jsxRuntime.jsx(Pane.Body, {
228
+ children: /*#__PURE__*/jsxRuntime.jsxs("div", {
229
+ className: "w-full space-y-4",
230
+ children: [/*#__PURE__*/jsxRuntime.jsx(Input, {
231
+ required: true,
232
+ id: "fromPath",
233
+ label: t("neetoRedirectUrls.redirect.source"),
234
+ name: "fromPath",
235
+ ref: setInitialFocusField,
236
+ placeholder: t("neetoRedirectUrls.common.placeholder.relativeUrl")
237
+ }), /*#__PURE__*/jsxRuntime.jsx(Input, {
238
+ required: true,
239
+ id: "toPath",
240
+ label: t("neetoRedirectUrls.redirect.destination"),
241
+ name: "toPath",
242
+ placeholder: window.location.origin
243
+ })]
244
+ })
245
+ }), /*#__PURE__*/jsxRuntime.jsx(Pane.Footer, {
246
+ children: /*#__PURE__*/jsxRuntime.jsx(ActionBlock, {
247
+ cancelButtonProps: {
248
+ onClick: handleClose
249
+ }
250
+ })
251
+ })]
252
+ })
253
+ })]
254
+ });
255
+ };
244
256
 
245
257
  var REDIRECT_URLS_BASE_URL = "/neeto_redirect_urls_engine/api/v1/redirect_urls";
246
258
 
@@ -316,6 +328,8 @@ var DOMAIN_REDIRECTION_VALIDATION_SCHEMA = yup__namespace.object().shape({
316
328
  if (!value) return true;
317
329
  var domainUrls = ((_window$globalProps$o = window.globalProps.organization) === null || _window$globalProps$o === void 0 || (_window$globalProps$o = _window$globalProps$o.domainUrls) === null || _window$globalProps$o === void 0 ? void 0 : _window$globalProps$o.map(normalizeURL)) || [];
318
330
  return !domainUrls.includes(normalizeURL(value));
331
+ }).test("reserved-path", i18next.t("neetoRedirectUrls.redirect.validations.reservedPath"), function (value) {
332
+ return !isReservedPath(value);
319
333
  })
320
334
  })
321
335
  });
@@ -658,7 +672,10 @@ var RedirectUrls = function RedirectUrls(_ref) {
658
672
  };
659
673
  return /*#__PURE__*/jsxRuntime.jsx(Container, {
660
674
  className: "w-full",
661
- children: isLoading ? /*#__PURE__*/jsxRuntime.jsx(PageLoader, {}) : /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
675
+ children: isLoading ? /*#__PURE__*/jsxRuntime.jsx("div", {
676
+ className: "flex h-full w-full items-center justify-center",
677
+ children: /*#__PURE__*/jsxRuntime.jsx(Spinner, {})
678
+ }) : /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
662
679
  children: [/*#__PURE__*/jsxRuntime.jsx(Header, {
663
680
  breadcrumbs: buildBreadcrumbs(pageTitle),
664
681
  title: pageTitle,