static getColoredSquareModel()

in packages/issue-dashboard-widgets/widgets/youtrack-activities-widget/app/components/issue-card.js [71:114]


  static getColoredSquareModel(issue) {

    const makeColorFieldPresentationObject = issueField => {
      const coloredValue = IssueCard.toArray(issueField.value).filter(
        IssueCard.isColoredValue
      )[0];
      if (!coloredValue) {
        return null;
      }
      const fieldName = IssueCard.getName(
        issueField.projectCustomField.field || {}
      );
      return {
        style: IssueCard.fieldColorToCss(coloredValue.color),
        letter: IssueCard.getFirstLetter(coloredValue),
        title: `${fieldName}: ${IssueCard.getName(coloredValue)}`,
        issueField
      };
    };

    const bundleFields = (issue.fields || []).filter(
      issueField => !!issueField.projectCustomField.bundle
    );
    const priorityField = bundleFields.filter(
      issueField => {
        const field = issueField.projectCustomField.field || {};
        return (field.name || '').toLowerCase() === 'priority';
      }
    )[0];
    if (priorityField) {
      if (priorityField.value) {
        return makeColorFieldPresentationObject(priorityField);
      }
      return null;
    }
    const fieldWithColoredValues = (issue.fields || []).filter(
      field =>
        IssueCard.toArray(field.value || []).some(IssueCard.isColoredValue)
    )[0];
    if (!fieldWithColoredValues) {
      return null;
    }
    return makeColorFieldPresentationObject(fieldWithColoredValues);
  }