Improve admin routing and add admin header

This commit is contained in:
Jan Tuomi
2019-01-15 11:46:51 +02:00
parent 79d5f9d641
commit 8197c40701
6 changed files with 76 additions and 5 deletions
@@ -0,0 +1,8 @@
@import "../../assets/scss/globals";
.admin-header {
h1 {
margin-left: 2rem;
font-weight: 500;
}
}
@@ -0,0 +1,26 @@
import * as React from "react";
import { Fragment } from "react";
import { Link } from "react-router-dom";
// @ts-ignore
import * as TitleImage from "../../assets/img/SIK_RGB_W_side.png";
import "./AdminHeader.scss";
export interface AdminHeaderProps {}
export interface AdminHeaderState {}
class AdminHeader extends React.Component<AdminHeaderProps, AdminHeaderState> {
render() {
return (
<Fragment>
<div className="header admin-header">
<Link to="/">
<img src={TitleImage} />
</Link>
<h1>Admin panel</h1>
</div>
</Fragment>
);
}
}
export default AdminHeader;
+2
View File
@@ -0,0 +1,2 @@
import AdminHeader from "./AdminHeader";
export default AdminHeader;
@@ -0,0 +1,21 @@
import * as React from "react";
import AdminHeader from "../../components/AdminHeader";
export interface AdminCommonPageProps {
page: any;
}
export interface AdminCommonPageState { }
class AdminCommonPage extends React.Component<AdminCommonPageProps, AdminCommonPageState> {
render() {
const Page = this.props.page;
return (
<React.Fragment>
<AdminHeader />
<Page {...this.props} />
</React.Fragment>
);
}
}
export default AdminCommonPage;
+2
View File
@@ -0,0 +1,2 @@
import AdminCommonPage from "./AdminCommonPage";
export default AdminCommonPage;
+17 -5
View File
@@ -10,11 +10,26 @@ import JsonLD from "./components/JsonLD";
import "./index.scss";
import AdminFrontPage from "./pages/AdminFrontPage";
import AdminEventPage from "./pages/AdminEventPage";
import AdminCommonPage from "./pages/AdminCommonPage";
const renderPage = (Page) => (props): JSX.Element => {
return <CommonPage page={Page} {...props} />;
};
const renderAdminPage = (Page) => (props): JSX.Element => {
return <AdminCommonPage page={Page} {...props} />;
};
const commonRoutes = [
{ path: "/", page: FrontPage },
{ path: "/kilta", page: GuildPage },
];
const adminRoutes = [
{ path: "/admin/events", page: AdminEventPage },
{ path: "/admin", page: AdminFrontPage },
];
const Routes = () => (
<Fragment>
<Helmet>
@@ -29,11 +44,8 @@ const Routes = () => (
"url": "https://sik.ayy.fi",
}} />
<Switch>
<Route exact path="/" render={renderPage(FrontPage)} />
<Route path="/kilta" render={renderPage(GuildPage)} />
<Route path="/admin/events" render={renderPage(AdminEventPage)} />
<Route path="/admin" render={renderPage(AdminFrontPage)} />
{ commonRoutes.map(r => <Route exact path={r.path} render={renderPage(r.page) }/>) }
{ adminRoutes.map(r => <Route exact path={r.path} render={renderAdminPage(r.page) }/>) }
<Route component={NotFoundPage} />
</Switch>
</Fragment>