Skip to content
Snippets Groups Projects
Commit 294c0cc9 authored by Aymeric Chaumont's avatar Aymeric Chaumont
Browse files

Merge branch 'linting' into 'main'

Linting

See merge request !21
parents 440aef80 8efc2bc4
No related branches found
No related tags found
1 merge request!21Linting
Pipeline #43815 passed
...@@ -75,7 +75,7 @@ install: ...@@ -75,7 +75,7 @@ install:
#### #### #### ####
####################################################################################################################################### #######################################################################################################################################
lint: lint-back:
stage: test stage: test
before_script: before_script:
- source ./venv/bin/activate - source ./venv/bin/activate
...@@ -84,6 +84,16 @@ lint: ...@@ -84,6 +84,16 @@ lint:
- pycodestyle --config=./backend/setup.cnf ./backend - pycodestyle --config=./backend/setup.cnf ./backend
lint-front:
image: node:14.6.0
stage: test
before_script:
- cd frontend/
- npm install
script:
- npm run lint
# test: # test:
# stage: test # stage: test
# variables: # variables:
......
env:
browser: true
es2021: true
node: true
extends:
- eslint:recommended
- plugin:react/recommended
- plugin:prettier/recommended
parserOptions:
ecmaFeatures:
jsx: true
ecmaVersion: latest
sourceType: module
plugins:
- react
settings:
react:
version: detect
rules:
react/prop-types: 0
{
"singleQuote": false,
"trailingComma": "all",
"semi": true,
"tabWidth": 2,
"useTabs": false,
"printWidth": 100,
"bracketSpacing": true
}
\ No newline at end of file
...@@ -13,7 +13,6 @@ ...@@ -13,7 +13,6 @@
"@testing-library/user-event": "^14.2.0", "@testing-library/user-event": "^14.2.0",
"axios": "^0.27.2", "axios": "^0.27.2",
"bootstrap": "^5.1.3", "bootstrap": "^5.1.3",
"eslint": "^8.18.0",
"history": "^5.3.0", "history": "^5.3.0",
"react": "^18.1.0", "react": "^18.1.0",
"react-bootstrap": "^2.4.0", "react-bootstrap": "^2.4.0",
...@@ -22,6 +21,13 @@ ...@@ -22,6 +21,13 @@
"react-router-dom": "^6.3.0", "react-router-dom": "^6.3.0",
"react-scripts": "5.0.1", "react-scripts": "5.0.1",
"react-spring": "^9.4.5" "react-spring": "^9.4.5"
},
"devDependencies": {
"eslint": "^8.19.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.30.1",
"prettier": "^2.7.1"
} }
}, },
"node_modules/@ampproject/remapping": { "node_modules/@ampproject/remapping": {
...@@ -8310,6 +8316,18 @@ ...@@ -8310,6 +8316,18 @@
"url": "https://opencollective.com/eslint" "url": "https://opencollective.com/eslint"
} }
}, },
"node_modules/eslint-config-prettier": {
"version": "8.5.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
"integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
"dev": true,
"bin": {
"eslint-config-prettier": "bin/cli.js"
},
"peerDependencies": {
"eslint": ">=7.0.0"
}
},
"node_modules/eslint-config-react-app": { "node_modules/eslint-config-react-app": {
"version": "7.0.1", "version": "7.0.1",
"resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz",
...@@ -8571,6 +8589,27 @@ ...@@ -8571,6 +8589,27 @@
"semver": "bin/semver.js" "semver": "bin/semver.js"
} }
}, },
"node_modules/eslint-plugin-prettier": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
"integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
"dev": true,
"dependencies": {
"prettier-linter-helpers": "^1.0.0"
},
"engines": {
"node": ">=12.0.0"
},
"peerDependencies": {
"eslint": ">=7.28.0",
"prettier": ">=2.0.0"
},
"peerDependenciesMeta": {
"eslint-config-prettier": {
"optional": true
}
}
},
"node_modules/eslint-plugin-react": { "node_modules/eslint-plugin-react": {
"version": "7.30.1", "version": "7.30.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz",
...@@ -9274,6 +9313,12 @@ ...@@ -9274,6 +9313,12 @@
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
}, },
"node_modules/fast-diff": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
"integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
"dev": true
},
"node_modules/fast-glob": { "node_modules/fast-glob": {
"version": "3.2.11", "version": "3.2.11",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
...@@ -16021,6 +16066,33 @@ ...@@ -16021,6 +16066,33 @@
"node": ">= 0.8.0" "node": ">= 0.8.0"
} }
}, },
"node_modules/prettier": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
"integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
"dev": true,
"bin": {
"prettier": "bin-prettier.js"
},
"engines": {
"node": ">=10.13.0"
},
"funding": {
"url": "https://github.com/prettier/prettier?sponsor=1"
}
},
"node_modules/prettier-linter-helpers": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
"integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
"dev": true,
"dependencies": {
"fast-diff": "^1.1.2"
},
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/pretty-bytes": { "node_modules/pretty-bytes": {
"version": "5.6.0", "version": "5.6.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
...@@ -26938,6 +27010,13 @@ ...@@ -26938,6 +27010,13 @@
"v8-compile-cache": "^2.0.3" "v8-compile-cache": "^2.0.3"
} }
}, },
"eslint-config-prettier": {
"version": "8.5.0",
"resolved": "https://registry.npmjs.org/eslint-config-prettier/-/eslint-config-prettier-8.5.0.tgz",
"integrity": "sha512-obmWKLUNCnhtQRKc+tmnYuQl0pFU1ibYJQ5BGhTVB08bHe9wC8qUeG7c08dj9XX+AuPj1YSGSQIHl1pnDHZR0Q==",
"dev": true,
"requires": {}
},
"eslint-config-react-app": { "eslint-config-react-app": {
"version": "7.0.1", "version": "7.0.1",
"resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz",
...@@ -27136,6 +27215,15 @@ ...@@ -27136,6 +27215,15 @@
} }
} }
}, },
"eslint-plugin-prettier": {
"version": "4.2.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-prettier/-/eslint-plugin-prettier-4.2.1.tgz",
"integrity": "sha512-f/0rXLXUt0oFYs8ra4w49wYZBG5GKZpAYsJSm6rnYL5uVDjd+zowwMwVZHnAjf4edNrKpCDYfXDgmRE/Ak7QyQ==",
"dev": true,
"requires": {
"prettier-linter-helpers": "^1.0.0"
}
},
"eslint-plugin-react": { "eslint-plugin-react": {
"version": "7.30.1", "version": "7.30.1",
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz",
...@@ -27658,6 +27746,12 @@ ...@@ -27658,6 +27746,12 @@
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
"integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
}, },
"fast-diff": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/fast-diff/-/fast-diff-1.2.0.tgz",
"integrity": "sha512-xJuoT5+L99XlZ8twedaRf6Ax2TgQVxvgZOYoPKqZufmJib0tL2tegPBOZb1pVNgIhlqDlA0eO0c3wBvQcmzx4w==",
"dev": true
},
"fast-glob": { "fast-glob": {
"version": "3.2.11", "version": "3.2.11",
"resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz",
...@@ -32577,6 +32671,21 @@ ...@@ -32577,6 +32671,21 @@
"resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz",
"integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==" "integrity": "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="
}, },
"prettier": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.7.1.tgz",
"integrity": "sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==",
"dev": true
},
"prettier-linter-helpers": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/prettier-linter-helpers/-/prettier-linter-helpers-1.0.0.tgz",
"integrity": "sha512-GbK2cP9nraSSUF9N2XwUwqfzlAFlMNYYl+ShE/V+H8a9uNl/oUqB1w2EL54Jh0OlyRSd8RfWYJ3coVS4TROP2w==",
"dev": true,
"requires": {
"fast-diff": "^1.1.2"
}
},
"pretty-bytes": { "pretty-bytes": {
"version": "5.6.0", "version": "5.6.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz",
...@@ -8,7 +8,6 @@ ...@@ -8,7 +8,6 @@
"@testing-library/user-event": "^14.2.0", "@testing-library/user-event": "^14.2.0",
"axios": "^0.27.2", "axios": "^0.27.2",
"bootstrap": "^5.1.3", "bootstrap": "^5.1.3",
"eslint": "^8.18.0",
"history": "^5.3.0", "history": "^5.3.0",
"react": "^18.1.0", "react": "^18.1.0",
"react-bootstrap": "^2.4.0", "react-bootstrap": "^2.4.0",
...@@ -21,6 +20,8 @@ ...@@ -21,6 +20,8 @@
"scripts": { "scripts": {
"start": "react-scripts start", "start": "react-scripts start",
"build": "CI=false && react-scripts build", "build": "CI=false && react-scripts build",
"lint": "npx eslint ./**/*.{js,jsx}",
"format": "npx eslint ./**/*.{js,jsx} --fix",
"test": "react-scripts test", "test": "react-scripts test",
"eject": "react-scripts eject" "eject": "react-scripts eject"
}, },
...@@ -38,5 +39,12 @@ ...@@ -38,5 +39,12 @@
"last 1 firefox version", "last 1 firefox version",
"last 1 safari version" "last 1 safari version"
] ]
},
"devDependencies": {
"eslint": "^8.19.0",
"eslint-config-prettier": "^8.5.0",
"eslint-plugin-prettier": "^4.2.1",
"eslint-plugin-react": "^7.30.1",
"prettier": "^2.7.1"
} }
} }
import React from "react" import React from "react";
import "../styles/Footer.css"
import "../styles/Footer.css";
export default function Footer() { export default function Footer() {
return ( return (
<div className="footer"> <div className="footer">
<div className="py-4 bg-dark flex-shrink-0"> <div className="py-4 bg-dark flex-shrink-0">
<div className="container text-center"> <div className="container text-center">
Fait par <a href="https://viarezo.fr" className="VR-link">ViaRézo</a> Fait par{" "}
<a href="https://viarezo.fr" className="VR-link">
ViaRézo
</a>
</div> </div>
</div> </div>
</div> </div>
) );
} }
import React from "react" import React from "react";
import { Link } from "react-router-dom" import { Link } from "react-router-dom";
import { Nav, Navbar, NavLink } from "react-bootstrap"; import { Nav, Navbar, NavLink } from "react-bootstrap";
export default function Header() {
export default function Header({ ...props }) {
return ( return (
<Navbar collapseOnSelect expand="sm" bg="dark" variant="dark"> <Navbar collapseOnSelect expand="sm" bg="dark" variant="dark">
<Navbar.Toggle aria-controls="navbarScroll" data-bs-toggle="collapse" data-bs-target="#navbarScroll" /> <Navbar.Toggle
aria-controls="navbarScroll"
data-bs-toggle="collapse"
data-bs-target="#navbarScroll"
/>
<Navbar.Collapse id="navbarScroll"> <Navbar.Collapse id="navbarScroll">
<Nav> <Nav>
<NavLink eventKey="1" as={Link} to="/">Accueil</NavLink> <NavLink eventKey="1" as={Link} to="/">
<NavLink eventKey="2" as={Link} to="/eiffel">RU Eiffel</NavLink> Accueil
</NavLink>
<NavLink eventKey="2" as={Link} to="/eiffel">
RU Eiffel
</NavLink>
</Nav> </Nav>
</Navbar.Collapse> </Navbar.Collapse>
</Navbar> </Navbar>
) );
} }
import React from "react" import React from "react";
import Table from "react-bootstrap/Table" import Table from "react-bootstrap/Table";
import "../styles/Timetable.css"
import "../styles/Timetable.css";
export default function Timetable(schedule) { export default function Timetable(schedule) {
const timetable = schedule.schedule; const timetable = schedule.schedule;
...@@ -12,31 +11,31 @@ export default function Timetable (schedule) { ...@@ -12,31 +11,31 @@ export default function Timetable (schedule) {
<tbody> <tbody>
<tr> <tr>
<th>Lundi</th> <th>Lundi</th>
<th>{timetable['LundiMidi'] != null ? timetable['LundiMidi'] : '-'}</th> <th>{timetable["LundiMidi"] != null ? timetable["LundiMidi"] : "-"}</th>
<th>{timetable['LundiSoir'] != null ? timetable['LundiSoir'] : '-'}</th> <th>{timetable["LundiSoir"] != null ? timetable["LundiSoir"] : "-"}</th>
</tr> </tr>
<tr> <tr>
<th>Mardi</th> <th>Mardi</th>
<th>{timetable['MardiMidi'] != null ? timetable['MardiMidi'] : '-'}</th> <th>{timetable["MardiMidi"] != null ? timetable["MardiMidi"] : "-"}</th>
<th>{timetable['MardiSoir'] != null ? timetable['MardiSoir'] : '-'}</th> <th>{timetable["MardiSoir"] != null ? timetable["MardiSoir"] : "-"}</th>
</tr> </tr>
<tr> <tr>
<th>Mercredi</th> <th>Mercredi</th>
<th>{timetable['MercrediMidi'] != null ? timetable['MercrediMidi'] : '-'}</th> <th>{timetable["MercrediMidi"] != null ? timetable["MercrediMidi"] : "-"}</th>
<th>{timetable['MercrediSoir'] != null ? timetable['MercrediSoir'] : '-'}</th> <th>{timetable["MercrediSoir"] != null ? timetable["MercrediSoir"] : "-"}</th>
</tr> </tr>
<tr> <tr>
<th>Jeudi</th> <th>Jeudi</th>
<th>{timetable['JeudiMidi'] != null ? timetable['JeudiMidi'] : '-'}</th> <th>{timetable["JeudiMidi"] != null ? timetable["JeudiMidi"] : "-"}</th>
<th>{timetable['JeudiSoir'] != null ? timetable['JeudiSoir'] : '-'}</th> <th>{timetable["JeudiSoir"] != null ? timetable["JeudiSoir"] : "-"}</th>
</tr> </tr>
<tr> <tr>
<th>Vendredi</th> <th>Vendredi</th>
<th>{timetable['VendrediMidi'] != null ? timetable['VendrediMidi'] : '-'}</th> <th>{timetable["VendrediMidi"] != null ? timetable["VendrediMidi"] : "-"}</th>
<th>{timetable['VendrediSoir'] != null ? timetable['VendrediSoir'] : '-'}</th> <th>{timetable["VendrediSoir"] != null ? timetable["VendrediSoir"] : "-"}</th>
</tr> </tr>
</tbody> </tbody>
</Table> </Table>
</div> </div>
) );
} }
import React from "react" import React from "react";
import axios from "axios" import axios from "axios";
import "../styles/WaitingTime.css"
import "../styles/WaitingTime.css";
export default function WaitingTime({ place }) { export default function WaitingTime({ place }) {
const baseURL = process.env.REACT_APP_BASE_URL_BACK + '/' + place + "/waiting_time"; const baseURL = process.env.REACT_APP_BASE_URL_BACK + "/" + place + "/waiting_time";
const [post, setPost] = React.useState(null); const [post, setPost] = React.useState(null);
React.useEffect(() => { React.useEffect(() => {
axios.get(baseURL).then((response) => { axios.get(baseURL).then((response) => {
setPost(Math.round(response.data / 60)); setPost(Math.round(response.data / 60));
console.log(response.data) console.log(response.data);
}); });
}, [baseURL]); }, [baseURL]);
...@@ -19,8 +18,8 @@ export default function WaitingTime({place}) { ...@@ -19,8 +18,8 @@ export default function WaitingTime({place}) {
return ( return (
<div className="parent"> <div className="parent">
<div className="waiting-time"> <div className="waiting-time">
Temps d'attente estimé à <b>{post} minutes</b>. Temps d&apos;attente estimé à <b>{post} minutes</b>.
</div> </div>
</div> </div>
) );
} }
export { default as Header } from "./Header" export { default as Header } from "./Header";
export { default as Footer } from "./Footer" export { default as Footer } from "./Footer";
export { default as Timetable } from "./Timetable" export { default as Timetable } from "./Timetable";
export { default as WaitingTime } from "./WaitingTime" export { default as WaitingTime } from "./WaitingTime";
\ No newline at end of file
import React from "react" import React from "react";
import ReactDOM from "react-dom" import ReactDOM from "react-dom";
import {BrowserRouter as Router, Routes, Route } from 'react-router-dom' import { BrowserRouter as Router, Routes, Route } from "react-router-dom";
import { Header, Footer } from "./components" import { Header, Footer } from "./components";
import { HomePage, Eiffel, NotFoundPage } from "./views" import { HomePage, Eiffel, NotFoundPage } from "./views";
import 'bootstrap/dist/css/bootstrap.min.css';
import "./styles/index.css"
import "bootstrap/dist/css/bootstrap.min.css";
import "./styles/index.css";
export default function App() { export default function App() {
return ( return (
...@@ -15,20 +14,19 @@ export default function App() { ...@@ -15,20 +14,19 @@ export default function App() {
<Router> <Router>
<Header /> <Header />
<Routes> <Routes>
<Route exact path='/' element={<HomePage />}/> <Route exact path="/" element={<HomePage />} />
<Route path='/eiffel' element={<Eiffel />}/> <Route path="/eiffel" element={<Eiffel />} />
<Route path='/*' element={<NotFoundPage />}/> <Route path="/*" element={<NotFoundPage />} />
</Routes> </Routes>
<Footer /> <Footer />
</Router> </Router>
</div> </div>
) );
} }
ReactDOM.render( ReactDOM.render(
<React.StrictMode> <React.StrictMode>
<App /> <App />
</React.StrictMode>, </React.StrictMode>,
document.getElementById("root") document.getElementById("root"),
) );
\ No newline at end of file
import React from "react" import React from "react";
import Timetable from "../components/Timetable" import Timetable from "../components/Timetable";
import WaitingTime from "../components/WaitingTime" import WaitingTime from "../components/WaitingTime";
export default function Eiffel() {
export default function Eiffel(props) {
return ( return (
<div> <div>
<h2> <h2>RU Eiffel</h2>
RU Eiffel
</h2>
<WaitingTime place="eiffel" /> <WaitingTime place="eiffel" />
<Timetable schedule={ { <Timetable
'LundiMidi': '11h30 - 14h', schedule={{
'LundiSoir': '18h30 - 21h', LundiMidi: "11h30 - 14h",
'MardiMidi': '11h30 - 14h', LundiSoir: "18h30 - 21h",
'MardiSoir': '18h30 - 21h', MardiMidi: "11h30 - 14h",
'MercrediMidi': '11h30 - 14h', MardiSoir: "18h30 - 21h",
'MercrediSoir': '18h30 - 21h', MercrediMidi: "11h30 - 14h",
'JeudiMidi': '11h30 - 14h', MercrediSoir: "18h30 - 21h",
'JeudiSoir': '18h30 - 21h', JeudiMidi: "11h30 - 14h",
'VendrediMidi': '11h30 - 14h', JeudiSoir: "18h30 - 21h",
'VendrediSoir': '18h30 - 21h'} }/> VendrediMidi: "11h30 - 14h",
VendrediSoir: "18h30 - 21h",
}}
/>
</div> </div>
) );
} }
import React from "react" import React from "react";
export default function HomePage() {
export default function HomePage(props) {
return ( return (
<div> <div>
<h2> <h2>EATFAST</h2>
EATFAST
</h2>
</div> </div>
) );
} }
import React from "react" import React from "react";
export default function NotFoundPage() {
export default function NotFoundPage(props) {
return ( return (
<div> <div>
<h2> <h2>Page Not Found</h2>
Page Not Found
</h2>
</div> </div>
) );
} }
export { default as HomePage } from "./HomePage" export { default as HomePage } from "./HomePage";
export { default as Eiffel } from "./Eiffel" export { default as Eiffel } from "./Eiffel";
export { default as NotFoundPage } from "./NotFoundPage" export { default as NotFoundPage } from "./NotFoundPage";
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment