fix(router): a link could include '%23' instead of '#'

This commit is contained in:
Tom (plebeius.eth)
2024-10-27 15:49:39 +01:00
parent f280f33556
commit 360dfb4604
+12 -1
View File
@@ -1,5 +1,5 @@
import { useEffect, useState } from 'react';
import { Outlet, Route, Routes, useLocation, useParams } from 'react-router-dom';
import { Outlet, Route, Routes, useLocation, useNavigate, useParams } from 'react-router-dom';
import { useAccountComment } from '@plebbit/plebbit-react-hooks';
import { isAllView, isSubscriptionsView } from './lib/utils/view-utils';
import useIsMobile from './hooks/use-is-mobile';
@@ -90,6 +90,17 @@ const GlobalLayout = () => {
};
const App = () => {
// react router doesn't handle the %23 hash correctly, so we need to replace it with #
const navigate = useNavigate();
const location = useLocation();
useEffect(() => {
const currentPath = location.pathname + location.hash;
if (currentPath.includes('%23')) {
const correctedPath = currentPath.replace('%23', '#');
navigate(correctedPath, { replace: true });
}
}, [location, navigate]);
return (
<div className={styles.app}>
<Routes>