first commit
This commit is contained in:
@@ -0,0 +1,33 @@
|
||||
import { defineStore } from 'pinia'
|
||||
import { ref, computed } from 'vue'
|
||||
|
||||
export const useModalStore = defineStore('modal', () => {
|
||||
const modals = ref([])
|
||||
|
||||
const isModal = (name) => modals.value.some((x) => x.name === name)
|
||||
const getModal = (name) => modals.value.find((x) => x.name === name)
|
||||
const getActiveModal = computed(() => modals.value.at(-1))
|
||||
|
||||
const openModal = (name, data) => {
|
||||
if (!modals.value.some((x) => x.name === name)) {
|
||||
modals.value.push({ name, data })
|
||||
}
|
||||
}
|
||||
|
||||
const closeModal = (name) => {
|
||||
if (name) {
|
||||
modals.value = modals.value.filter((x) => x.name !== name)
|
||||
} else if (modals.value.length > 0) {
|
||||
modals.value.pop()
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
modals,
|
||||
getActiveModal,
|
||||
isModal,
|
||||
getModal,
|
||||
openModal,
|
||||
closeModal,
|
||||
}
|
||||
})
|
||||
Reference in New Issue
Block a user