2018-11-28 15:03:02 +01:00
|
|
|
import Router from 'next/router'
|
2019-03-02 23:51:14 +01:00
|
|
|
import { setupPing, currentPage, closePing } from './on-demand-entries-utils'
|
2018-12-14 12:25:59 +01:00
|
|
|
|
|
|
|
export default async ({ assetPrefix }) => {
|
2017-04-18 06:18:43 +02:00
|
|
|
Router.ready(() => {
|
2019-02-28 18:31:31 +01:00
|
|
|
Router.events.on(
|
|
|
|
'routeChangeComplete',
|
|
|
|
setupPing.bind(this, assetPrefix, () => Router.pathname)
|
|
|
|
)
|
2017-04-18 06:18:43 +02:00
|
|
|
})
|
2017-03-12 04:51:49 +01:00
|
|
|
|
2019-02-28 18:31:31 +01:00
|
|
|
setupPing(assetPrefix, () => Router.pathname, currentPage)
|
2019-04-21 22:51:09 +02:00
|
|
|
|
2019-08-22 22:34:24 +02:00
|
|
|
// prevent HMR connection from being closed when running tests
|
|
|
|
if (!process.env.__NEXT_TEST_MODE) {
|
|
|
|
document.addEventListener('visibilitychange', event => {
|
|
|
|
const state = document.visibilityState
|
|
|
|
if (state === 'visible') {
|
|
|
|
setupPing(assetPrefix, () => Router.pathname, true)
|
|
|
|
} else {
|
|
|
|
closePing()
|
|
|
|
}
|
|
|
|
})
|
2019-12-20 19:01:22 +01:00
|
|
|
|
|
|
|
window.addEventListener('beforeunload', () => {
|
|
|
|
closePing()
|
|
|
|
})
|
2019-08-22 22:34:24 +02:00
|
|
|
}
|
2017-04-18 06:18:43 +02:00
|
|
|
}
|