summaryrefslogtreecommitdiff
path: root/app/assets/javascripts/vue_merge_request_widget/components/approvals/humanized_text.js
blob: 6689d0700532422e4df082ff4a0c9333ffd72b83 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import { __ } from '~/locale';

const humanizeRules = (invalidRules) => {
  if (invalidRules.length > 1) {
    return invalidRules.reduce((rules, { name }, index) => {
      if (index === invalidRules.length - 1) {
        return `${rules}${__(' and ')}"${name}"`;
      }
      return rules ? `${rules}, "${name}"` : `"${name}"`;
    }, '');
  }
  return `"${invalidRules[0].name}"`;
};

export const humanizeInvalidApproversRules = (invalidRules) => {
  const ruleCount = invalidRules.length;

  if (!ruleCount) {
    return '';
  }

  return humanizeRules(invalidRules);
};