// @ts-expect-error import VueMatomo from 'vue-matomo'; export default defineNuxtPlugin((nuxtApp) => { const { user } = useUserSession(); nuxtApp.vueApp.use(VueMatomo, { host: 'https://analytics.syma.dev', siteId: 12, router: nuxtApp.$router, trackInitialView: true, preInitActions: [ // Respect DNT ['setDoNotTrack', true], user.value ? ['setUserId', user.value.id.toString()] : ['resetUserId'], user.value ? ['setCustomDimension', 1, user.value.role] : ['setCustomDimension', 1, 'guest'] ] }); // Update user state watch(user, (u) => { if (u) { // Add users id to visit window._paq?.push(['setUserId', u.id.toString()]); // Add users role to visit window._paq?.push(['setCustomDimension', 1, u.role]); window._paq?.push(['trackPageView']); } else { window._paq?.push(['resetUserId']); window._paq?.push(['setCustomDimension', 1, 'guest']); window._paq?.push(['appendToTrackingUrl', 'new_visit=1']); window._paq?.push(['trackPageView']); window._paq?.push(['appendToTrackingUrl', '']); } }); }); declare global { interface Window { _paq?: any[]; } }