From d341be24f7a889c3535bb6e94146c04addd1bc6e Mon Sep 17 00:00:00 2001 From: Jan Tojnar Date: Thu, 9 Dec 2021 08:56:49 +0100 Subject: [PATCH] wip: Switch to react-router 6 Currently broken because regex pattern support has been removed: https://github.com/remix-run/react-router/issues/8254 --- assets/js/templates/App.jsx | 206 +++++++++++++------------ assets/js/templates/EntriesPage.jsx | 45 +++--- assets/js/templates/Item.jsx | 26 ++-- assets/js/templates/LoginForm.jsx | 19 ++- assets/js/templates/NavFilters.jsx | 4 +- assets/js/templates/NavSearch.jsx | 20 +-- assets/js/templates/NavSources.jsx | 4 +- assets/js/templates/NavTags.jsx | 4 +- assets/js/templates/SearchList.jsx | 12 +- assets/js/templates/SourcesPage.jsx | 6 +- assets/package-lock.json | 225 ++++++---------------------- assets/package.json | 2 +- 12 files changed, 235 insertions(+), 338 deletions(-) diff --git a/assets/js/templates/App.jsx b/assets/js/templates/App.jsx index 5fcabf1c44..a8170d3c5c 100644 --- a/assets/js/templates/App.jsx +++ b/assets/js/templates/App.jsx @@ -3,13 +3,14 @@ import PropTypes from 'prop-types'; import nullable from 'prop-types-nullable'; import { BrowserRouter as Router, - Switch, + Routes, Route, Link, Redirect, useHistory, useLocation, - useRouteMatch, + useMatch, + useNavigate, } from 'react-router-dom'; import { FontAwesomeIcon } from '@fortawesome/react-fontawesome'; import Collapse from '@kunukn/react-collapse'; @@ -147,10 +148,15 @@ function PureApp({ }, []); // TODO: move stuff that depends on this to the App. - const history = useHistory(); + const navigate = useNavigate(); + React.useEffect(() => { + selfoss.navigate = navigate; + }, [navigate]); + + const entriesPageMatch = useMatch(ENTRIES_ROUTE_PATTERN); React.useEffect(() => { - selfoss.history = history; - }, [history]); + selfoss.entriesPageMatch = entriesPageMatch; + }, [entriesPageMatch]); // Prepare path of the homepage for redirecting from / let homePagePath = configuration.homepage.split('/'); @@ -181,97 +187,113 @@ function PureApp({ - - - {/* menu open for smartphone */} -
- -
-
- - - -