mirror of
				https://github.com/crater-invoice/crater.git
				synced 2025-11-03 22:13:18 -05: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)
 | 
						|
          })
 | 
						|
      })
 | 
						|
    },
 | 
						|
  },
 | 
						|
})
 |