38 lines
1.1 KiB
JavaScript
38 lines
1.1 KiB
JavaScript
|
export const activeFile = state => state.openFiles.find(file => file.active) || null;
|
||
|
|
||
|
export const addedFiles = state => state.changedFiles.filter(f => f.tempFile);
|
||
|
|
||
|
export const modifiedFiles = state => state.changedFiles.filter(f => !f.tempFile);
|
||
|
|
||
|
export const projectsWithTrees = state =>
|
||
|
Object.keys(state.projects).map(projectId => {
|
||
|
const project = state.projects[projectId];
|
||
|
|
||
|
return {
|
||
|
...project,
|
||
|
branches: Object.keys(project.branches).map(branchId => {
|
||
|
const branch = project.branches[branchId];
|
||
|
|
||
|
return {
|
||
|
...branch,
|
||
|
tree: state.trees[branch.treeId],
|
||
|
};
|
||
|
}),
|
||
|
};
|
||
|
});
|
||
|
|
||
|
export const currentMergeRequest = state => {
|
||
|
if (state.projects[state.currentProjectId]) {
|
||
|
return state.projects[state.currentProjectId].mergeRequests[state.currentMergeRequestId];
|
||
|
}
|
||
|
return null;
|
||
|
};
|
||
|
|
||
|
// eslint-disable-next-line no-confusing-arrow
|
||
|
export const currentIcon = state =>
|
||
|
state.rightPanelCollapsed ? 'angle-double-left' : 'angle-double-right';
|
||
|
|
||
|
export const hasChanges = state => !!state.changedFiles.length;
|
||
|
|
||
|
export const hasMergeRequest = state => !!state.currentMergeRequestId;
|