diff --git a/packages/addons/sitemap/admin/components/AdminRoute/index.tsx b/packages/addons/sitemap/admin/components/AdminRoute/index.tsx index 644fae76..2dde72a1 100644 --- a/packages/addons/sitemap/admin/components/AdminRoute/index.tsx +++ b/packages/addons/sitemap/admin/components/AdminRoute/index.tsx @@ -6,7 +6,7 @@ const AdminRoute = () => { return ( } /> ); }; diff --git a/packages/addons/sitemap/admin/components/NavLink/index.tsx b/packages/addons/sitemap/admin/components/NavLink/index.tsx index 8f87360e..3eb51125 100644 --- a/packages/addons/sitemap/admin/components/NavLink/index.tsx +++ b/packages/addons/sitemap/admin/components/NavLink/index.tsx @@ -6,7 +6,7 @@ import { const NavLink = () => { return ( - + Sitemap ); diff --git a/packages/addons/sitemap/admin/index.ts b/packages/addons/sitemap/admin/index.ts index e1cbbdc0..bff77395 100644 --- a/packages/addons/sitemap/admin/index.ts +++ b/packages/addons/sitemap/admin/index.ts @@ -1,10 +1,13 @@ +import React from 'react'; import { AdminApp } from '@pluginpal/webtools-helper-plugin'; +import { Route } from 'react-router-dom'; import pluginPkg from '../package.json'; import pluginId from './helpers/pluginId'; import EditView from './components/EditView'; import AdminRoute from './components/AdminRoute'; import NavLink from './components/NavLink'; import getTranslation from './helpers/getTranslation'; +import App from './containers/Main'; const pluginDescription = pluginPkg.strapi.description || pluginPkg.description; const { name } = pluginPkg.strapi; @@ -32,7 +35,10 @@ export default { app.getPlugin('webtools').injectComponent('webtoolsRouter', 'route', { name: 'settings-route', - Component: AdminRoute, + Component: { + path: "/plugins/webtools/sitemap", + element: App, + }, }); }, async registerTrads(app: any) { diff --git a/packages/core/admin/containers/App/index.tsx b/packages/core/admin/containers/App/index.tsx index 53eafab0..88739ea0 100644 --- a/packages/core/admin/containers/App/index.tsx +++ b/packages/core/admin/containers/App/index.tsx @@ -1,5 +1,5 @@ import React from 'react'; -import { Route, Switch, useHistory } from 'react-router-dom'; +import { Routes, Route } from 'react-router-dom'; import { SubNav, @@ -18,17 +18,17 @@ import List from '../../screens/List'; import Overview from '../../screens/Overview'; const App = () => { - const history = useHistory(); - const getPlugin = useStrapiApp('MyComponent', (state) => state.getPlugin); const plugin = getPlugin(pluginId); + console.log(plugin); const sidebarComponents = plugin?.getInjectedComponents('webtoolsSidebar', 'link'); const routerComponents = plugin?.getInjectedComponents('webtoolsRouter', 'route'); - if (history.location.pathname === `/plugins/${pluginId}`) { - history.replace(`/plugins/${pluginId}/overview`); - } + + // if (history.location.pathname === `/plugins/${pluginId}`) { + // history.replace(`/plugins/${pluginId}/overview`); + // } return ( @@ -38,13 +38,13 @@ const App = () => { - + Overview - + All URLs - + Url Patterns @@ -58,16 +58,27 @@ const App = () => { )} > - - - + + } /> + } /> } /> - {routerComponents.map(({ Component }) => )} + {routerComponents.map(({ Component }) => { + console.log(Component); + return ( + } + /> + ); + // @ts-ignore + // eslint-disable-next-line react/jsx-pascal-case + return ; + })} {/* */} - + ); diff --git a/packages/core/admin/screens/List/components/TableRow/index.tsx b/packages/core/admin/screens/List/components/TableRow/index.tsx index 3525e02b..b1e9702a 100644 --- a/packages/core/admin/screens/List/components/TableRow/index.tsx +++ b/packages/core/admin/screens/List/components/TableRow/index.tsx @@ -10,7 +10,7 @@ import { import { useNotification, getFetchClient } from '@strapi/strapi/admin'; import { useIntl } from 'react-intl'; import { Trash, ExternalLink, Pencil } from '@strapi/icons'; -import { useHistory } from 'react-router-dom'; +import { useNavigate } from 'react-router-dom'; import DeleteConfirmModal from '../DeleteConfirmModal'; import { Config } from '../../../../../server/admin-api/config'; @@ -35,12 +35,12 @@ const TableRow: FC = ({ const { get } = getFetchClient(); const { formatMessage } = useIntl(); const [openDeleteModal, setOpenDeleteModal] = useState(false); - const { push } = useHistory(); + const navigate = useNavigate(); const handleClick = (path: string) => { get<{ link: string }>(`/webtools/url-alias/editLink?path=${path}`) .then((res) => { - push(res.data.link); + navigate(res.data.link); }) .catch(() => { }); }; diff --git a/packages/core/admin/screens/List/index.tsx b/packages/core/admin/screens/List/index.tsx index c8138ee2..cbbf655d 100644 --- a/packages/core/admin/screens/List/index.tsx +++ b/packages/core/admin/screens/List/index.tsx @@ -1,6 +1,5 @@ import React, { useEffect, useState } from 'react'; import { useIntl } from 'react-intl'; -import { useHistory } from 'react-router-dom'; import { Button } from '@strapi/design-system'; @@ -35,7 +34,6 @@ const List = () => { const [openModal, setOpenModal] = useState(false); const { post } = getFetchClient(); - const history = useHistory(); const { formatMessage } = useIntl(); const { get } = getFetchClient(); const [contentTypes, setContentTypes] = useState([]); @@ -49,10 +47,10 @@ const List = () => { .catch(() => { toggleNotification({ type: 'warning', message: formatMessage({ id: 'notification.error' }) }); }); - }, [get, toggleNotification]); + }, []); useEffect(() => { - get(`/webtools/url-alias/findMany${history.location.search}`) + get(`/webtools/url-alias/findMany${window.location.search}`) .then((res) => { setPaths(res.data.results); setPagination(res.data.pagination); @@ -60,7 +58,7 @@ const List = () => { .catch(() => { toggleNotification({ type: 'warning', message: formatMessage({ id: 'notification.error' }) }); }); - }, [history.location.search, queryCount, toggleNotification]); + }, [window.location.search, queryCount, toggleNotification]); useEffect(() => { get('/webtools/info/config') diff --git a/packages/core/admin/screens/Patterns/CreatePage/index.tsx b/packages/core/admin/screens/Patterns/CreatePage/index.tsx index da6a97a3..12caa307 100644 --- a/packages/core/admin/screens/Patterns/CreatePage/index.tsx +++ b/packages/core/admin/screens/Patterns/CreatePage/index.tsx @@ -6,7 +6,7 @@ import { FormikProps, FormikErrors, } from 'formik'; -import { useHistory } from 'react-router-dom'; +import { useNavigate } from 'react-router-dom'; import { Box, @@ -32,7 +32,7 @@ import LanguageCheckboxes from '../../../components/LanguageCheckboxes'; import HiddenLocalizedField from '../../../components/HiddenLocalizedField'; const CreatePatternPage = () => { - const { push } = useHistory(); + const navigate = useNavigate(); const { toggleNotification } = useNotification(); const [loading, setLoading] = useState(false); const [contentTypes, setContentTypes] = useState([]); @@ -62,7 +62,7 @@ const CreatePatternPage = () => { data: values, }); - push(`/plugins/${pluginId}/patterns`); + navigate(`/plugins/${pluginId}/patterns`); toggleNotification({ type: 'success', message: formatMessage({ id: 'webtools.settings.success.create' }), diff --git a/packages/core/admin/screens/Patterns/EditPage/index.tsx b/packages/core/admin/screens/Patterns/EditPage/index.tsx index 714c468b..03f56add 100644 --- a/packages/core/admin/screens/Patterns/EditPage/index.tsx +++ b/packages/core/admin/screens/Patterns/EditPage/index.tsx @@ -1,7 +1,7 @@ import React, { useEffect, useState } from 'react'; import { useIntl } from 'react-intl'; import { Formik, Form, FormikProps } from 'formik'; -import { useRouteMatch, useHistory } from 'react-router-dom'; +import { useParams, useNavigate } from 'react-router-dom'; import { Box, Link, @@ -26,7 +26,8 @@ import HiddenLocalizedField from '../../../components/HiddenLocalizedField'; import LanguageCheckboxes from '../../../components/LanguageCheckboxes'; const EditPatternPage = () => { - const { push } = useHistory(); + const navigate = useNavigate(); + const { id } = useParams<{ id: string }>(); const { toggleNotification } = useNotification(); const [loading, setLoading] = useState(false); const [patternEntity, setPatternEntity] = useState(null); @@ -34,10 +35,6 @@ const EditPatternPage = () => { const { formatMessage } = useIntl(); const { get, put, post } = getFetchClient(); - const { - params: { id }, - } = useRouteMatch<{ id: string }>(`/plugins/${pluginId}/patterns/:id`)!; - useEffect(() => { setLoading(true); get('/webtools/info/getContentTypes') @@ -75,7 +72,7 @@ const EditPatternPage = () => { data: values, }); - push(`/plugins/${pluginId}/patterns`); + navigate(`/plugins/${pluginId}/patterns`); toggleNotification({ type: 'success', message: formatMessage({ id: 'webtools.settings.success.edit' }), diff --git a/packages/core/admin/screens/Patterns/ListPage/components/TableBody/index.tsx b/packages/core/admin/screens/Patterns/ListPage/components/TableBody/index.tsx index b8c56bb9..4356fea2 100644 --- a/packages/core/admin/screens/Patterns/ListPage/components/TableBody/index.tsx +++ b/packages/core/admin/screens/Patterns/ListPage/components/TableBody/index.tsx @@ -5,7 +5,7 @@ import { import { Pencil, Trash } from '@strapi/icons'; import { getFetchClient, useNotification } from '@strapi/strapi/admin'; import { useIntl } from 'react-intl'; -import { useHistory } from 'react-router-dom'; +import { useNavigate } from 'react-router-dom'; import pluginId from '../../../../../helpers/pluginId'; import { PatternEntity } from '../../../../../types/url-patterns'; @@ -17,7 +17,7 @@ interface Props { const TableBody: React.FC = ({ patterns }) => { const [statePatterns, setStatePatterns] = useState(patterns); const { formatMessage } = useIntl(); - const { push } = useHistory(); + const navigate = useNavigate(); const { toggleNotification } = useNotification(); const { get } = getFetchClient(); @@ -34,7 +34,7 @@ const TableBody: React.FC = ({ patterns }) => { }; const handleClickEdit = (id: number) => { - push(`/plugins/${pluginId}/patterns/${id}`); + navigate(`/plugins/${pluginId}/patterns/${id}`); }; return ( diff --git a/packages/core/admin/screens/Patterns/ListPage/index.tsx b/packages/core/admin/screens/Patterns/ListPage/index.tsx index 5b157b60..28b9b375 100644 --- a/packages/core/admin/screens/Patterns/ListPage/index.tsx +++ b/packages/core/admin/screens/Patterns/ListPage/index.tsx @@ -1,6 +1,6 @@ import React, { useEffect, useState } from 'react'; import { useIntl } from 'react-intl'; -import { useHistory } from 'react-router-dom'; +import { useNavigate } from 'react-router-dom'; import { Loader, Button, @@ -19,7 +19,7 @@ const ListPatternPage = () => { const [patterns, setPatterns] = useState([]); const [loading, setLoading] = useState(false); const { formatMessage } = useIntl(); - const { push } = useHistory(); + const navigate = useNavigate(); const { get } = getFetchClient(); useEffect(() => { @@ -54,7 +54,7 @@ const ListPatternPage = () => { title={formatMessage({ id: 'webtools.settings.page.patterns.title', defaultMessage: 'Patterns' })} subtitle={formatMessage({ id: 'webtools.settings.page.patterns.description', defaultMessage: 'A list of all the known URL alias patterns.' })} primaryAction={( -