-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathplugin.js
37 lines (29 loc) · 1.15 KB
/
plugin.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
// ///////////////////////////////////////////////////////////////////// Imports
// -----------------------------------------------------------------------------
import { defineNuxtPlugin } from '#imports'
// ////////////////////////////////////////////////////////////////////// Export
// -----------------------------------------------------------------------------
export default defineNuxtPlugin(() => {
if (process.server) { return } // only run client-side
const router = useRouter()
const config = useRuntimeConfig().public
// Only run in production OR if trackLocalhost is explcitly set to true
if (process.env.NODE_ENV !== 'production' || !config.trackLocalhost === true) {
return
}
let isInitialPageLoad = true
router.afterEach(to => {
// Ignore initial page because it's fired in the head
if (isInitialPageLoad) {
isInitialPageLoad = false
return
}
// Track virtual navigation changes
window.plausible = window.plausible || function () {
(window.plausible.q = window.plausible.q || []).push(arguments)
}
window.plausible('pageview', {
url: `${config.siteUrl}${to.fullPath}`
})
})
})