page.ts 814 B

1234567891011121314151617181920212223242526272829303132333435
  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 loading: Ref<Boolean> = ref(false)
  8. const removeSlowlyAlert = () => {
  9. setTimeout(() => {
  10. alerts.value.shift()
  11. }, 300)
  12. }
  13. /**
  14. * Ajout des alerts dans le store
  15. * @param type
  16. * @param messages
  17. */
  18. const addAlert = (type: TYPE_ALERT, messages: Array<string>) => {
  19. const alert: Alert = {
  20. type: type,
  21. messages: messages
  22. }
  23. alerts.value.push(alert)
  24. }
  25. return {
  26. alerts,
  27. loading,
  28. removeSlowlyAlert,
  29. addAlert
  30. }
  31. })