fix pageName

This commit is contained in:
Bastian Ike
2021-01-11 15:23:11 +01:00
parent 1541eaf525
commit f3e832ae48

View File

@@ -4,42 +4,54 @@ import Header from './Header/Header';
import Footer from './Footer/Footer'; import Footer from './Footer/Footer';
import Router from './Router'; import Router from './Router';
import {BrowserRouter, Switch, Route, Redirect, useParams, useLocation} from 'react-router-dom'; import {BrowserRouter, Switch, Route, Redirect, useParams, useLocation} from 'react-router-dom';
import { Item } from '../model'; import {Item} from '../model';
const useQuery = () => { const useQuery = () => {
return new URLSearchParams(useLocation().search); return new URLSearchParams(useLocation().search);
} }
const RouterWithPageParam = ({items, releases}: {items: Item[], releases: string[]}) => { const RouterWithPageParam = ({items, releases}: { items: Item[], releases: string[] }) => {
const { page } = useParams(); const {page} = useParams();
const query = useQuery(); const query = useQuery();
return <Router pageName={page} search={query.get('search') || ''} items={items} releases={releases}/>; return <Router pageName={page} search={query.get('search') || ''} items={items} releases={releases}/>;
}; };
export default function App({items, releases}: {items: Item[], releases: string[]}) { const HeaderWithPageParam = () => {
const {page} = useParams();
return <Header pageName={page}/>
};
const FooterWithPageParam = ({items}: { items: Item[]}) => {
const {page} = useParams();
return <Footer pageName={page} items={items}/>
};
export default function App({items, releases}: { items: Item[], releases: string[] }) {
return ( return (
<BrowserRouter> <BrowserRouter>
<Switch>
<Route path={'/techradar/:page(.+).html'}>
<div> <div>
<div className='page'> <div className='page'>
<div className='page__header'> <div className='page__header'>
<Header pageName='a' /> <HeaderWithPageParam/>
</div> </div>
<div className={classNames('page__content')}> <div className={classNames('page__content')}>
<Switch> <RouterWithPageParam items={items} releases={releases}/>
<Route path={'/techradar/:page(.+).html'}>
<RouterWithPageParam items={items} releases={releases} />
</Route>
<Route path={'/'}>
<Redirect to={'/techradar/index.html'} />
</Route>
</Switch>
</div> </div>
<div className='page__footer'> <div className='page__footer'>
<Footer items={items} pageName='a' /> <FooterWithPageParam items={items}/>
</div> </div>
</div> </div>
</div> </div>
</Route>
<Route path={'/'}>
<Redirect to={'/techradar/index.html'}/>
</Route>
</Switch>
</BrowserRouter> </BrowserRouter>
); );
} }