fix pageName
This commit is contained in:
@@ -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>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user