Add routing with react-router-dom

This commit is contained in:
2020-05-13 15:39:31 +02:00
parent 65af60c2ea
commit 644af598af
7 changed files with 140 additions and 35 deletions

View File

@@ -1,8 +1,13 @@
import React from 'react';
import {
BrowserRouter as Router,
Switch,
Route,
NavLink,
} from 'react-router-dom';
import { Nav, Icon, Dropdown, IconButton, Popover, Whisper } from 'rsuite';
function MenuDropdown() {
export default function MenuDropdown() {
const triggerRef = React.createRef();
function handleSelectMenu(eventKey, event) {
@@ -13,12 +18,16 @@ function MenuDropdown() {
const MenuPopover = ({ onSelect, ...rest }) => (
<Popover {...rest} full>
<Dropdown.Menu onSelect={onSelect}>
<Dropdown.Item eventKey={1}>Dashboard</Dropdown.Item>
<Dropdown.Item eventKey={2}>
Schedule a Meeting
</Dropdown.Item>
<Dropdown.Item eventKey={3}>Account Settings</Dropdown.Item>
<Dropdown.Item eventKey={4}>Log Out</Dropdown.Item>
<NavLink to='/login'>
<Dropdown.Item eventKey={0}>Login</Dropdown.Item>
</NavLink>
<NavLink to='/register'>
<Dropdown.Item eventKey={1}>Register</Dropdown.Item>
</NavLink>
<Dropdown.Item eventKey={2}>Dashboard</Dropdown.Item>
<Dropdown.Item eventKey={3}>Schedule a Meeting</Dropdown.Item>
<Dropdown.Item eventKey={4}>Account Settings</Dropdown.Item>
<Dropdown.Item eventKey={5}>Log Out</Dropdown.Item>
</Dropdown.Menu>
</Popover>
);
@@ -42,5 +51,3 @@ function MenuDropdown() {
</Nav>
);
}
export default MenuDropdown;

View File

@@ -7,7 +7,7 @@ const headerStyle = {
borderRadius: '7px 7px 0 0',
};
function NavBar() {
export default function NavBar() {
return (
<Header>
<Navbar appearance='inverse' style={headerStyle}>
@@ -18,5 +18,3 @@ function NavBar() {
</Header>
);
}
export default NavBar;

View File

@@ -1,11 +1,11 @@
import React from 'react';
import 'rsuite/lib/styles/index.less';
import { Container } from 'rsuite';
import { BrowserRouter as Router, Switch, Route, Link } from 'react-router-dom';
import Login from './Login';
import Register from './Register';
import TopBar from '../components/Navbar/NavBar';
import NavBar from '../components/Navbar/NavBar';
const containerStyle = {
maxWidth: 700,
@@ -16,13 +16,20 @@ const containerStyle = {
marginBottom: '10vh',
};
function App() {
export default function App() {
return (
<Container style={containerStyle}>
<TopBar />
<Register />
</Container>
<Router>
<Container style={containerStyle}>
<NavBar />
<Switch>
<Route path='/login'>
<Login />
</Route>
<Route path='/register'>
<Register />
</Route>
</Switch>
</Container>
</Router>
);
}
export default App;

View File

@@ -15,16 +15,12 @@ const boxStyle = {
margin: '50px 10px',
};
function Login() {
export default function Login() {
return (
<Content>
<FlexboxGrid justify='center'>
<FlexboxGrid.Item>
<Panel
header={<h3>Login</h3>}
bordered
style={boxStyle}
>
<Panel header={<h3>Login</h3>} bordered style={boxStyle}>
<Form horizontal>
<FormGroup>
<FormControl
@@ -44,7 +40,9 @@ function Login() {
</HelpBlock>
</FormGroup>
<FormGroup>
<Button appearance='primary' block>Sign in</Button>
<Button appearance='primary' block>
Sign in
</Button>
</FormGroup>
<Button appearance='link'>Forgot password?</Button>
</Form>
@@ -54,5 +52,3 @@ function Login() {
</Content>
);
}
export default Login;

View File

@@ -16,7 +16,7 @@ const boxStyle = {
margin: '50px 10px',
};
function Register() {
export default function Register() {
return (
<Content>
<FlexboxGrid justify='center'>
@@ -48,7 +48,9 @@ function Register() {
<Dropdown.Item>
Alaska Standard Time
</Dropdown.Item>
<Dropdown.Item>Bangladesh Standard Time </Dropdown.Item>
<Dropdown.Item>
Bangladesh Standard Time{' '}
</Dropdown.Item>
<Dropdown.Item>...</Dropdown.Item>
</Dropdown>
</FormGroup>
@@ -74,5 +76,3 @@ function Register() {
</Content>
);
}
export default Register;