Files
tout-doux/resources/ts/stores/alerts.ts
T
klemek 9f4c8776d5
TS Lint / TypeScript (push) Successful in 1m22s
TS Lint / Oxlint (push) Successful in 1m22s
TS Lint / ESLint (push) Successful in 1m28s
feat: toasts
2026-07-14 11:23:33 +02:00

30 lines
904 B
TypeScript

import { ref } from 'vue';
import { defineStore } from 'pinia';
import type { Alert } from '@/types';
export const useAlertStore = defineStore('alerts', () => {
const alerts = ref<Alert[]>([]);
function addAlert(message: string, type: 'info' | 'success' | 'warning' | 'error', seconds: number) {
alerts.value.push({ message, type, created: new Date(), seconds });
}
function alertSuccess(message: string, seconds = 2) {
addAlert(message, 'success', seconds);
}
function alertInfo(message: string, seconds = 3) {
addAlert(message, 'info', seconds);
}
function alertWarning(message: string, seconds = 4) {
addAlert(message, 'warning', seconds);
}
function alertError(message: string, seconds = 5) {
addAlert(message, 'error', seconds);
}
return { alerts, alertSuccess, alertInfo, alertWarning, alertError };
})