35 lines
666 B
JavaScript
35 lines
666 B
JavaScript
|
|
|
||
|
|
export const defaultState = {
|
||
|
|
drafts: {}
|
||
|
|
}
|
||
|
|
|
||
|
|
export const mutations = {
|
||
|
|
addOrSaveDraft (state, { draft }) {
|
||
|
|
state.drafts[draft.id] = draft
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
export const actions = {
|
||
|
|
addOrSaveDraft (store, { draft }) {
|
||
|
|
const id = draft.id || (new Date().getTime()).toString()
|
||
|
|
store.commit('addOrSaveDraft', { draft: { ...draft, id } })
|
||
|
|
return id
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
export const getters = {
|
||
|
|
draftsByTypeAndRefId (state) {
|
||
|
|
return (type, refId) => {
|
||
|
|
return Object.values(state.drafts).filter(draft => draft.type === type && draft.refId === refId)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
const drafts = {
|
||
|
|
state: defaultState,
|
||
|
|
mutations,
|
||
|
|
getters,
|
||
|
|
actions
|
||
|
|
}
|
||
|
|
|
||
|
|
export default drafts
|