2023-03-10 11:20:06 -05:00
|
|
|
|
|
|
|
|
export const defaultState = {
|
|
|
|
|
drafts: {}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const mutations = {
|
|
|
|
|
addOrSaveDraft (state, { draft }) {
|
|
|
|
|
state.drafts[draft.id] = draft
|
2023-03-10 12:39:08 -05:00
|
|
|
},
|
|
|
|
|
abandonDraft (state, { id }) {
|
|
|
|
|
delete state.drafts[id]
|
2023-03-10 11:20:06 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const actions = {
|
|
|
|
|
addOrSaveDraft (store, { draft }) {
|
|
|
|
|
const id = draft.id || (new Date().getTime()).toString()
|
|
|
|
|
store.commit('addOrSaveDraft', { draft: { ...draft, id } })
|
|
|
|
|
return id
|
2023-03-10 12:39:08 -05:00
|
|
|
},
|
|
|
|
|
abandonDraft (store, { id }) {
|
|
|
|
|
store.commit('abandonDraft', { id })
|
2023-03-10 11:20:06 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export const getters = {
|
|
|
|
|
draftsByTypeAndRefId (state) {
|
|
|
|
|
return (type, refId) => {
|
|
|
|
|
return Object.values(state.drafts).filter(draft => draft.type === type && draft.refId === refId)
|
|
|
|
|
}
|
2023-03-10 12:10:39 -05:00
|
|
|
},
|
|
|
|
|
draftsArray (state) {
|
|
|
|
|
return Object.values(state.drafts)
|
2023-03-10 20:22:41 -05:00
|
|
|
},
|
|
|
|
|
draftCount (state) {
|
|
|
|
|
return Object.values(state.drafts).length
|
2023-03-10 11:20:06 -05:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
const drafts = {
|
|
|
|
|
state: defaultState,
|
|
|
|
|
mutations,
|
|
|
|
|
getters,
|
|
|
|
|
actions
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
export default drafts
|