mirror of
https://github.com/crater-invoice/crater.git
synced 2025-10-29 04:31:08 -04:00
v5.0.0 update
This commit is contained in:
27
resources/scripts/helpers/use-popper.js
Normal file
27
resources/scripts/helpers/use-popper.js
Normal file
@ -0,0 +1,27 @@
|
||||
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]
|
||||
}
|
||||
Reference in New Issue
Block a user