Skip to content
Snippets Groups Projects
Commit f1fbe8e3 authored by Yoan VALLET's avatar Yoan VALLET
Browse files

feat: init Layout and main component without style

parent 23ce7789
No related branches found
No related tags found
1 merge request!7feat: add front office
Showing with 128 additions and 50 deletions
import React from 'react'
import { BrowserRouter } from 'react-router-dom'
import Layout from './components/Layout/Layout'
import Routes from './components/Routes/Routes'
function App() {
return (
<BrowserRouter>
<Routes />
</BrowserRouter>
<Layout>
<BrowserRouter>
<Routes />
</BrowserRouter>
</Layout>
)
}
......
src/assets/icons/logo.png

7.32 KiB

import React from 'react'
const Editing: React.FC = () => {
return <div>Coming soon !</div>
}
export default Editing
import React from 'react'
import styles from './layout.module.scss'
import Menu from '../Menu/Menu'
import Navbar from '../Navbar/Navbar'
interface LayoutProps {
children: React.ReactNode
}
const Layout: React.FC<LayoutProps> = ({ children }: LayoutProps) => {
return (
<div className={styles.root}>
<Navbar />
<div className={styles.wrapper}>
<Menu />
<main>{children}</main>
</div>
</div>
)
}
export default Layout
.root {
display: flex;
flex-direction: column;
min-height: 100vh;
}
.wrapper {
display: flex;
flex-direction: row;
flex: 1;
main {
flex: 1;
}
}
import React from 'react'
import routes from '../../constants/routes.json'
const Menu: React.FC = () => {
// TODO class is-active if link is activated
return (
<aside className="menu">
<ul className="menu-list">
{routes.map((route: any, index: number) => {
return (
<li key={index}>
<a href={route.path}>{route.label}</a>
</li>
)
})}
</ul>
</aside>
)
}
export default Menu
import React from 'react'
import logo from '../../assets/icons/logo.png'
const Navbar: React.FC = () => {
return (
<nav className="navbar" role="navigation" aria-label="main navigation">
<div className="navbar-brand">
<img src={logo} alt="Ecolyo logo" />
<div className="navbar-menu">
<div className="navbar-start"></div>
<div className="navbar-end">
<div className="navbar-item">
<div className="buttons">
<a href="/" className="button is-primary">
<strong>Sign up</strong>
</a>
<a href="/" className="button is-light">
Log in
</a>
</div>
</div>
</div>
</div>
</div>
</nav>
)
}
export default Navbar
import React from 'react'
import { Redirect, Route, Switch } from 'react-router-dom'
import Dummy from '../dummy/Dummy'
import Dummy2 from '../dummy/Dummy2'
import Editing from '../Editing/Editing'
import Settings from '../Settings/Settings'
const Routes: React.FC = () => {
return (
<Switch>
<Route path="/dummy" component={Dummy} />
<Route path="/dummy2" component={Dummy2} />
<Redirect path="*" to="/dummy" />
<Route path="/editing" component={Editing} />
<Route path="/settings" component={Settings} />
<Redirect path="*" to="/editing" />
</Switch>
)
}
......
import React from 'react'
const Settings: React.FC = () => {
return <div>A venir</div>
}
export default Settings
import React from 'react'
import styles from './dummy.module.scss'
const Dummy: React.FC = () => {
return (
<div className={styles.root}>
<section>
<article>It is a dummy article</article>
<article>It is a second dummy article</article>
</section>
</div>
)
}
export default Dummy
import React from 'react'
import styles from './dummy2.module.scss'
const Dummy2: React.FC = () => {
return (
<div className={styles.root}>
<section>
<article>It is a dummy article</article>
<article>It is a second dummy article</article>
</section>
</div>
)
}
export default Dummy2
.root {
display: flex;
section {
color: aqua;
}
}
.root {
display: flex;
section {
color: yellow;
}
}
[
{
"label": "Edition",
"path": "/editing"
},
{
"label": "Paramètres",
"path": "/settings"
}
]
......@@ -4,3 +4,9 @@
// To customize bulma variables, we set them before importing bulma
@import 'bulma/bulma.sass';
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment