import * as types from '../mutation_types'; import * as utils from '../utils'; export default { [types.TOGGLE_TREE_OPEN](state, tree) { Object.assign(tree, { opened: !tree.opened, }); }, [types.SET_DIRECTORY_DATA](state, { data, tree }) { const level = tree.level !== undefined ? tree.level + 1 : 0; const parentTreeUrl = data.parent_tree_url ? `${data.parent_tree_url}${data.path}` : state.endpoints.rootUrl; Object.assign(tree, { tree: [ ...data.trees.map(t => utils.decorateData({ ...t, type: 'tree', parentTreeUrl, level, }, state.project.url)), ...data.submodules.map(m => utils.decorateData({ ...m, type: 'submodule', parentTreeUrl, level, }, state.project.url)), ...data.blobs.map(b => utils.decorateData({ ...b, type: 'blob', parentTreeUrl, level, }, state.project.url)), ], }); }, [types.SET_PARENT_TREE_URL](state, url) { Object.assign(state, { parentTreeUrl: url, }); }, [types.CREATE_TMP_TREE](state, { parent, tmpEntry }) { parent.tree.push(tmpEntry); }, };