mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-10-30 13:11:08 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const { defineStore } = window.pinia
 | |
| import { useGlobalStore } from '@/scripts/customer/stores/global'
 | |
| import axios from 'axios'
 | |
| import { handleError } from '@/scripts/customer/helpers/error-handling'
 | |
| 
 | |
| export const useDashboardStore = defineStore({
 | |
|   id: 'dashboard',
 | |
|   state: () => ({
 | |
|     recentInvoices: [],
 | |
|     recentEstimates: [],
 | |
|     invoiceCount: 0,
 | |
|     estimateCount: 0,
 | |
|     paymentCount: 0,
 | |
|     totalDueAmount: [],
 | |
|     isDashboardDataLoaded: false,
 | |
|   }),
 | |
| 
 | |
|   actions: {
 | |
|     loadData(data) {
 | |
|       const globalStore = useGlobalStore()
 | |
|       return new Promise((resolve, reject) => {
 | |
|         axios
 | |
|           .get(`/api/v1/${globalStore.companySlug}/customer/dashboard`, {
 | |
|             data,
 | |
|           })
 | |
|           .then((response) => {
 | |
|             this.totalDueAmount = response.data.due_amount
 | |
|             this.estimateCount = response.data.estimate_count
 | |
|             this.invoiceCount = response.data.invoice_count
 | |
|             this.paymentCount = response.data.payment_count
 | |
|             this.recentInvoices = response.data.recentInvoices
 | |
|             this.recentEstimates = response.data.recentEstimates
 | |
|             globalStore.getDashboardDataLoaded = true
 | |
|             resolve(response)
 | |
|           })
 | |
|           .catch((err) => {
 | |
|             handleError(err)
 | |
|             reject(err)
 | |
|           })
 | |
|       })
 | |
|     },
 | |
|   },
 | |
| })
 |