fix problem registering service worker when in a development environment
CI / Build & Quality Checks (pull_request) Canceled after 1m37s
CI / Trigger Desktop Build (pull_request) Canceled after 0s

This commit is contained in:
2026-08-02 18:34:54 -04:00
parent 6a0037ecec
commit 093f10db5c
2 changed files with 30 additions and 7 deletions
+1 -1
View File
@@ -1,6 +1,6 @@
{
"defaultHomeserver": 0,
"homeserverList": ["matrix.lotusguild.org", "matrix.org", "mozilla.org"],
"homeserverList": ["matrix.lotusguild.org", "matrix.org", "mozilla.org", "localhost:8080"],
"allowCustomHomeservers": true,
"featuredCommunities": {
"openAsDefault": false,
+29 -6
View File
@@ -17,23 +17,46 @@ import App from './app/pages/App';
import './app/i18n';
import { pushSessionToSW } from './sw-session';
import { getFallbackSession } from './app/state/sessions';
import { register } from 'module';
document.body.classList.add(configClass, varsClass);
// Register Service Worker
if ('serviceWorker' in navigator) {
const swUrl =
import.meta.env.MODE === 'production'
? `${trimTrailingSlash(import.meta.env.BASE_URL)}/sw.js`
: `/dev-sw.js?dev-sw`;
const isProduction = import.meta.env.PROD;
const swUrl = isProduction
? `${trimTrailingSlash(import.meta.env.BASE_URL)}/sw.js`
: `/dev-sw.js?dev-sw`;
const sendSessionToSW = () => {
const session = getFallbackSession();
pushSessionToSW(session?.baseUrl, session?.accessToken);
};
navigator.serviceWorker.register(swUrl).then(sendSessionToSW);
navigator.serviceWorker.ready.then(sendSessionToSW);
const registerServiceWorker = async () => {
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) => {
const { type } = ev.data ?? {};