2024-04-15 19:39:03 +02:00
|
|
|
import { ref, onUnmounted } from "vue"
|
2023-12-31 12:39:01 +01:00
|
|
|
|
|
|
|
|
export const useConfetti = () => {
|
|
|
|
|
let timeoutId = ref(null)
|
|
|
|
|
const nuxtApp = useNuxtApp()
|
|
|
|
|
const $confetti = nuxtApp.vueApp.config.globalProperties.$confetti
|
2024-04-15 19:39:03 +02:00
|
|
|
|
|
|
|
|
function play(duration = 3000) {
|
2023-12-31 12:39:01 +01:00
|
|
|
$confetti.start({ defaultSize: 6 })
|
2024-04-15 19:39:03 +02:00
|
|
|
timeoutId.value = setTimeout(() => {
|
2023-12-31 12:39:01 +01:00
|
|
|
$confetti.stop()
|
|
|
|
|
}, duration)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
onUnmounted(() => {
|
2024-04-15 19:39:03 +02:00
|
|
|
if (timeoutId.value) clearTimeout(timeoutId)
|
2023-12-31 12:39:01 +01:00
|
|
|
})
|
|
|
|
|
|
|
|
|
|
return {
|
2024-04-15 19:39:03 +02:00
|
|
|
play,
|
2023-12-31 12:39:01 +01:00
|
|
|
}
|
|
|
|
|
}
|