Use WindowClient.navigate() instead of service worker message (#2294)
This commit is contained in:
parent
c4042fdf4b
commit
5aa5956afc
@ -60,14 +60,6 @@ export default function MyApp ({ Component, pageProps: { ...props } }) {
|
|||||||
router.events.on('routeChangeComplete', nprogressDone)
|
router.events.on('routeChangeComplete', nprogressDone)
|
||||||
router.events.on('routeChangeError', nprogressDone)
|
router.events.on('routeChangeError', nprogressDone)
|
||||||
|
|
||||||
const handleServiceWorkerMessage = (event) => {
|
|
||||||
if (event.data?.type === 'navigate') {
|
|
||||||
router.push(event.data.url)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
navigator.serviceWorker?.addEventListener('message', handleServiceWorkerMessage)
|
|
||||||
|
|
||||||
if (!props?.apollo) return
|
if (!props?.apollo) return
|
||||||
// HACK: 'cause there's no way to tell Next to skip SSR
|
// HACK: 'cause there's no way to tell Next to skip SSR
|
||||||
// So every page load, we modify the route in browser history
|
// So every page load, we modify the route in browser history
|
||||||
@ -90,7 +82,6 @@ export default function MyApp ({ Component, pageProps: { ...props } }) {
|
|||||||
router.events.off('routeChangeStart', nprogressStart)
|
router.events.off('routeChangeStart', nprogressStart)
|
||||||
router.events.off('routeChangeComplete', nprogressDone)
|
router.events.off('routeChangeComplete', nprogressDone)
|
||||||
router.events.off('routeChangeError', nprogressDone)
|
router.events.off('routeChangeError', nprogressDone)
|
||||||
navigator.serviceWorker?.removeEventListener('message', handleServiceWorkerMessage)
|
|
||||||
}
|
}
|
||||||
}, [router.asPath, props?.apollo, shouldShowProgressBar])
|
}, [router.asPath, props?.apollo, shouldShowProgressBar])
|
||||||
|
|
||||||
|
@ -123,13 +123,7 @@ self.addEventListener('notificationclick', function (event) {
|
|||||||
.then(clients => {
|
.then(clients => {
|
||||||
if (clients.length > 0) {
|
if (clients.length > 0) {
|
||||||
const client = clients[0]
|
const client = clients[0]
|
||||||
return client.focus()
|
return client.focus().then(() => client.navigate(url))
|
||||||
.then(() => {
|
|
||||||
return client.postMessage({
|
|
||||||
type: 'navigate',
|
|
||||||
url
|
|
||||||
})
|
|
||||||
})
|
|
||||||
} else {
|
} else {
|
||||||
return self.clients.openWindow(url)
|
return self.clients.openWindow(url)
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user