Use nuxt lifecycle hook for analytics (#561)

This commit is contained in:
Geometrically
2022-07-02 11:23:24 -07:00
committed by GitHub
parent 928f6e7009
commit 2186ea9a90
2 changed files with 38 additions and 18 deletions

View File

@@ -1,5 +1,9 @@
export default function (context) {
if (process.client && context.from.path === context.route.path) {
if (!process.client) {
return
}
if (context.from.path === context.route.path) {
return
}
@@ -9,19 +13,9 @@ export default function (context) {
setTimeout(() => {
context.$axios
.post(
`${context.$config.analytics.base_url}view`,
{
url: process.env.domain + context.route.fullPath,
},
context.$config.analytics.admin_key
? {
headers: {
'Modrinth-Admin': context.$config.analytics.admin_key,
},
}
: {}
)
.post(`${context.$config.analytics.base_url}view`, {
url: process.env.domain + context.route.fullPath,
})
.then(() => {})
.catch((e) => {
console.error('An error occurred while registering the visit: ', e)

View File

@@ -1,4 +1,5 @@
import { sortRoutes } from '@nuxt/utils'
import axios from 'axios'
export default {
/*
@@ -305,10 +306,35 @@ export default {
},
},
},
analytics: {
base_url:
process.env.ARIADNE_URL || 'https://staging-ariadne.modrinth.com/v1/',
admin_key: process.env.ARIADNE_ADMIN_KEY,
},
hooks: {
render: {
routeDone(url) {
setTimeout(() => {
axios
.post(
`${
process.env.ARIADNE_URL ||
'https://staging-ariadne.modrinth.com/v1/'
}view`,
{
url: process.env.domain + url,
},
{
headers: {
'Modrinth-Admin': process.env.ARIADNE_ADMIN_KEY || 'feedbeef',
},
}
)
.then(() => {})
.catch((e) => {
console.error(
'An error occurred while registering the visit: ',
e
)
})
})
},
},
},
}