Files
banu-front/src/store/modal.js
T
sajjadtalkhabi d2a577f254 first commit
2026-05-13 01:43:05 +03:30

34 lines
803 B
JavaScript

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