page.ts 752 B

123456789101112131415161718192021222324252627282930313233
  1. import {Alert} from '~/types/interfaces'
  2. import {defineStore} from "pinia";
  3. import {TYPE_ALERT} from "~/types/enum/enums";
  4. import {Ref, ref} from "@vue/reactivity";
  5. export const usePageStore = defineStore('page', () => {
  6. const alerts: Ref<Array<Alert>> = ref([])
  7. const removeSlowlyAlert = () => {
  8. setTimeout(() => {
  9. alerts.value.shift()
  10. }, 300)
  11. }
  12. /**
  13. * Ajout des alerts dans le store
  14. * @param type
  15. * @param messages
  16. */
  17. const addAlert = (type: TYPE_ALERT, messages: Array<string>) => {
  18. const alert: Alert = {
  19. type: type,
  20. messages: messages
  21. }
  22. alerts.value.push(alert)
  23. }
  24. return {
  25. alerts,
  26. removeSlowlyAlert,
  27. addAlert
  28. }
  29. })