From 633490c636c5fc6b110926352711673662b6fda9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Barnab=C3=A1s=20Cz=C3=A9m=C3=A1n?= <trabarni@gmail.com> Date: Sun, 11 Feb 2018 15:50:47 +0100 Subject: [PATCH] Revert "remove unnecesary files" This reverts commit 6cd64065d255577f64dfca39aedefebb28ee112e. --- src/components/Header.js | 8 +-- src/config.js | 0 src/config.js.temp | 1 + src/index.js | 2 +- src/registerServiceWorker.js | 108 +++++++++++++++++++++++++++++++++++ src/routes.js | 35 ++++++++++++ 6 files changed, 149 insertions(+), 5 deletions(-) create mode 100644 src/config.js create mode 100644 src/config.js.temp create mode 100644 src/registerServiceWorker.js create mode 100644 src/routes.js diff --git a/src/components/Header.js b/src/components/Header.js index 120c326..773780b 100644 --- a/src/components/Header.js +++ b/src/components/Header.js @@ -47,10 +47,10 @@ const FixedMenu = ({ user }) => ( user.id ? <Button.Group> <Button primary as={Link} to='/profile'>Profilom</Button> - <Button as='a' href='/api/v1/logout/' icon='sign out' /> + <Button as='a' href='/api/v1/logout/' target="_blank" rel="noopener noreferrer" icon='sign out' /> </Button.Group> : - <Button as='a' href='/api/v1/login/authsch/'>BejelentkezĂŠs</Button> + <Button as='a' href='/api/v1/login/authsch/' target="_blank" rel="noopener noreferrer" >BejelentkezĂŠs</Button> } </Menu.Item> </Menu.Menu> @@ -103,10 +103,10 @@ class Header extends Component { this.props.user.id ? <Button.Group> <Button inverted as={Link} to='/profile'>Profilom</Button> - <Button as='a' href='/api/v1/logout/' icon='sign out' /> + <Button as='a' href='/api/v1/logout/' target="_blank" rel="noopener noreferrer" icon='sign out' /> </Button.Group> : - <Button as='a' href='/api/v1/login/authsch/' inverted>BejelentkezĂŠs</Button> + <Button as='a' href='/api/v1/login/authsch/' target="_blank" rel="noopener noreferrer" inverted>BejelentkezĂŠs</Button> } </Menu.Item> diff --git a/src/config.js b/src/config.js new file mode 100644 index 0000000..e69de29 diff --git a/src/config.js.temp b/src/config.js.temp new file mode 100644 index 0000000..6436d28 --- /dev/null +++ b/src/config.js.temp @@ -0,0 +1 @@ +export const APIKEY = ''; diff --git a/src/index.js b/src/index.js index 3ee6391..a72306a 100644 --- a/src/index.js +++ b/src/index.js @@ -6,9 +6,9 @@ import 'slick-carousel/slick/slick.css'; import 'slick-carousel/slick/slick-theme.css'; import 'semantic-ui-css/semantic.min.css'; -import registerServiceWorker from './registerServiceWorker'; import configureStore from './configureStore'; import App from './components/App'; +import registerServiceWorker from './registerServiceWorker'; const store = configureStore(); diff --git a/src/registerServiceWorker.js b/src/registerServiceWorker.js new file mode 100644 index 0000000..4a3ccf0 --- /dev/null +++ b/src/registerServiceWorker.js @@ -0,0 +1,108 @@ +// In production, we register a service worker to serve assets from local cache. + +// 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 the "N+1" visit to a page, since previously +// cached resources are updated in the background. + +// To learn more about the benefits of this model, read https://goo.gl/KwvDNy. +// This link also includes instructions on opting out of this behavior. + +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 default function register() { + 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); + 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/facebookincubator/create-react-app/issues/2374 + return; + } + + window.addEventListener('load', () => { + const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`; + + if (!isLocalhost) { + // Is not local host. Just register service worker + registerValidSW(swUrl); + } else { + // This is running on localhost. Lets check if a service worker still exists or not. + checkValidServiceWorker(swUrl); + } + }); + } +} + +function registerValidSW(swUrl) { + navigator.serviceWorker + .register(swUrl) + .then(registration => { + registration.onupdatefound = () => { + const installingWorker = registration.installing; + installingWorker.onstatechange = () => { + if (installingWorker.state === 'installed') { + if (navigator.serviceWorker.controller) { + // At this point, the old content will have been purged and + // the fresh content will have been added to the cache. + // It's the perfect time to display a "New content is + // available; please refresh." message in your web app. + console.log('New content is available; please refresh.'); + } 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.'); + } + } + }; + }; + }) + .catch(error => { + console.error('Error during service worker registration:', error); + }); +} + +function checkValidServiceWorker(swUrl) { + // 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. + if ( + response.status === 404 || + response.headers.get('content-type').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); + } + }) + .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(); + }); + } +} diff --git a/src/routes.js b/src/routes.js new file mode 100644 index 0000000..b44e78e --- /dev/null +++ b/src/routes.js @@ -0,0 +1,35 @@ +import { withRouter } from 'react-router-dom'; + +export const publicRoutes = [ + { + path: '/login', + component: Login, + }, + { + path: '/register', + component: Register, + }, + { + path: '/home', + }, + { + path: '/news', + }, + { + path: '/', + }, + { + component: NotFound, + }, +]; + +export const privateRoutes = [ + { + path: '/home', + component: withRouter(Home), + }, + { + path: '/store/details', + component: withRouter(Detail), + }, +] -- GitLab