30 lines
685 B
TypeScript
30 lines
685 B
TypeScript
import {defineStore} from 'pinia';
|
|
|
|
interface Notification {
|
|
message?: string;
|
|
details?: string[] | string;
|
|
}
|
|
|
|
export const useNotificationStore = defineStore('notification', {
|
|
state: () => ({
|
|
hasNotification: false,
|
|
type: "info",
|
|
notification: {},
|
|
}),
|
|
actions: {
|
|
pushNotification(type: 'warn' | 'info' | 'success', notification: Notification) {
|
|
this.notification = notification;
|
|
this.hasNotification = true;
|
|
this.type = type;
|
|
setTimeout(() => {
|
|
this.clearNotification();
|
|
}, 5000);
|
|
},
|
|
clearNotification() {
|
|
this.notification = {};
|
|
this.type = 'info';
|
|
this.hasNotification = false;
|
|
}
|
|
}
|
|
});
|