File "use-popper.js"
Full Path: /home/pulsehostuk9/public_html/invoicer.pulsehost.co.uk/resources/scripts/helpers/use-popper.js
File size: 745 bytes
MIME-type: text/plain
Charset: utf-8
import { ref, onMounted, watchEffect } from 'vue'
import { createPopper } from '@popperjs/core'
export function usePopper(options) {
let activator = ref(null)
let container = ref(null)
let popper = ref(null)
onMounted(() => {
watchEffect(onInvalidate => {
if (!container.value) return
if (!activator.value) return
let containerEl = container.value.el || container.value
let activatorEl = activator.value.el || activator.value
if (!(activatorEl instanceof HTMLElement)) return
if (!(containerEl instanceof HTMLElement)) return
popper.value = createPopper(activatorEl, containerEl, options)
onInvalidate(popper.value.destroy)
})
})
return [activator, container, popper]
}