mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-28 12:11:08 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			31 lines
		
	
	
		
			725 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			31 lines
		
	
	
		
			725 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| import { defineStore } from 'pinia'
 | |
| 
 | |
| export const useNotificationStore = (useWindow = false) => {
 | |
|   const defineStoreFunc = useWindow ? window.pinia.defineStore : defineStore
 | |
| 
 | |
|   return defineStoreFunc({
 | |
|     id: 'notification',
 | |
| 
 | |
|     state: () => ({
 | |
|       active: false,
 | |
|       autoHide: true,
 | |
|       notifications: [],
 | |
|     }),
 | |
| 
 | |
|     actions: {
 | |
|       showNotification(notification) {
 | |
|         this.notifications.push({
 | |
|           ...notification,
 | |
|           id: (Math.random().toString(36) + Date.now().toString(36)).substr(2),
 | |
|         })
 | |
|       },
 | |
| 
 | |
|       hideNotification(data) {
 | |
|         this.notifications = this.notifications.filter((notification) => {
 | |
|           return notification.id != data.id
 | |
|         })
 | |
|       }
 | |
|     }
 | |
|   })()
 | |
| }
 |