diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 29929f4624b15c7138dcb2b548c7775c3790a2eb..2843e1483c329663d6af689cd0e0b116e9d5ca2b 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -75,7 +75,7 @@ install: #### #### ####################################################################################################################################### -lint: +lint-back: stage: test before_script: - source ./venv/bin/activate @@ -84,6 +84,16 @@ lint: - 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: # stage: test # variables: diff --git a/frontend/.eslintrc.yml b/frontend/.eslintrc.yml new file mode 100644 index 0000000000000000000000000000000000000000..a4e9eeaa2a66be68161fed7bdb48f0ac5d37ae11 --- /dev/null +++ b/frontend/.eslintrc.yml @@ -0,0 +1,20 @@ +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 diff --git a/frontend/.prettierrc b/frontend/.prettierrc new file mode 100644 index 0000000000000000000000000000000000000000..a101b85e1758af1f7d3723885de59251cc51303c --- /dev/null +++ b/frontend/.prettierrc @@ -0,0 +1,10 @@ +{ + "singleQuote": false, + "trailingComma": "all", + "semi": true, + "tabWidth": 2, + "useTabs": false, + "printWidth": 100, + "bracketSpacing": true + } + \ No newline at end of file diff --git a/frontend/package-lock.json b/frontend/package-lock.json index 992e115d1a49b7394265fc0246892d6dba8f24bb..b4ef81ba5f7d4690ff956d0c6a900b23dc90278e 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -13,7 +13,6 @@ "@testing-library/user-event": "^14.2.0", "axios": "^0.27.2", "bootstrap": "^5.1.3", - "eslint": "^8.18.0", "history": "^5.3.0", "react": "^18.1.0", "react-bootstrap": "^2.4.0", @@ -22,6 +21,13 @@ "react-router-dom": "^6.3.0", "react-scripts": "5.0.1", "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": { @@ -8310,6 +8316,18 @@ "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": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", @@ -8571,6 +8589,27 @@ "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": { "version": "7.30.1", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", @@ -9274,6 +9313,12 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "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": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -16021,6 +16066,33 @@ "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": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", @@ -26938,6 +27010,13 @@ "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": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/eslint-config-react-app/-/eslint-config-react-app-7.0.1.tgz", @@ -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": { "version": "7.30.1", "resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.30.1.tgz", @@ -27658,6 +27746,12 @@ "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", "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": { "version": "3.2.11", "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", @@ -32577,6 +32671,21 @@ "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", "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": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", diff --git a/frontend/package.json b/frontend/package.json index 7ef420665e196e3aa6ddf86725d9ccbecee34441..4298da70f6c0b95cc08d0feefda64ebeac376130 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -8,7 +8,6 @@ "@testing-library/user-event": "^14.2.0", "axios": "^0.27.2", "bootstrap": "^5.1.3", - "eslint": "^8.18.0", "history": "^5.3.0", "react": "^18.1.0", "react-bootstrap": "^2.4.0", @@ -21,6 +20,8 @@ "scripts": { "start": "react-scripts start", "build": "CI=false && react-scripts build", + "lint": "npx eslint ./**/*.{js,jsx}", + "format": "npx eslint ./**/*.{js,jsx} --fix", "test": "react-scripts test", "eject": "react-scripts eject" }, @@ -38,5 +39,12 @@ "last 1 firefox 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" } } diff --git a/frontend/src/components/Footer.js b/frontend/src/components/Footer.js index f6ca8638923a247f873b5c6a0d20e6555daad2e7..cafd31e3bc2c3bd2a33181dab6c75d42c1f6af94 100644 --- a/frontend/src/components/Footer.js +++ b/frontend/src/components/Footer.js @@ -1,16 +1,18 @@ -import React from "react" - -import "../styles/Footer.css" +import React from "react"; +import "../styles/Footer.css"; export default function Footer() { - return( - <div className="footer"> - <div className="py-4 bg-dark flex-shrink-0"> - <div className="container text-center"> - Fait par <a href="https://viarezo.fr" className="VR-link">ViaRézo</a> - </div> - </div> + return ( + <div className="footer"> + <div className="py-4 bg-dark flex-shrink-0"> + <div className="container text-center"> + Fait par{" "} + <a href="https://viarezo.fr" className="VR-link"> + ViaRézo + </a> </div> - ) -} \ No newline at end of file + </div> + </div> + ); +} diff --git a/frontend/src/components/Header.js b/frontend/src/components/Header.js index 48832499864d191f7e0c771841fa56d8c11d4279..b8e12b0198b891262b2a22f1a8ddc6f113c90d5d 100644 --- a/frontend/src/components/Header.js +++ b/frontend/src/components/Header.js @@ -1,18 +1,25 @@ -import React from "react" -import { Link } from "react-router-dom" +import React from "react"; +import { Link } from "react-router-dom"; import { Nav, Navbar, NavLink } from "react-bootstrap"; - -export default function Header({ ...props }) { +export default function Header() { return ( <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"> <Nav> - <NavLink eventKey="1" as={Link} to="/">Accueil</NavLink> - <NavLink eventKey="2" as={Link} to="/eiffel">RU Eiffel</NavLink> + <NavLink eventKey="1" as={Link} to="/"> + Accueil + </NavLink> + <NavLink eventKey="2" as={Link} to="/eiffel"> + RU Eiffel + </NavLink> </Nav> - </Navbar.Collapse> + </Navbar.Collapse> </Navbar> - ) -} \ No newline at end of file + ); +} diff --git a/frontend/src/components/Timetable.js b/frontend/src/components/Timetable.js index a04d4cfd378fefa5e4ae865ae714e519f2b09c66..d39800c2bc0e7352b302015978ffdb1237149fb3 100644 --- a/frontend/src/components/Timetable.js +++ b/frontend/src/components/Timetable.js @@ -1,42 +1,41 @@ -import React from "react" -import Table from "react-bootstrap/Table" +import React from "react"; +import Table from "react-bootstrap/Table"; -import "../styles/Timetable.css" +import "../styles/Timetable.css"; - -export default function Timetable (schedule) { - const timetable = schedule.schedule; - return( - <div className = "timetable"> - <Table className="table table-striped table-bordered"> - <tbody> - <tr> - <th>Lundi</th> - <th>{timetable['LundiMidi'] != null ? timetable['LundiMidi'] : '-'}</th> - <th>{timetable['LundiSoir'] != null ? timetable['LundiSoir'] : '-'}</th> - </tr> - <tr> - <th>Mardi</th> - <th>{timetable['MardiMidi'] != null ? timetable['MardiMidi'] : '-'}</th> - <th>{timetable['MardiSoir'] != null ? timetable['MardiSoir'] : '-'}</th> - </tr> - <tr> - <th>Mercredi</th> - <th>{timetable['MercrediMidi'] != null ? timetable['MercrediMidi'] : '-'}</th> - <th>{timetable['MercrediSoir'] != null ? timetable['MercrediSoir'] : '-'}</th> - </tr> - <tr> - <th>Jeudi</th> - <th>{timetable['JeudiMidi'] != null ? timetable['JeudiMidi'] : '-'}</th> - <th>{timetable['JeudiSoir'] != null ? timetable['JeudiSoir'] : '-'}</th> - </tr> - <tr> - <th>Vendredi</th> - <th>{timetable['VendrediMidi'] != null ? timetable['VendrediMidi'] : '-'}</th> - <th>{timetable['VendrediSoir'] != null ? timetable['VendrediSoir'] : '-'}</th> - </tr> - </tbody> - </Table> - </div> - ) -} \ No newline at end of file +export default function Timetable(schedule) { + const timetable = schedule.schedule; + return ( + <div className="timetable"> + <Table className="table table-striped table-bordered"> + <tbody> + <tr> + <th>Lundi</th> + <th>{timetable["LundiMidi"] != null ? timetable["LundiMidi"] : "-"}</th> + <th>{timetable["LundiSoir"] != null ? timetable["LundiSoir"] : "-"}</th> + </tr> + <tr> + <th>Mardi</th> + <th>{timetable["MardiMidi"] != null ? timetable["MardiMidi"] : "-"}</th> + <th>{timetable["MardiSoir"] != null ? timetable["MardiSoir"] : "-"}</th> + </tr> + <tr> + <th>Mercredi</th> + <th>{timetable["MercrediMidi"] != null ? timetable["MercrediMidi"] : "-"}</th> + <th>{timetable["MercrediSoir"] != null ? timetable["MercrediSoir"] : "-"}</th> + </tr> + <tr> + <th>Jeudi</th> + <th>{timetable["JeudiMidi"] != null ? timetable["JeudiMidi"] : "-"}</th> + <th>{timetable["JeudiSoir"] != null ? timetable["JeudiSoir"] : "-"}</th> + </tr> + <tr> + <th>Vendredi</th> + <th>{timetable["VendrediMidi"] != null ? timetable["VendrediMidi"] : "-"}</th> + <th>{timetable["VendrediSoir"] != null ? timetable["VendrediSoir"] : "-"}</th> + </tr> + </tbody> + </Table> + </div> + ); +} diff --git a/frontend/src/components/WaitingTime.js b/frontend/src/components/WaitingTime.js index 587fff443a2790b4815caed0e85782817e8a99db..f33ccbd018362704c27c30bd185be5a683e83120 100644 --- a/frontend/src/components/WaitingTime.js +++ b/frontend/src/components/WaitingTime.js @@ -1,26 +1,25 @@ -import React from "react" -import axios from "axios" +import React from "react"; +import axios from "axios"; -import "../styles/WaitingTime.css" +import "../styles/WaitingTime.css"; +export default function WaitingTime({ place }) { + const baseURL = process.env.REACT_APP_BASE_URL_BACK + "/" + place + "/waiting_time"; + const [post, setPost] = React.useState(null); -export default function WaitingTime({place}) { - const baseURL = process.env.REACT_APP_BASE_URL_BACK + '/' + place + "/waiting_time"; - const [post, setPost] = React.useState(null); + React.useEffect(() => { + axios.get(baseURL).then((response) => { + setPost(Math.round(response.data / 60)); + console.log(response.data); + }); + }, [baseURL]); - React.useEffect(() => { - axios.get(baseURL).then((response) => { - setPost(Math.round(response.data / 60)); - console.log(response.data) - }); - }, [baseURL]); - - if (!post) return null; - return ( - <div className="parent"> - <div className="waiting-time"> - Temps d'attente estimé à <b>{post} minutes</b>. - </div> - </div> - ) + if (!post) return null; + return ( + <div className="parent"> + <div className="waiting-time"> + Temps d'attente estimé à <b>{post} minutes</b>. + </div> + </div> + ); } diff --git a/frontend/src/components/index.js b/frontend/src/components/index.js index 02b59c98a5e10bfcddae8a6455e37a20f8e95fe4..9c396287881a512b30b6d780a9c9fdc8838b0d58 100644 --- a/frontend/src/components/index.js +++ b/frontend/src/components/index.js @@ -1,4 +1,4 @@ -export { default as Header } from "./Header" -export { default as Footer } from "./Footer" -export { default as Timetable } from "./Timetable" -export { default as WaitingTime } from "./WaitingTime" \ No newline at end of file +export { default as Header } from "./Header"; +export { default as Footer } from "./Footer"; +export { default as Timetable } from "./Timetable"; +export { default as WaitingTime } from "./WaitingTime"; diff --git a/frontend/src/index.js b/frontend/src/index.js index e5a4bd53541b7520940958c76f11a6990f15d870..31355f1c15f649ff4bf67ebf57057b6a0aa43782 100644 --- a/frontend/src/index.js +++ b/frontend/src/index.js @@ -1,34 +1,32 @@ -import React from "react" -import ReactDOM from "react-dom" -import {BrowserRouter as Router, Routes, Route } from 'react-router-dom' +import React from "react"; +import ReactDOM from "react-dom"; +import { BrowserRouter as Router, Routes, Route } from "react-router-dom"; -import { Header, Footer } from "./components" -import { HomePage, Eiffel, NotFoundPage } from "./views" - -import 'bootstrap/dist/css/bootstrap.min.css'; -import "./styles/index.css" +import { Header, Footer } from "./components"; +import { HomePage, Eiffel, NotFoundPage } from "./views"; +import "bootstrap/dist/css/bootstrap.min.css"; +import "./styles/index.css"; export default function App() { return ( <div className="App"> - <Router> - <Header /> - <Routes> - <Route exact path='/' element={<HomePage />}/> - <Route path='/eiffel' element={<Eiffel />}/> - <Route path='/*' element={<NotFoundPage />}/> - </Routes> - <Footer /> - </Router> + <Router> + <Header /> + <Routes> + <Route exact path="/" element={<HomePage />} /> + <Route path="/eiffel" element={<Eiffel />} /> + <Route path="/*" element={<NotFoundPage />} /> + </Routes> + <Footer /> + </Router> </div> - ) + ); } - ReactDOM.render( <React.StrictMode> <App /> </React.StrictMode>, - document.getElementById("root") -) \ No newline at end of file + document.getElementById("root"), +); diff --git a/frontend/src/views/Eiffel.js b/frontend/src/views/Eiffel.js index f05bf46891d5c9c3069428116112808e6833fc1c..ac8619b3bf9d37e1e3c801edb4a1b0819af026c0 100644 --- a/frontend/src/views/Eiffel.js +++ b/frontend/src/views/Eiffel.js @@ -1,27 +1,27 @@ -import React from "react" +import React from "react"; -import Timetable from "../components/Timetable" -import WaitingTime from "../components/WaitingTime" +import Timetable from "../components/Timetable"; +import WaitingTime from "../components/WaitingTime"; - -export default function Eiffel(props) { - return ( - <div> - <h2> - RU Eiffel - </h2> - <WaitingTime place="eiffel" /> - <Timetable schedule={ { - 'LundiMidi': '11h30 - 14h', - 'LundiSoir': '18h30 - 21h', - 'MardiMidi': '11h30 - 14h', - 'MardiSoir': '18h30 - 21h', - 'MercrediMidi': '11h30 - 14h', - 'MercrediSoir': '18h30 - 21h', - 'JeudiMidi': '11h30 - 14h', - 'JeudiSoir': '18h30 - 21h', - 'VendrediMidi': '11h30 - 14h', - 'VendrediSoir': '18h30 - 21h'} }/> - </div> - ) - } \ No newline at end of file +export default function Eiffel() { + return ( + <div> + <h2>RU Eiffel</h2> + <WaitingTime place="eiffel" /> + <Timetable + schedule={{ + LundiMidi: "11h30 - 14h", + LundiSoir: "18h30 - 21h", + MardiMidi: "11h30 - 14h", + MardiSoir: "18h30 - 21h", + MercrediMidi: "11h30 - 14h", + MercrediSoir: "18h30 - 21h", + JeudiMidi: "11h30 - 14h", + JeudiSoir: "18h30 - 21h", + VendrediMidi: "11h30 - 14h", + VendrediSoir: "18h30 - 21h", + }} + /> + </div> + ); +} diff --git a/frontend/src/views/HomePage.js b/frontend/src/views/HomePage.js index ca0b0aa535f33d64b97dfb1c84eb280179265a5d..f8d02fba32d09b74bb7a4856c6108358f2696f6b 100644 --- a/frontend/src/views/HomePage.js +++ b/frontend/src/views/HomePage.js @@ -1,12 +1,9 @@ -import React from "react" +import React from "react"; - -export default function HomePage(props) { - return ( - <div> - <h2> - EATFAST - </h2> - </div> - ) - } \ No newline at end of file +export default function HomePage() { + return ( + <div> + <h2>EATFAST</h2> + </div> + ); +} diff --git a/frontend/src/views/NotFoundPage.js b/frontend/src/views/NotFoundPage.js index 9eda3dc8d923f161808c7b45830d8f57a7035dfc..e5686294b2e38ff6930673163c592bd773f13132 100644 --- a/frontend/src/views/NotFoundPage.js +++ b/frontend/src/views/NotFoundPage.js @@ -1,12 +1,9 @@ -import React from "react" +import React from "react"; - -export default function NotFoundPage(props) { - return ( - <div> - <h2> - Page Not Found - </h2> - </div> - ) - } \ No newline at end of file +export default function NotFoundPage() { + return ( + <div> + <h2>Page Not Found</h2> + </div> + ); +} diff --git a/frontend/src/views/index.js b/frontend/src/views/index.js index bcf00a8ce71495066f16234528c42c4a963f37f1..e19c5c09a461bdaff77749854db31999119823dc 100644 --- a/frontend/src/views/index.js +++ b/frontend/src/views/index.js @@ -1,3 +1,3 @@ -export { default as HomePage } from "./HomePage" -export { default as Eiffel } from "./Eiffel" -export { default as NotFoundPage } from "./NotFoundPage" +export { default as HomePage } from "./HomePage"; +export { default as Eiffel } from "./Eiffel"; +export { default as NotFoundPage } from "./NotFoundPage";