summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/vue_merge_request_widget/stores/get_state_key.js
blob: 7c15abfff1019b34d529336604a15da15adf4dc6 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
export default function deviseState(data) {
  if (data.project_archived) {
    return 'archived';
  } else if (data.branch_missing) {
    return 'missingBranch';
  } else if (!data.commits_count) {
    return 'nothingToMerge';
  } else if (this.mergeStatus === 'unchecked') {
    return 'checking';
  } else if (data.has_conflicts) {
    return 'conflicts';
  } else if (data.work_in_progress) {
    return 'workInProgress';
  } else if (this.onlyAllowMergeIfPipelineSucceeds && this.isPipelineFailed) {
    return 'pipelineFailed';
  } else if (this.hasMergeableDiscussionsState) {
    return 'unresolvedDiscussions';
  } else if (this.isPipelineBlocked) {
    return 'pipelineBlocked';
  } else if (this.hasSHAChanged) {
    return 'shaMismatch';
  } else if (this.mergeWhenPipelineSucceeds) {
    return this.mergeError ? 'autoMergeFailed' : 'mergeWhenPipelineSucceeds';
  } else if (!this.canMerge) {
    return 'notAllowedToMerge';
  } else if (this.canBeMerged) {
    return 'readyToMerge';
  }
  return null;
}