From 9e8d55e7e275d9591cfbc3d757d49de80cc9478c Mon Sep 17 00:00:00 2001 From: 2018sainratt <thomas.sainrat@student-cs.fr> Date: Mon, 21 Oct 2019 10:37:49 +0200 Subject: [PATCH] Ceci est le premier commit --- .gitignore | 2 + front/.gitignore | 23 +++++++ front/README.md | 68 +++++++++++++++++++ front/package.json | 31 +++++++++ front/public/favicon.ico | Bin 0 -> 22382 bytes front/public/index.html | 43 ++++++++++++ front/public/logo192.png | Bin 0 -> 8581 bytes front/public/logo512.png | Bin 0 -> 22920 bytes front/public/manifest.json | 25 +++++++ front/public/robots.txt | 2 + front/src/App.css | 22 ++++++ front/src/App.js | 26 +++++++ front/src/App.test.js | 9 +++ front/src/index.css | 13 ++++ front/src/index.js | 12 ++++ front/src/logo.svg | 1 + front/src/serviceWorker.js | 135 +++++++++++++++++++++++++++++++++++++ 17 files changed, 412 insertions(+) create mode 100644 .gitignore create mode 100644 front/.gitignore create mode 100644 front/README.md create mode 100644 front/package.json create mode 100644 front/public/favicon.ico create mode 100644 front/public/index.html create mode 100644 front/public/logo192.png create mode 100644 front/public/logo512.png create mode 100644 front/public/manifest.json create mode 100644 front/public/robots.txt create mode 100644 front/src/App.css create mode 100644 front/src/App.js create mode 100644 front/src/App.test.js create mode 100644 front/src/index.css create mode 100644 front/src/index.js create mode 100644 front/src/logo.svg create mode 100644 front/src/serviceWorker.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fd43a19 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +front/node_modules +front/yarn.lock diff --git a/front/.gitignore b/front/.gitignore new file mode 100644 index 0000000..4d29575 --- /dev/null +++ b/front/.gitignore @@ -0,0 +1,23 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +# dependencies +/node_modules +/.pnp +.pnp.js + +# testing +/coverage + +# production +/build + +# misc +.DS_Store +.env.local +.env.development.local +.env.test.local +.env.production.local + +npm-debug.log* +yarn-debug.log* +yarn-error.log* diff --git a/front/README.md b/front/README.md new file mode 100644 index 0000000..89b278a --- /dev/null +++ b/front/README.md @@ -0,0 +1,68 @@ +This project was bootstrapped with [Create React App](https://github.com/facebook/create-react-app). + +## Available Scripts + +In the project directory, you can run: + +### `yarn start` + +Runs the app in the development mode.<br /> +Open [http://localhost:3000](http://localhost:3000) to view it in the browser. + +The page will reload if you make edits.<br /> +You will also see any lint errors in the console. + +### `yarn test` + +Launches the test runner in the interactive watch mode.<br /> +See the section about [running tests](https://facebook.github.io/create-react-app/docs/running-tests) for more information. + +### `yarn build` + +Builds the app for production to the `build` folder.<br /> +It correctly bundles React in production mode and optimizes the build for the best performance. + +The build is minified and the filenames include the hashes.<br /> +Your app is ready to be deployed! + +See the section about [deployment](https://facebook.github.io/create-react-app/docs/deployment) for more information. + +### `yarn eject` + +**Note: this is a one-way operation. Once you `eject`, you can’t go back!** + +If you aren’t satisfied with the build tool and configuration choices, you can `eject` at any time. This command will remove the single build dependency from your project. + +Instead, it will copy all the configuration files and the transitive dependencies (Webpack, Babel, ESLint, etc) right into your project so you have full control over them. All of the commands except `eject` will still work, but they will point to the copied scripts so you can tweak them. At this point you’re on your own. + +You don’t have to ever use `eject`. The curated feature set is suitable for small and middle deployments, and you shouldn’t feel obligated to use this feature. However we understand that this tool wouldn’t be useful if you couldn’t customize it when you are ready for it. + +## Learn More + +You can learn more in the [Create React App documentation](https://facebook.github.io/create-react-app/docs/getting-started). + +To learn React, check out the [React documentation](https://reactjs.org/). + +### Code Splitting + +This section has moved here: https://facebook.github.io/create-react-app/docs/code-splitting + +### Analyzing the Bundle Size + +This section has moved here: https://facebook.github.io/create-react-app/docs/analyzing-the-bundle-size + +### Making a Progressive Web App + +This section has moved here: https://facebook.github.io/create-react-app/docs/making-a-progressive-web-app + +### Advanced Configuration + +This section has moved here: https://facebook.github.io/create-react-app/docs/advanced-configuration + +### Deployment + +This section has moved here: https://facebook.github.io/create-react-app/docs/deployment + +### `yarn build` fails to minify + +This section has moved here: https://facebook.github.io/create-react-app/docs/troubleshooting#npm-run-build-fails-to-minify diff --git a/front/package.json b/front/package.json new file mode 100644 index 0000000..dbefd13 --- /dev/null +++ b/front/package.json @@ -0,0 +1,31 @@ +{ + "name": "front", + "version": "0.1.0", + "private": true, + "dependencies": { + "react": "^16.10.2", + "react-dom": "^16.10.2", + "react-scripts": "3.2.0" + }, + "scripts": { + "start": "react-scripts start", + "build": "react-scripts build", + "test": "react-scripts test", + "eject": "react-scripts eject" + }, + "eslintConfig": { + "extends": "react-app" + }, + "browserslist": { + "production": [ + ">0.2%", + "not dead", + "not op_mini all" + ], + "development": [ + "last 1 chrome version", + "last 1 firefox version", + "last 1 safari version" + ] + } +} diff --git a/front/public/favicon.ico b/front/public/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..c2c86b859eaa20639adf92ff979c2be8d580433e GIT binary patch literal 22382 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 KMvWaJApijD)J}c? literal 0 HcmV?d00001 diff --git a/front/public/index.html b/front/public/index.html new file mode 100644 index 0000000..c240d2c --- /dev/null +++ b/front/public/index.html @@ -0,0 +1,43 @@ +<!DOCTYPE html> +<html lang="en"> + <head> + <meta charset="utf-8" /> + <link rel="icon" href="%PUBLIC_URL%/favicon.ico" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <meta name="theme-color" content="#000000" /> + <meta + name="description" + content="Web site created using create-react-app" + /> + <link rel="apple-touch-icon" href="logo192.png" /> + <!-- + manifest.json provides metadata used when your web app is installed on a + user's mobile device or desktop. See https://developers.google.com/web/fundamentals/web-app-manifest/ + --> + <link rel="manifest" href="%PUBLIC_URL%/manifest.json" /> + <!-- + Notice the use of %PUBLIC_URL% in the tags above. + It will be replaced with the URL of the `public` folder during the build. + Only files inside the `public` folder can be referenced from the HTML. + + Unlike "/favicon.ico" or "favicon.ico", "%PUBLIC_URL%/favicon.ico" will + work correctly both with client-side routing and a non-root public URL. + Learn how to configure a non-root public URL by running `npm run build`. + --> + <title>React App</title> + </head> + <body> + <noscript>You need to enable JavaScript to run this app.</noscript> + <div id="root"></div> + <!-- + This HTML file is a template. + If you open it directly in the browser, you will see an empty page. + + You can add webfonts, meta tags, or analytics to this file. + The build step will place the bundled scripts into the <body> tag. + + To begin the development, run `npm start` or `yarn start`. + To create a production bundle, use `npm run build` or `yarn build`. + --> + </body> +</html> diff --git a/front/public/logo192.png b/front/public/logo192.png new file mode 100644 index 0000000000000000000000000000000000000000..fa313abf53936aefc517dbd583b724a57199d415 GIT binary patch literal 8581 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 literal 0 HcmV?d00001 diff --git a/front/public/logo512.png b/front/public/logo512.png new file mode 100644 index 0000000000000000000000000000000000000000..bd5d4b5e235ab9d880c202a6a7f7d3e35e115d8c GIT binary patch literal 22920 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 a=ikL$H2!W|`iDIYWQ3=ypUXO@geCw<c4RLA literal 0 HcmV?d00001 diff --git a/front/public/manifest.json b/front/public/manifest.json new file mode 100644 index 0000000..080d6c7 --- /dev/null +++ b/front/public/manifest.json @@ -0,0 +1,25 @@ +{ + "short_name": "React App", + "name": "Create React App Sample", + "icons": [ + { + "src": "favicon.ico", + "sizes": "64x64 32x32 24x24 16x16", + "type": "image/x-icon" + }, + { + "src": "logo192.png", + "type": "image/png", + "sizes": "192x192" + }, + { + "src": "logo512.png", + "type": "image/png", + "sizes": "512x512" + } + ], + "start_url": ".", + "display": "standalone", + "theme_color": "#000000", + "background_color": "#ffffff" +} diff --git a/front/public/robots.txt b/front/public/robots.txt new file mode 100644 index 0000000..01b0f9a --- /dev/null +++ b/front/public/robots.txt @@ -0,0 +1,2 @@ +# https://www.robotstxt.org/robotstxt.html +User-agent: * diff --git a/front/src/App.css b/front/src/App.css new file mode 100644 index 0000000..afc3885 --- /dev/null +++ b/front/src/App.css @@ -0,0 +1,22 @@ +.App { + text-align: center; +} + +.App-logo { + height: 40vmin; +} + +.App-header { + background-color: #282c34; + min-height: 100vh; + display: flex; + flex-direction: column; + align-items: center; + justify-content: center; + font-size: calc(10px + 2vmin); + color: white; +} + +.App-link { + color: #09d3ac; +} diff --git a/front/src/App.js b/front/src/App.js new file mode 100644 index 0000000..ce9cbd2 --- /dev/null +++ b/front/src/App.js @@ -0,0 +1,26 @@ +import React from 'react'; +import logo from './logo.svg'; +import './App.css'; + +function App() { + return ( + <div className="App"> + <header className="App-header"> + <img src={logo} className="App-logo" alt="logo" /> + <p> + Edit <code>src/App.js</code> and save to reload. + </p> + <a + className="App-link" + href="https://reactjs.org" + target="_blank" + rel="noopener noreferrer" + > + Learn React + </a> + </header> + </div> + ); +} + +export default App; diff --git a/front/src/App.test.js b/front/src/App.test.js new file mode 100644 index 0000000..a754b20 --- /dev/null +++ b/front/src/App.test.js @@ -0,0 +1,9 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import App from './App'; + +it('renders without crashing', () => { + const div = document.createElement('div'); + ReactDOM.render(<App />, div); + ReactDOM.unmountComponentAtNode(div); +}); diff --git a/front/src/index.css b/front/src/index.css new file mode 100644 index 0000000..4a1df4d --- /dev/null +++ b/front/src/index.css @@ -0,0 +1,13 @@ +body { + margin: 0; + font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", "Oxygen", + "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", + sans-serif; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; +} + +code { + font-family: source-code-pro, Menlo, Monaco, Consolas, "Courier New", + monospace; +} diff --git a/front/src/index.js b/front/src/index.js new file mode 100644 index 0000000..87d1be5 --- /dev/null +++ b/front/src/index.js @@ -0,0 +1,12 @@ +import React from 'react'; +import ReactDOM from 'react-dom'; +import './index.css'; +import App from './App'; +import * as serviceWorker from './serviceWorker'; + +ReactDOM.render(<App />, document.getElementById('root')); + +// If you want your app to work offline and load faster, you can change +// unregister() to register() below. Note this comes with some pitfalls. +// Learn more about service workers: https://bit.ly/CRA-PWA +serviceWorker.unregister(); diff --git a/front/src/logo.svg b/front/src/logo.svg new file mode 100644 index 0000000..2e5df0d --- /dev/null +++ b/front/src/logo.svg @@ -0,0 +1 @@ +<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 170.96 159.93"><defs><style>.cls-1{fill:#09d3ac;}</style></defs><path class="cls-1" d="M141.35,73.27c0-6.89-8.11-13-20.58-16.73,3-12.67,1.69-22.75-4.28-26.16a9.55,9.55,0,0,0-4.79-1.2c-5.57,0-12.61,3.89-19.72,10.62-7.11-6.68-14.13-10.55-19.69-10.55a9.46,9.46,0,0,0-4.86,1.22c-5.94,3.42-7.17,13.44-4.21,26.05-12.41,3.71-20.48,9.77-20.5,16.63s8.12,13,20.59,16.72c-3,12.68-1.7,22.75,4.28,26.16a9.41,9.41,0,0,0,4.78,1.2c5.58,0,12.62-3.89,19.73-10.62,7.1,6.68,14.12,10.55,19.69,10.55a9.59,9.59,0,0,0,4.86-1.22c5.94-3.42,7.16-13.44,4.21-26C133.27,86.18,141.34,80.12,141.35,73.27ZM96.56,42.06c8.19-7.33,13.31-8.12,15.13-8.12h0a4.71,4.71,0,0,1,2.42.58c2.86,1.63,4,7.38,3.09,15a56.73,56.73,0,0,1-1,5.79,97.7,97.7,0,0,0-12.58-2.07,98.47,98.47,0,0,0-8.24-10.08C95.75,42.79,96.15,42.42,96.56,42.06ZM71.77,78.94c.78,1.5,1.61,3,2.47,4.51S76,86.49,77,88c-2.71-.39-5.34-.88-7.84-1.46C69.86,84,70.75,81.5,71.77,78.94ZM69,59.9c2.53-.59,5.18-1.08,7.93-1.46-1,1.48-1.86,3-2.76,4.59s-1.69,3-2.46,4.52Q70.18,63.65,69,59.9Zm5.21,13.34q1.86-3.93,4.09-7.86c1.5-2.62,3.11-5.17,4.77-7.61,2.91-.22,5.91-.34,9-.33s6,.12,8.89.35c1.66,2.42,3.25,5,4.75,7.55s2.88,5.22,4.12,7.83c-1.23,2.62-2.6,5.25-4.08,7.85s-3.11,5.18-4.77,7.62c-2.91.23-5.91.34-9,.34s-6-.13-8.89-.36c-1.66-2.42-3.26-4.94-4.76-7.55S75.5,75.85,74.25,73.24Zm32.86-14.77c2.72.38,5.35.87,7.84,1.45-.74,2.47-1.62,5-2.64,7.55-.79-1.5-1.61-3-2.48-4.51S108,59.93,107.11,58.47Zm2.76,24.92q1.29-2.27,2.46-4.53c1,2.6,2,5.16,2.7,7.66-2.52.59-5.17,1.07-7.92,1.45Q108.52,85.75,109.87,83.39ZM92,46.56c1.8,1.92,3.57,4,5.3,6.23-1.71-.07-3.46-.12-5.23-.12s-3.58,0-5.33.12C88.45,50.57,90.2,48.48,92,46.56Zm-22.18-12A4.82,4.82,0,0,1,72.29,34a13.11,13.11,0,0,1,5.19,1.31,39.07,39.07,0,0,1,10,6.78l1.17,1.07a98.49,98.49,0,0,0-8.16,10,98.88,98.88,0,0,0-12.65,2.06c-.44-1.94-.8-3.84-1-5.67C65.8,42,67,36.24,69.81,34.6ZM64.53,85.26a58.75,58.75,0,0,1-5.54-2c-7.1-3-11.5-6.85-11.5-10.14S51.91,66,59,63.05a57.63,57.63,0,0,1,5.44-1.94A97.93,97.93,0,0,0,69,73.25,98.72,98.72,0,0,0,64.53,85.26Zm23,19.1c-8.19,7.33-13.31,8.11-15.14,8.11a4.69,4.69,0,0,1-2.42-.58c-2.86-1.63-4-7.38-3.09-15a56.07,56.07,0,0,1,1-5.78,99.51,99.51,0,0,0,12.58,2.06,97.17,97.17,0,0,0,8.24,10.08Zm4.57-4.51c-1.8-1.92-3.57-4-5.31-6.23,1.72.08,3.47.12,5.24.12s3.58,0,5.33-.11C95.63,95.85,93.87,97.93,92.09,99.85Zm22.18,12a4.82,4.82,0,0,1-2.48.59c-1.82,0-7-.8-15.16-8.1l-1.17-1.07a98.44,98.44,0,0,0,8.15-10,97,97,0,0,0,12.66-2.06c.44,1.94.79,3.84,1,5.67C118.27,104.42,117.12,110.18,114.27,111.81Zm10.8-28.44c-1.71.7-3.52,1.35-5.44,1.93a98.54,98.54,0,0,0-4.57-12.14,98.1,98.1,0,0,0,4.49-12,58.75,58.75,0,0,1,5.54,2c7.09,3,11.5,6.85,11.49,10.14S132.17,80.42,125.07,83.37ZM92,82.39a9.18,9.18,0,1,0-9.17-9.19A9.17,9.17,0,0,0,92,82.39ZM31,17.88V128.53H153.07V17.88ZM148.3,123.77H35.78V22.65H148.3Zm-85-33.9c-3,12.68-1.7,22.75,4.28,26.16a9.41,9.41,0,0,0,4.78,1.2c5.58,0,12.62-3.89,19.73-10.62,7.1,6.68,14.12,10.55,19.69,10.55a9.59,9.59,0,0,0,4.86-1.22c5.94-3.42,7.16-13.44,4.21-26,12.41-3.72,20.48-9.78,20.49-16.63s-8.11-13-20.58-16.73c3-12.67,1.69-22.75-4.28-26.16a9.55,9.55,0,0,0-4.79-1.2c-5.57,0-12.61,3.89-19.72,10.62-7.11-6.68-14.13-10.55-19.69-10.55a9.46,9.46,0,0,0-4.86,1.22c-5.94,3.42-7.17,13.44-4.21,26.05-12.41,3.71-20.48,9.77-20.5,16.63S50.84,86.13,63.31,89.87Zm24.21,14.49c-8.19,7.33-13.31,8.11-15.14,8.11a4.69,4.69,0,0,1-2.42-.58c-2.86-1.63-4-7.38-3.09-15a56.07,56.07,0,0,1,1-5.78,99.51,99.51,0,0,0,12.58,2.06,97.17,97.17,0,0,0,8.24,10.08Zm24.79-36.89c-.79-1.5-1.61-3-2.48-4.51s-1.8-3-2.72-4.49c2.72.38,5.35.87,7.84,1.45C114.21,62.39,113.33,64.92,112.31,67.47Zm2.72,19c-2.52.59-5.17,1.07-7.92,1.45q1.41-2.22,2.76-4.58t2.46-4.53C113.37,81.46,114.28,84,115,86.52Zm-5.21-13.35c-1.23,2.62-2.6,5.25-4.08,7.85s-3.11,5.18-4.77,7.62c-2.91.23-5.91.34-9,.34s-6-.13-8.89-.36c-1.66-2.42-3.26-4.94-4.76-7.55s-2.87-5.22-4.12-7.83q1.86-3.93,4.09-7.86c1.5-2.62,3.11-5.17,4.77-7.61,2.91-.22,5.91-.34,9-.33s6,.12,8.89.35c1.66,2.42,3.25,5,4.75,7.55S108.58,70.56,109.82,73.17ZM77,88c-2.71-.39-5.34-.88-7.84-1.46.74-2.46,1.63-5,2.65-7.55.78,1.5,1.61,3,2.47,4.51S76,86.49,77,88ZM74.21,63c-.87,1.5-1.69,3-2.46,4.52Q70.18,63.65,69,59.9c2.53-.59,5.18-1.08,7.93-1.46C76,59.92,75.11,61.45,74.21,63ZM92.09,99.85c-1.8-1.92-3.57-4-5.31-6.23,1.72.08,3.47.12,5.24.12s3.58,0,5.33-.11C95.63,95.85,93.87,97.93,92.09,99.85Zm22.18,12a4.82,4.82,0,0,1-2.48.59c-1.82,0-7-.8-15.16-8.1l-1.17-1.07a98.44,98.44,0,0,0,8.15-10,97,97,0,0,0,12.66-2.06c.44,1.94.79,3.84,1,5.67C118.27,104.42,117.12,110.18,114.27,111.81Zm5.28-50.66a58.75,58.75,0,0,1,5.54,2c7.09,3,11.5,6.85,11.49,10.14s-4.41,7.16-11.51,10.11c-1.71.7-3.52,1.35-5.44,1.93a98.54,98.54,0,0,0-4.57-12.14A98.1,98.1,0,0,0,119.55,61.15Zm-23-19.09c8.19-7.33,13.31-8.12,15.13-8.12h0a4.71,4.71,0,0,1,2.42.58c2.86,1.63,4,7.38,3.09,15a56.73,56.73,0,0,1-1,5.79,97.7,97.7,0,0,0-12.58-2.07,98.47,98.47,0,0,0-8.24-10.08C95.75,42.79,96.15,42.42,96.56,42.06ZM92,46.56c1.8,1.92,3.57,4,5.3,6.23-1.71-.07-3.46-.12-5.23-.12s-3.58,0-5.33.12C88.45,50.57,90.2,48.48,92,46.56Zm-22.18-12A4.82,4.82,0,0,1,72.29,34a13.11,13.11,0,0,1,5.19,1.31,39.07,39.07,0,0,1,10,6.78l1.17,1.07a98.49,98.49,0,0,0-8.16,10,98.88,98.88,0,0,0-12.65,2.06c-.44-1.94-.8-3.84-1-5.67C65.8,42,67,36.24,69.81,34.6ZM59,63.05a57.63,57.63,0,0,1,5.44-1.94A97.93,97.93,0,0,0,69,73.25a98.72,98.72,0,0,0-4.49,12,58.75,58.75,0,0,1-5.54-2c-7.1-3-11.5-6.85-11.5-10.14S51.91,66,59,63.05Zm33,1a9.18,9.18,0,1,0,9.17,9.19A9.17,9.17,0,0,0,92,64Zm0,0a9.18,9.18,0,1,0,9.17,9.19A9.17,9.17,0,0,0,92,64Zm0,0a9.18,9.18,0,1,0,9.17,9.19A9.17,9.17,0,0,0,92,64Zm49.35,9.24c0-6.89-8.11-13-20.58-16.73,3-12.67,1.69-22.75-4.28-26.16a9.55,9.55,0,0,0-4.79-1.2c-5.57,0-12.61,3.89-19.72,10.62-7.11-6.68-14.13-10.55-19.69-10.55a9.46,9.46,0,0,0-4.86,1.22c-5.94,3.42-7.17,13.44-4.21,26.05-12.41,3.71-20.48,9.77-20.5,16.63s8.12,13,20.59,16.72c-3,12.68-1.7,22.75,4.28,26.16a9.41,9.41,0,0,0,4.78,1.2c5.58,0,12.62-3.89,19.73-10.62,7.1,6.68,14.12,10.55,19.69,10.55a9.59,9.59,0,0,0,4.86-1.22c5.94-3.42,7.16-13.44,4.21-26C133.27,86.18,141.34,80.12,141.35,73.27ZM96.56,42.06c8.19-7.33,13.31-8.12,15.13-8.12h0a4.71,4.71,0,0,1,2.42.58c2.86,1.63,4,7.38,3.09,15a56.73,56.73,0,0,1-1,5.79,97.7,97.7,0,0,0-12.58-2.07,98.47,98.47,0,0,0-8.24-10.08C95.75,42.79,96.15,42.42,96.56,42.06ZM71.77,78.94c.78,1.5,1.61,3,2.47,4.51S76,86.49,77,88c-2.71-.39-5.34-.88-7.84-1.46C69.86,84,70.75,81.5,71.77,78.94ZM69,59.9c2.53-.59,5.18-1.08,7.93-1.46-1,1.48-1.86,3-2.76,4.59s-1.69,3-2.46,4.52Q70.18,63.65,69,59.9Zm5.21,13.34q1.86-3.93,4.09-7.86c1.5-2.62,3.11-5.17,4.77-7.61,2.91-.22,5.91-.34,9-.33s6,.12,8.89.35c1.66,2.42,3.25,5,4.75,7.55s2.88,5.22,4.12,7.83c-1.23,2.62-2.6,5.25-4.08,7.85s-3.11,5.18-4.77,7.62c-2.91.23-5.91.34-9,.34s-6-.13-8.89-.36c-1.66-2.42-3.26-4.94-4.76-7.55S75.5,75.85,74.25,73.24Zm32.86-14.77c2.72.38,5.35.87,7.84,1.45-.74,2.47-1.62,5-2.64,7.55-.79-1.5-1.61-3-2.48-4.51S108,59.93,107.11,58.47Zm2.76,24.92q1.29-2.27,2.46-4.53c1,2.6,2,5.16,2.7,7.66-2.52.59-5.17,1.07-7.92,1.45Q108.52,85.75,109.87,83.39ZM92,46.56c1.8,1.92,3.57,4,5.3,6.23-1.71-.07-3.46-.12-5.23-.12s-3.58,0-5.33.12C88.45,50.57,90.2,48.48,92,46.56Zm-22.18-12A4.82,4.82,0,0,1,72.29,34a13.11,13.11,0,0,1,5.19,1.31,39.07,39.07,0,0,1,10,6.78l1.17,1.07a98.49,98.49,0,0,0-8.16,10,98.88,98.88,0,0,0-12.65,2.06c-.44-1.94-.8-3.84-1-5.67C65.8,42,67,36.24,69.81,34.6ZM64.53,85.26a58.75,58.75,0,0,1-5.54-2c-7.1-3-11.5-6.85-11.5-10.14S51.91,66,59,63.05a57.63,57.63,0,0,1,5.44-1.94A97.93,97.93,0,0,0,69,73.25,98.72,98.72,0,0,0,64.53,85.26Zm23,19.1c-8.19,7.33-13.31,8.11-15.14,8.11a4.69,4.69,0,0,1-2.42-.58c-2.86-1.63-4-7.38-3.09-15a56.07,56.07,0,0,1,1-5.78,99.51,99.51,0,0,0,12.58,2.06,97.17,97.17,0,0,0,8.24,10.08Zm4.57-4.51c-1.8-1.92-3.57-4-5.31-6.23,1.72.08,3.47.12,5.24.12s3.58,0,5.33-.11C95.63,95.85,93.87,97.93,92.09,99.85Zm22.18,12a4.82,4.82,0,0,1-2.48.59c-1.82,0-7-.8-15.16-8.1l-1.17-1.07a98.44,98.44,0,0,0,8.15-10,97,97,0,0,0,12.66-2.06c.44,1.94.79,3.84,1,5.67C118.27,104.42,117.12,110.18,114.27,111.81Zm10.8-28.44c-1.71.7-3.52,1.35-5.44,1.93a98.54,98.54,0,0,0-4.57-12.14,98.1,98.1,0,0,0,4.49-12,58.75,58.75,0,0,1,5.54,2c7.09,3,11.5,6.85,11.49,10.14S132.17,80.42,125.07,83.37ZM92,82.39a9.18,9.18,0,1,0-9.17-9.19A9.17,9.17,0,0,0,92,82.39Zm-69.32,54.5V26.2L17.89,31V141.66H139.94l4.78-4.77Z"/></svg> \ No newline at end of file diff --git a/front/src/serviceWorker.js b/front/src/serviceWorker.js new file mode 100644 index 0000000..f8c7e50 --- /dev/null +++ b/front/src/serviceWorker.js @@ -0,0 +1,135 @@ +// This optional code is used to register a service worker. +// register() is not called by default. + +// This lets the app load faster on subsequent visits in production, and gives +// it offline capabilities. However, it also means that developers (and users) +// will only see deployed updates on subsequent visits to a page, after all the +// existing tabs open on the page have been closed, since previously cached +// resources are updated in the background. + +// To learn more about the benefits of this model and instructions on how to +// opt-in, read https://bit.ly/CRA-PWA + +const isLocalhost = Boolean( + window.location.hostname === 'localhost' || + // [::1] is the IPv6 localhost address. + window.location.hostname === '[::1]' || + // 127.0.0.1/8 is considered localhost for IPv4. + window.location.hostname.match( + /^127(?:\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/ + ) +); + +export function register(config) { + if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) { + // The URL constructor is available in all browsers that support SW. + const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href); + if (publicUrl.origin !== window.location.origin) { + // Our service worker won't work if PUBLIC_URL is on a different origin + // from what our page is served on. This might happen if a CDN is used to + // serve assets; see https://github.com/facebook/create-react-app/issues/2374 + return; + } + + window.addEventListener('load', () => { + const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; + + if (isLocalhost) { + // This is running on localhost. Let's check if a service worker still exists or not. + checkValidServiceWorker(swUrl, config); + + // Add some additional logging to localhost, pointing developers to the + // service worker/PWA documentation. + navigator.serviceWorker.ready.then(() => { + console.log( + 'This web app is being served cache-first by a service ' + + 'worker. To learn more, visit https://bit.ly/CRA-PWA' + ); + }); + } else { + // Is not localhost. Just register service worker + registerValidSW(swUrl, config); + } + }); + } +} + +function registerValidSW(swUrl, config) { + navigator.serviceWorker + .register(swUrl) + .then(registration => { + registration.onupdatefound = () => { + const installingWorker = registration.installing; + if (installingWorker == null) { + return; + } + installingWorker.onstatechange = () => { + if (installingWorker.state === 'installed') { + if (navigator.serviceWorker.controller) { + // At this point, the updated precached content has been fetched, + // but the previous service worker will still serve the older + // content until all client tabs are closed. + console.log( + 'New content is available and will be used when all ' + + 'tabs for this page are closed. See https://bit.ly/CRA-PWA.' + ); + + // Execute callback + if (config && config.onUpdate) { + config.onUpdate(registration); + } + } else { + // At this point, everything has been precached. + // It's the perfect time to display a + // "Content is cached for offline use." message. + console.log('Content is cached for offline use.'); + + // Execute callback + if (config && config.onSuccess) { + config.onSuccess(registration); + } + } + } + }; + }; + }) + .catch(error => { + console.error('Error during service worker registration:', error); + }); +} + +function checkValidServiceWorker(swUrl, config) { + // Check if the service worker can be found. If it can't reload the page. + fetch(swUrl) + .then(response => { + // Ensure service worker exists, and that we really are getting a JS file. + const contentType = response.headers.get('content-type'); + if ( + response.status === 404 || + (contentType != null && contentType.indexOf('javascript') === -1) + ) { + // No service worker found. Probably a different app. Reload the page. + navigator.serviceWorker.ready.then(registration => { + registration.unregister().then(() => { + window.location.reload(); + }); + }); + } else { + // Service worker found. Proceed as normal. + registerValidSW(swUrl, config); + } + }) + .catch(() => { + console.log( + 'No internet connection found. App is running in offline mode.' + ); + }); +} + +export function unregister() { + if ('serviceWorker' in navigator) { + navigator.serviceWorker.ready.then(registration => { + registration.unregister(); + }); + } +} -- GitLab