Skip to content

Commit 30ce03d

Browse files
committed
update
1 parent 75aa873 commit 30ce03d

File tree

6 files changed

+58
-88
lines changed

6 files changed

+58
-88
lines changed

apps/bplan-client/build-hot-fix.mjs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,9 @@ function getDefaultExportFromNamespaceIfNotNamed (n) {
1717
}`), 'utf8')
1818
}
1919

20-
const fixSw = async () => {
21-
return nodeFs.promises.rm(nodePath.resolve('public/sw.js'))
22-
}
20+
// const fixSw = async () => {
21+
// return nodeFs.promises.rm(nodePath.resolve('public/sw.js'))
22+
// }
2323

2424
fix().then(() => console.info('hot fix done'))
25-
fixSw().then(() => console.info('hot fix sw done'))
25+
// fixSw().then(() => console.info('hot fix sw done'))

apps/bplan-client/public/sw.js

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
/* eslint-disable max-nested-callbacks */
2+
/* eslint-disable unicorn/prefer-global-this */
3+
const CACHE_NAME = 'coong-cache'
4+
5+
self.addEventListener('install', (event) => {
6+
event.waitUntil(self.skipWaiting())
7+
})
8+
self.addEventListener('fetch', (event) => {
9+
if (event.request.method !== 'GET') {
10+
return
11+
}
12+
13+
if (
14+
!event.request.url.startsWith('http://') &&
15+
!event.request.url.startsWith('https://')
16+
) {
17+
return
18+
}
19+
20+
event.respondWith(
21+
caches.match(event.request).then((resource) => {
22+
if (resource) {
23+
return resource
24+
}
25+
26+
// Return cached resource if available
27+
return fetch(event.request).then((response) => {
28+
return caches.open(CACHE_NAME).then((cache) => {
29+
// Store response in cache
30+
cache.put(event.request, response.clone())
31+
32+
// Return response
33+
return response
34+
})
35+
})
36+
}),
37+
)
38+
})

apps/bplan-client/src/ReloadPrompt.tsx

Lines changed: 9 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,32 +1,27 @@
1-
import {JSX, Show} from 'solid-js'
1+
import {Accessor, createEffect, createSignal, JSX, Show, Signal} from 'solid-js'
22
import {preventGlobalTouchAttrs} from 'src/components/real-button/use-global-touch'
3-
import {useRegisterSW} from 'virtual:pwa-register/solid'
3+
import {getWindow} from '@winter-love/utils'
44

55
export interface ReloadPromptProps extends JSX.HTMLAttributes<HTMLDivElement> {
66
//
77
}
88

99
export const ReloadPrompt = (props: ReloadPromptProps) => {
10-
const {
11-
needRefresh: [needRefresh, setNeedRefresh],
12-
offlineReady: [offlineReady, setOfflineReady],
13-
updateServiceWorker,
14-
} = useRegisterSW({
15-
immediate: true,
16-
onRegisteredSW(swUrl) {
17-
console.info(`Service worker at: ${swUrl}`)
18-
},
10+
const [offlineReady, setOfflineReady] = createSignal(false)
11+
const [needRefresh, setNeedRefresh] = createSignal(false)
12+
13+
createEffect(() => {
1914
})
2015

2116
const handleClose = () => {
22-
setOfflineReady(false)
23-
setNeedRefresh(false)
17+
// setOfflineReady(false)
18+
// setNeedRefresh(false)
2419
}
2520

2621
const handleUpdateServiceWorker = async () => {
2722
console.info('handleUpdateServiceWorker')
2823
handleClose()
29-
await updateServiceWorker()
24+
// await updateServiceWorker()
3025
}
3126

3227
return (
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
1+
/* eslint-disable n/no-unsupported-features/node-builtins */
12
// @refresh reload
23
import {mount, StartClient} from '@solidjs/start/client'
34

5+
if ('serviceWorker' in navigator) {
6+
navigator.serviceWorker.register('/sw.js')
7+
}
8+
49
mount(() => <StartClient />, document.body)

apps/bplan-client/src/sw.ts

Lines changed: 0 additions & 44 deletions
This file was deleted.

apps/bplan-client/vite.config.mts

Lines changed: 2 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,14 @@
11
import {defineConfig} from '@solidjs/start/config'
2-
import {VitePWA as vitePwa} from 'vite-plugin-pwa'
2+
33
import {fileURLToPath, URL} from 'node:url'
44
import unoCss from 'unocss/vite'
55

66
export default defineConfig({
7-
server: {
8-
prerender: {
9-
routes: ['/'],
10-
},
11-
},
127
vite: {
138
// build: {
149
// minify: false,
1510
// },
16-
plugins: [
17-
unoCss('../../uno.config.ts'),
18-
vitePwa({
19-
base: '/',
20-
buildBase: '/',
21-
filename: 'sw.ts',
22-
includeAssets: ['favicon.svg', 'robots.txt', '*.svg', '*.png', '*.html'],
23-
injectManifest: {
24-
globDirectory: '.vinxi/build/client',
25-
globPatterns: ['**/*.{js,css,html,svg,png}'],
26-
},
27-
injectRegister: null,
28-
manifest: false,
29-
outDir: './public',
30-
registerType: 'autoUpdate',
31-
scope: '/',
32-
srcDir: 'src',
33-
strategies: 'injectManifest',
34-
}),
35-
] as any,
11+
plugins: [unoCss('../../uno.config.ts')],
3612
resolve: {
3713
alias: {
3814
// fix #start/app is app.tsx only @solid/state error

0 commit comments

Comments
 (0)