message: allow "other" as report type
diff: @@ -29,11 +29,21 @@ export default class AppReportForm extends BaseForm<FormModel> implements FormOn
  maxLengthSource = 255;
  get isDescriptionOptional() {
  - if (!this.formModel.reason || !this.formModel.context) {
  + if (!this.formModel.reason) {
  return true;
  }
  - return !(this.formModel.context.length > 0 && this.formModel.context.includes('other'));
  + // When "other" is selected as reason, they have to provide a description.
  + if (this.formModel.reason === 'other') {
  + return false;
  + }
  +
  + // When "other" is selected as context, they have to provide a description.
  + if (this.formModel.context && this.formModel.context.includes('other')) {
  + return false;
  + }
  +
  + return true;
  }
  get reasons(): any[] {
  @@ -67,6 +77,10 @@ export default class AppReportForm extends BaseForm<FormModel> implements FormOn
  radioValue: 'malware',
  text: this.$gettext('Virus or other form of malware'),
  },
  + {
  + radioValue: 'other',
  + text: this.$gettext('Other'),
  + },
  ];
  case 'Fireside_Post':
  const reasons = [
  @@ -97,6 +111,10 @@ export default class AppReportForm extends BaseForm<FormModel> implements FormOn
  ),
  },
  },
  + {
  + radioValue: 'other',
  + text: this.$gettext('Other'),
  + },
  ];
  // For a devlog post of a game that is maturity restricted, we don't want to show the "explicit" report option.
  @@ -132,6 +150,10 @@ export default class AppReportForm extends BaseForm<FormModel> implements FormOn
  radioValue: 'harassment',
  text: this.$gettext('It is harassment or bullying'),
  },
  + {
  + radioValue: 'other',
  + text: this.$gettext('Other'),
  + },
  ];
  case 'User':
  return [
  @@ -236,6 +258,10 @@ export default class AppReportForm extends BaseForm<FormModel> implements FormOn
  ),
  },
  },
  + {
  + radioValue: 'other',
  + text: this.$gettext('Other'),
  + },
  ];
  }
  