Work in progress
This commit is contained in:
26
client/plugins/amplitude.js
vendored
Normal file
26
client/plugins/amplitude.js
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
|
||||
const {logEvent} = useAmplitude()
|
||||
|
||||
// Hook function used by event listener
|
||||
function hookLogEvent (binding) {
|
||||
const modifiers = Object.keys(binding.modifiers)
|
||||
if (modifiers.length !== 1) {
|
||||
throw new Error('Amplitude directive takes only one modifier which is the event name.')
|
||||
}
|
||||
const eventName = modifiers[0]
|
||||
|
||||
logEvent(eventName, binding.value)
|
||||
}
|
||||
|
||||
export default defineNuxtPlugin(nuxtApp => {
|
||||
// Doing something with nuxtApp
|
||||
const registeredListeners = {}
|
||||
nuxtApp.vueApp.directive('track', {
|
||||
beforeMount (el, binding, vnode) {
|
||||
registeredListeners[el] = () => {
|
||||
hookLogEvent(binding)
|
||||
}
|
||||
el.addEventListener('click', registeredListeners[el])
|
||||
}
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user