Create a 404 page. Fixes #71

This commit is contained in:
Dessalines 2020-11-10 12:24:47 -06:00
parent c4cf0c8a2b
commit 46f2a7cda7
3 changed files with 27 additions and 5 deletions

View file

@ -44,6 +44,12 @@ server.get('/*', async (req, res) => {
let site: GetSiteResponse = resolver[0]; let site: GetSiteResponse = resolver[0];
let routeData = resolver.slice(1, resolver.length); let routeData = resolver.slice(1, resolver.length);
// Redirect to the 404 if there's an API error
if (routeData[0] && routeData[0].error) {
console.log(`Route error: ${routeData[0].error}`);
return res.redirect('/404');
}
let acceptLang = req.headers['accept-language'] let acceptLang = req.headers['accept-language']
? req.headers['accept-language'].split(',')[0] ? req.headers['accept-language'].split(',')[0]
: 'en'; : 'en';

View file

@ -3,11 +3,12 @@ import { Route, Switch } from 'inferno-router';
import { Provider } from 'inferno-i18next'; import { Provider } from 'inferno-i18next';
import { Helmet } from 'inferno-helmet'; import { Helmet } from 'inferno-helmet';
import { i18n } from '../i18next'; import { i18n } from '../i18next';
import { routes } from '../../shared/routes'; import { routes } from '../routes';
import { Navbar } from '../../shared/components/navbar'; import { Navbar } from './navbar';
import { Footer } from '../../shared/components/footer'; import { Footer } from './footer';
import { NoMatch } from './no-match';
import { Theme } from './theme'; import { Theme } from './theme';
import { Symbols } from '../../shared/components/symbols'; import { Symbols } from './symbols';
import { GetSiteResponse } from 'lemmy-js-client'; import { GetSiteResponse } from 'lemmy-js-client';
import './styles.scss'; import './styles.scss';
@ -48,7 +49,7 @@ export class App extends Component<AppProps, any> {
render={props => <C {...props} {...rest} />} render={props => <C {...props} {...rest} />}
/> />
))} ))}
{/* <Route render={(props) => <NoMatch {...props} />} /> */} <Route render={props => <NoMatch {...props} />} />
</Switch> </Switch>
<Symbols /> <Symbols />
</div> </div>

View file

@ -0,0 +1,15 @@
import { Component } from 'inferno';
export class NoMatch extends Component<any, any> {
constructor(props: any, context: any) {
super(props, context);
}
render() {
return (
<div class="container">
<h1>404</h1>
</div>
);
}
}