Skip to content

Commit 0bb2a94

Browse files
committed
Refactor new PWA service worker registration component
1 parent 050d8f4 commit 0bb2a94

5 files changed

Lines changed: 19 additions & 8 deletions

File tree

src/components/Pwa/RegisterSW.astro

Lines changed: 0 additions & 1 deletion
This file was deleted.

src/components/Pwa/register-sw.ts renamed to src/components/Pwa/ServiceWorker/client/index.ts

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,24 @@
11
import { registerSW } from 'virtual:pwa-register'
2+
import { isDev } from '@components/scripts/utils/environmentClient'
23

3-
const registerServiceWorker = () => {
4+
export const registerServiceWorker = () => {
45
const hasServiceWorker = 'serviceWorker' in navigator
56
console.info('[pwa] register-sw start', { hasServiceWorker })
67

78
if (!hasServiceWorker) {
89
return
910
}
1011

12+
if (isDev()) {
13+
void navigator.serviceWorker.getRegistrations().then((registrations) => {
14+
registrations.forEach((registration) => {
15+
console.info('[pwa] unregistering dev service worker', { scope: registration.scope })
16+
void registration.unregister()
17+
})
18+
})
19+
return
20+
}
21+
1122
const updateSW = registerSW({
1223
immediate: false,
1324
onNeedRefresh() {
@@ -32,7 +43,4 @@ const registerServiceWorker = () => {
3243
console.info('[pwa] register-sw hooked update handler')
3344

3445
window.__pwaUpdateSW = updateSW
35-
3646
}
37-
38-
registerServiceWorker()
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<script>
2+
import { registerServiceWorker } from '/src/components/Pwa/ServiceWorker/client'
3+
registerServiceWorker()
4+
</script>

src/layouts/BaseLayout.astro

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,8 @@ import Footer from '@components/Footer/index.astro'
66
import HeadContent from '@components/Head/index.astro'
77
import Header from '@components/Header/index.astro'
88
import Content from '@components/Layout/Content/index.astro'
9-
import PwaTitleBar from '@components/PwaTitleBar/index.astro'
10-
import RegisterSW from '@components/Pwa/RegisterSW.astro'
9+
import PwaTitleBar from '@components/Pwa/TitleBar/index.astro'
10+
import RegisterServiceWorker from '@components/Pwa/ServiceWorker/index.astro'
1111
import Skip from '@components/Layout/Skip/index.astro'
1212
import ThemePicker from '@components/ThemePicker/index.astro'
1313
import { ClientRouter } from 'astro:transitions'
@@ -97,7 +97,7 @@ const {
9797
<Footer />
9898
</Container>
9999
{/* Register the service worker via @vite-pwa/astro virtual module */}
100-
<RegisterSW />
100+
<RegisterServiceWorker />
101101
</body>
102102
</>
103103
</html>

0 commit comments

Comments
 (0)