diff options
Diffstat (limited to 'app/assets/javascripts/repo/stores/utils.js')
-rw-r--r-- | app/assets/javascripts/repo/stores/utils.js | 33 |
1 files changed, 29 insertions, 4 deletions
diff --git a/app/assets/javascripts/repo/stores/utils.js b/app/assets/javascripts/repo/stores/utils.js index ec733200552..81638e46672 100644 --- a/app/assets/javascripts/repo/stores/utils.js +++ b/app/assets/javascripts/repo/stores/utils.js @@ -1,4 +1,4 @@ -export const dataStructure = ({ +export const dataStructure = () => ({ id: '', type: '', name: '', @@ -25,9 +25,10 @@ export const dataStructure = ({ parentTreeUrl: '', }); -export const decorateData = (entity, type, parentTreeUrl = '', level = 0) => { +export const decorateData = (entity, projectUrl = '') => { const { id, + type, url, name, icon, @@ -37,10 +38,13 @@ export const decorateData = (entity, type, parentTreeUrl = '', level = 0) => { tempFile, active = false, opened = false, + changed = false, + parentTreeUrl = '', + level = 0, } = entity; return { - ...dataStructure, + ...dataStructure(), id, type, name, @@ -53,15 +57,19 @@ export const decorateData = (entity, type, parentTreeUrl = '', level = 0) => { opened, active, parentTreeUrl, + changed, // eslint-disable-next-line camelcase lastCommit: last_commit ? { - // url: `${Store.projectUrl}/commit/${last_commit.id}`, + url: `${projectUrl}/commit/${last_commit.id}`, message: last_commit.message, updatedAt: last_commit.committed_date, } : {}, }; }; +export const findEntry = (state, type, name) => state.tree.find( + f => f.type === type && f.name === name, +); export const findIndexOfFile = (state, file) => state.findIndex(f => f.path === file.path); export const setPageTitle = (title) => { @@ -71,3 +79,20 @@ export const setPageTitle = (title) => { export const pushState = (url) => { history.pushState({ url }, '', url); }; + +export const createTemp = ({ name, path, type, level, changed, content }) => { + const treePath = path ? `${path}/${name}` : name; + + return decorateData({ + id: new Date().getTime().toString(), + name, + type, + tempFile: true, + path: treePath, + icon: type === 'tree' ? 'folder' : 'file-text-o', + changed, + content, + parentTreeUrl: '', + level, + }); +}; |