
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])
    }
  })
})
