Client: admin menu init
This commit is contained in:
		
							
								
								
									
										43
									
								
								mpwo_client/src/components/Admin/AdminMenu.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								mpwo_client/src/components/Admin/AdminMenu.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,43 @@ | ||||
| import React from 'react' | ||||
| import { Helmet } from 'react-helmet' | ||||
| import { connect } from 'react-redux' | ||||
| import { Link } from 'react-router-dom' | ||||
|  | ||||
| class AdminMenu extends React.Component { | ||||
|   componentDidMount() {} | ||||
|   render() { | ||||
|     return ( | ||||
|       <div> | ||||
|         <Helmet> | ||||
|           <title>mpwo - Admin</title> | ||||
|         </Helmet> | ||||
|         <h1 className="page-title">Administration</h1> | ||||
|         <div className="container"> | ||||
|           <div className="row"> | ||||
|             <div className="col-md-2" /> | ||||
|             <div className="col-md-8 card"> | ||||
|               <ul> | ||||
|                 <li> | ||||
|                   <Link | ||||
|                     to={{ | ||||
|                       pathname: '/admin/sports', | ||||
|                     }} | ||||
|                   > | ||||
|                     Sports | ||||
|                   </Link> | ||||
|                 </li> | ||||
|               </ul> | ||||
|             </div> | ||||
|             <div className="col-md-2" /> | ||||
|           </div> | ||||
|         </div> | ||||
|       </div> | ||||
|     ) | ||||
|   } | ||||
| } | ||||
|  | ||||
| export default connect( | ||||
|   state => ({ | ||||
|     user: state.user, | ||||
|   }) | ||||
| )(AdminMenu) | ||||
							
								
								
									
										23
									
								
								mpwo_client/src/components/Admin/AdminSports.jsx
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								mpwo_client/src/components/Admin/AdminSports.jsx
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,23 @@ | ||||
| import React from 'react' | ||||
| import { Helmet } from 'react-helmet' | ||||
| import { connect } from 'react-redux' | ||||
|  | ||||
| class AdminSports extends React.Component { | ||||
|   componentDidMount() {} | ||||
|   render() { | ||||
|     return ( | ||||
|       <div> | ||||
|         <Helmet> | ||||
|           <title>mpwo - Admin</title> | ||||
|         </Helmet> | ||||
|         <h1 className="page-title">Administration - Sports</h1> | ||||
|       </div> | ||||
|     ) | ||||
|   } | ||||
| } | ||||
|  | ||||
| export default connect( | ||||
|   state => ({ | ||||
|     user: state.user, | ||||
|   }) | ||||
| )(AdminSports) | ||||
| @@ -1,8 +1,13 @@ | ||||
| import React from 'react' | ||||
| import { Helmet } from 'react-helmet' | ||||
| import { connect } from 'react-redux' | ||||
| import { Redirect, Route, Switch } from 'react-router-dom' | ||||
|  | ||||
| import AdminMenu from './AdminMenu' | ||||
| import AdminSports from './AdminSports' | ||||
| import AccessDenied from './../Others/AccessDenied' | ||||
| import NotFound from './../Others/NotFound' | ||||
| import { isLoggedIn } from '../../utils' | ||||
|  | ||||
| class Admin extends React.Component { | ||||
|   componentDidMount() {} | ||||
| @@ -13,11 +18,17 @@ class Admin extends React.Component { | ||||
|         <Helmet> | ||||
|           <title>mpwo - Admin</title> | ||||
|         </Helmet> | ||||
|         {!user.isAdmin ? ( | ||||
|             <AccessDenied /> | ||||
|         {isLoggedIn() ? ( | ||||
|           user.isAdmin ? ( | ||||
|             <Switch> | ||||
|               <Route exact path="/admin" component={AdminMenu} /> | ||||
|               <Route path="/admin/sports" component={AdminSports} /> | ||||
|               <Route component={NotFound} /> | ||||
|             </Switch> | ||||
|           ) : ( | ||||
|           <h1 className="page-title">Admin</h1> | ||||
|         )} | ||||
|             <AccessDenied /> | ||||
|           ) | ||||
|         ) : (<Redirect to="/login" />)} | ||||
|       </div> | ||||
|     ) | ||||
|   } | ||||
|   | ||||
| @@ -83,18 +83,7 @@ export default class App extends React.Component { | ||||
|               ) | ||||
|             )} | ||||
|           /> | ||||
|           <Route | ||||
|             exact path="/admin" | ||||
|             render={() => ( | ||||
|               isLoggedIn() ? ( | ||||
|                 <Admin /> | ||||
|               ) : ( | ||||
|                 <UserForm | ||||
|                   formType={'Login'} | ||||
|                 /> | ||||
|               ) | ||||
|             )} | ||||
|           /> | ||||
|           <Route path="/admin" component={Admin} /> | ||||
|           <Route component={NotFound} /> | ||||
|         </Switch> | ||||
|      </div> | ||||
|   | ||||
		Reference in New Issue
	
	Block a user