diff options
Diffstat (limited to 'modern/src/UpdateController.jsx')
-rw-r--r-- | modern/src/UpdateController.jsx | 58 |
1 files changed, 0 insertions, 58 deletions
diff --git a/modern/src/UpdateController.jsx b/modern/src/UpdateController.jsx deleted file mode 100644 index 80ca6dc2..00000000 --- a/modern/src/UpdateController.jsx +++ /dev/null @@ -1,58 +0,0 @@ -import { Snackbar, IconButton } from '@mui/material'; -import RefreshIcon from '@mui/icons-material/Refresh'; -import React from 'react'; -import { useSelector } from 'react-redux'; -import { useRegisterSW } from 'virtual:pwa-register/react'; -import { useTranslation } from './common/components/LocalizationProvider'; - -// Based on https://vite-pwa-org.netlify.app/frameworks/react.html -const UpdateController = () => { - const t = useTranslation(); - - const swUpdateInterval = useSelector((state) => state.session.server.attributes.serviceWorkerUpdateInterval || 3600000); - - const { - needRefresh: [needRefresh], - updateServiceWorker, - } = useRegisterSW({ - onRegisteredSW(swUrl, swRegistration) { - if (swUpdateInterval > 0 && swRegistration) { - setInterval(async () => { - if (!(!swRegistration.installing && navigator)) { - return; - } - - if (('connection' in navigator) && !navigator.onLine) { - return; - } - - const newSW = await fetch(swUrl, { - cache: 'no-store', - headers: { - cache: 'no-store', - 'cache-control': 'no-cache', - }, - }); - - if (newSW?.status === 200) { - await swRegistration.update(); - } - }, swUpdateInterval); - } - }, - }); - - return ( - <Snackbar - open={needRefresh} - message={t('settingsUpdateAvailable')} - action={( - <IconButton color="inherit" onClick={() => updateServiceWorker(true)}> - <RefreshIcon /> - </IconButton> - )} - /> - ); -}; - -export default UpdateController; |