import { SET_JOURNALS, SET_LOADING_JOURNALS, AUTOSELECT_JOURNAL, SET_SELECTED_JOURNAL } from '@/constants/mutationTypes' import { INIT_JOURNALS, SELECT_JOURNAL } from '@/constants/actionTypes' const initialState = { journals: [], loadingJournals: false, selectedJournal: null } const state = { journals: initialState.journals, loadingJournals: !initialState.loadingJournals, selectedJournal: initialState.selectedJournal } const getters = { /** * * @param {*} state */ journals(state) { return state.journals }, /** * * @param {*} state */ loadingJournals(state) { return state.loadingJournals }, /** * * @param {*} state */ selectedJournal(state) { return state.selectedJournal } } const mutations = { /** * * @param {*} state * @param {*} payload */ [SET_JOURNALS] (state, payload) { state.journals = payload }, /** * * @param {*} state * @param {*} payload */ [SET_LOADING_JOURNALS] (state, payload) { state.loadingJournals = !!payload }, /** * * @param {*} state * @param {*} payload */ [AUTOSELECT_JOURNAL] (state) { state.selectedJournal = state.journals.find(j => j.type === 'cash') }, /** * * @param {*} state * @param {*} payload */ [SET_SELECTED_JOURNAL] (state, payload) { state.selectedJournal = payload } } const actions = { /** * * @param {*} param0 * @param {*} payload */ [INIT_JOURNALS] ({ commit }, payload) { commit(SET_JOURNALS, payload) commit(AUTOSELECT_JOURNAL) commit(SET_LOADING_JOURNALS) }, /** * * @param {*} param0 * @param {*} payload */ [SELECT_JOURNAL] ({ commit }, payload) { commit(SET_SELECTED_JOURNAL, payload) } } export default { state, getters, mutations, actions }