fix problem registering service worker when in a development environment
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"defaultHomeserver": 0,
|
"defaultHomeserver": 0,
|
||||||
"homeserverList": ["matrix.lotusguild.org", "matrix.org", "mozilla.org"],
|
"homeserverList": ["matrix.lotusguild.org", "matrix.org", "mozilla.org", "localhost:8080"],
|
||||||
"allowCustomHomeservers": true,
|
"allowCustomHomeservers": true,
|
||||||
"featuredCommunities": {
|
"featuredCommunities": {
|
||||||
"openAsDefault": false,
|
"openAsDefault": false,
|
||||||
|
|||||||
+29
-6
@@ -17,23 +17,46 @@ import App from './app/pages/App';
|
|||||||
import './app/i18n';
|
import './app/i18n';
|
||||||
import { pushSessionToSW } from './sw-session';
|
import { pushSessionToSW } from './sw-session';
|
||||||
import { getFallbackSession } from './app/state/sessions';
|
import { getFallbackSession } from './app/state/sessions';
|
||||||
|
import { register } from 'module';
|
||||||
|
|
||||||
document.body.classList.add(configClass, varsClass);
|
document.body.classList.add(configClass, varsClass);
|
||||||
|
|
||||||
// Register Service Worker
|
// Register Service Worker
|
||||||
if ('serviceWorker' in navigator) {
|
if ('serviceWorker' in navigator) {
|
||||||
const swUrl =
|
const isProduction = import.meta.env.PROD;
|
||||||
import.meta.env.MODE === 'production'
|
const swUrl = isProduction
|
||||||
? `${trimTrailingSlash(import.meta.env.BASE_URL)}/sw.js`
|
? `${trimTrailingSlash(import.meta.env.BASE_URL)}/sw.js`
|
||||||
: `/dev-sw.js?dev-sw`;
|
: `/dev-sw.js?dev-sw`;
|
||||||
|
|
||||||
const sendSessionToSW = () => {
|
const sendSessionToSW = () => {
|
||||||
const session = getFallbackSession();
|
const session = getFallbackSession();
|
||||||
pushSessionToSW(session?.baseUrl, session?.accessToken);
|
pushSessionToSW(session?.baseUrl, session?.accessToken);
|
||||||
};
|
};
|
||||||
|
|
||||||
navigator.serviceWorker.register(swUrl).then(sendSessionToSW);
|
const registerServiceWorker = async () => {
|
||||||
navigator.serviceWorker.ready.then(sendSessionToSW);
|
try {
|
||||||
|
const registration = await navigator.serviceWorker.register(
|
||||||
|
swUrl,
|
||||||
|
isProduction
|
||||||
|
? undefined
|
||||||
|
: {
|
||||||
|
type: 'module',
|
||||||
|
scope: '/',
|
||||||
|
},
|
||||||
|
);
|
||||||
|
|
||||||
|
sendSessionToSW();
|
||||||
|
|
||||||
|
await navigator.serviceWorker.ready;
|
||||||
|
sendSessionToSW();
|
||||||
|
|
||||||
|
console.info('Service worker registered:', registration.scope);
|
||||||
|
} catch (error) {
|
||||||
|
console.error('Service worker registration failed:', error);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
void registerServiceWorker();
|
||||||
|
|
||||||
navigator.serviceWorker.addEventListener('message', (ev) => {
|
navigator.serviceWorker.addEventListener('message', (ev) => {
|
||||||
const { type } = ev.data ?? {};
|
const { type } = ev.data ?? {};
|
||||||
|
|||||||
Reference in New Issue
Block a user