\r\n {footer}\r\n }\r\n );\r\n};\r\n\r\nexport default Main;","import React from \"react\";\r\nimport { BrowserRouter as Router, Route, Switch, Redirect, } from \"react-router-dom\";\r\nimport Alert from \"../components/alert/index\";\r\nimport Main from \"../components/main\"\r\n\r\nconst Routes = () => {\r\n return (\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Routes;\r\n","import { ContextKeys } from \"../../conventions/constants\";\r\n\r\nconst AlertReducer = (state, action) => {\r\n switch (action.type) {\r\n case ContextKeys.SetAlert:\r\n return action.payload;\r\n case ContextKeys.RemoveAlert:\r\n return null;\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default AlertReducer;\r\n","import React, { useReducer } from \"react\";\r\nimport AlertContext from \"./alert-context\";\r\nimport AlertReducer from \"./alert-reducer\";\r\nimport { ContextKeys } from \"../../conventions/constants\";\r\n\r\nconst AlertState = ({ children }) => {\r\n const initialState = { msg: null, type: null, duration: 6000 };\r\n\r\n const [state, dispatch] = useReducer(AlertReducer, initialState);\r\n\r\n const setAlert = (msg, type, duration) =>\r\n dispatch({\r\n type: ContextKeys.SetAlert,\r\n payload: { msg, type, duration: duration||6000 },\r\n });\r\n\r\n const removeAlert = () =>\r\n dispatch({\r\n type: ContextKeys.RemoveAlert,\r\n });\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n};\r\n\r\nexport default AlertState;\r\n","import React from 'react';\r\nimport './App.css';\r\nimport Routes from \"./routes/index\"\r\nimport AlertState from \"./contexts/alert/alert-state\"\r\nimport { LocalProvider } from './contexts/local-context';\r\nimport { AuthProvider } from './contexts/auth-context';\r\nimport FileUploadProvider from './contexts/file-upload-context';\r\n\r\nconst App = () => {\r\n return (\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default App;\r\n","// This optional code is used to register a service worker.\r\n// register() is not called by default.\r\n\r\n// This lets the app load faster on subsequent visits in production, and gives\r\n// it offline capabilities. However, it also means that developers (and users)\r\n// will only see deployed updates on subsequent visits to a page, after all the\r\n// existing tabs open on the page have been closed, since previously cached\r\n// resources are updated in the background.\r\n\r\n// To learn more about the benefits of this model and instructions on how to\r\n// opt-in, read https://bit.ly/CRA-PWA\r\n\r\nconst isLocalhost = Boolean(\r\n window.location.hostname === 'localhost' ||\r\n // [::1] is the IPv6 localhost address.\r\n window.location.hostname === '[::1]' ||\r\n // 127.0.0.0/8 are considered localhost for IPv4.\r\n window.location.hostname.match(\r\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\r\n )\r\n);\r\n\r\n\r\nconst workerOnStateChange = (installingWorker, config, registration) => {\r\n if (installingWorker.state === 'installed') {\r\n if (navigator.serviceWorker.controller) {\r\n // At this point, the updated precached content has been fetched,\r\n // but the previous service worker will still serve the older\r\n // content until all client tabs are closed.\r\n console.log(\r\n 'New content is available and will be used when all ' +\r\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\r\n );\r\n\r\n // Execute callback\r\n if (config && config.onUpdate) {\r\n config.onUpdate(registration);\r\n }\r\n } else {\r\n // At this point, everything has been precached.\r\n // It's the perfect time to display a\r\n // \"Content is cached for offline use.\" message.\r\n console.log('Content is cached for offline use.');\r\n\r\n // Execute callback\r\n if (config && config.onSuccess) {\r\n config.onSuccess(registration);\r\n }\r\n }\r\n }\r\n};\r\n\r\nconst registerValidSW = (swUrl, config) => {\r\n navigator.serviceWorker\r\n .register(swUrl)\r\n .then(registration => {\r\n registration.onupdatefound = () => {\r\n const installingWorker = registration.installing;\r\n if (installingWorker == null) {\r\n return;\r\n }\r\n installingWorker.onstatechange = () => workerOnStateChange(installingWorker, config, registration);\r\n };\r\n })\r\n .catch(error => {\r\n console.error('Error during service worker registration:', error);\r\n });\r\n}\r\n\r\nconst handleValidationResponse = (response, swUrl, config) => {\r\n // Ensure service worker exists, and that we really are getting a JS file.\r\n const contentType = response.headers.get('content-type');\r\n if (\r\n response.status === 404 ||\r\n (contentType != null && contentType.indexOf('javascript') === -1)\r\n ) {\r\n // No service worker found. Probably a different app. Reload the page.\r\n navigator.serviceWorker.ready.then(registration => {\r\n registration.unregister().then(() => {\r\n window.location.reload();\r\n });\r\n });\r\n } else {\r\n // Service worker found. Proceed as normal.\r\n registerValidSW(swUrl, config);\r\n }\r\n};\r\n\r\nconst checkValidServiceWorker = (swUrl, config) => {\r\n // Check if the service worker can be found. If it can't reload the page.\r\n fetch(swUrl, {\r\n headers: { 'Service-Worker': 'script' },\r\n })\r\n .then(response => handleValidationResponse(response, swUrl, config))\r\n .catch(() => {\r\n console.log(\r\n 'No internet connection found. App is running in offline mode.'\r\n );\r\n });\r\n}\r\n\r\nconst addLoadEventListener = (config) => {\r\n window.addEventListener('load',\r\n () => {\r\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\r\n\r\n if (isLocalhost) {\r\n // This is running on localhost. Let's check if a service worker still exists or not.\r\n checkValidServiceWorker(swUrl, config);\r\n\r\n // Add some additional logging to localhost, pointing developers to the\r\n // service worker/PWA documentation.\r\n navigator.serviceWorker.ready.then(() => {\r\n console.log(\r\n 'This web app is being served cache-first by a service ' +\r\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\r\n );\r\n });\r\n } else {\r\n // Is not localhost. Just register service worker\r\n registerValidSW(swUrl, config);\r\n }\r\n });\r\n};\r\n\r\nexport function register(config) {\r\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\r\n // The URL constructor is available in all browsers that support SW.\r\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\r\n if (publicUrl.origin !== window.location.origin) {\r\n // Our service worker won't work if PUBLIC_URL is on a different origin\r\n // from what our page is served on. This might happen if a CDN is used to\r\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\r\n console.log(\"Can not register worker, url not match \" + publicUrl.origin + \" != \" + window.location.origin);\r\n return;\r\n }\r\n\r\n addLoadEventListener(config);\r\n\r\n } else {\r\n console.log(\"ServiceWorker in navigator \" + ('serviceWorker' in navigator) + \" or bad environment: \" + process.env.NODE_ENV);\r\n }\r\n}\r\n\r\nexport function unregister() {\r\n if ('serviceWorker' in navigator) {\r\n navigator.serviceWorker.ready\r\n .then(registration => {\r\n registration.unregister();\r\n })\r\n .catch(error => {\r\n console.error(error.message);\r\n });\r\n }\r\n}","const reportWebVitals = onPerfEntry => {\r\n if (onPerfEntry && onPerfEntry instanceof Function) {\r\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\r\n getCLS(onPerfEntry);\r\n getFID(onPerfEntry);\r\n getFCP(onPerfEntry);\r\n getLCP(onPerfEntry);\r\n getTTFB(onPerfEntry);\r\n });\r\n }\r\n};\r\n\r\nexport default reportWebVitals;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport App from './App';\r\nimport * as serviceWorker from \"./serviceWorker\";\r\nimport reportWebVitals from './reportWebVitals';\r\n\r\nReactDOM.render(,document.getElementById('root'));\r\nserviceWorker.register();\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n\r\n"],"sourceRoot":""}