const state = { invoices: [], filteredInvoices: [], selectedInvoices: null } const getters = { invoices (state) { return state.filteredInvoices.length === 0 ? state.invoices : state.filteredInvoices }, selectedInvoices(state) { return state.selectedInvoices }, haSelectedInvoices(state) { return !!state.selectedInvoices } } const mutations = { pushInvoices(state, payload) { let invoice = payload.invoices invoice.sort((a, b) => { return a.date_invoice > b.date_invoice }) state.invoices = invoice }, selectInvoice (state, payload){ state.selectedInvoices = payload.invoice }, applyInvoicesFilter( state, payload){ state.filteredInvoices = payload } } const actions = { pushInvoices ({commit, dispatch }, payload){ commit('pushInvoices', { invoices: payload.invoices }) }, selectInvoice ({ commit, dispatch}, payload) { commit('selectInvoice',{ invoice: payload }) dispatch('pushMovelines', payload) }, filterInvoices ({ commit }, payload){ commit('applyInvoicesFilter', payload) } } export default { state, getters, mutations, actions }