department-of-veterans-affairs/vets-website

View on GitHub
src/applications/disability-benefits/all-claims/pages/ratedDisabilities.js

Summary

Maintainability
A
30 mins
Test Coverage
import fullSchema from 'vets-json-schema/dist/21-526EZ-ALLCLAIMS-schema.json';
import SelectArrayItemsWidget from '../components/SelectArrayItemsWidget';
import {
  disabilityOption,
  disabilitiesClarification,
  ratedDisabilitiesAlert,
} from '../content/ratedDisabilities';

import { increaseOnly, claimingRated } from '../utils';
import { requireRatedDisability } from '../validations';

const { ratedDisabilities } = fullSchema.properties;

export const uiSchema = {
  'ui:title': 'Rated Disabilities',
  'ui:description':
    'Below are your rated disabilities. Please choose the disability you’re filing for increased compensation because it has gotten worse.',
  ratedDisabilities: {
    'ui:title': ' ',
    'ui:field': 'StringField',
    'ui:widget': SelectArrayItemsWidget,
    'ui:options': {
      showFieldLabel: 'label',
      label: disabilityOption,
      widgetClassNames: 'widget-outline',
      keepInPageOnReview: true,
      // making the customTitle truthy but an empty string (trimmable), so the
      // ObjectField doesn't wrap this content in a <DL> and break accessibility
      customTitle: ' ',
    },
    'ui:validations': [requireRatedDisability],
  },
  'view:disabilitiesClarification': {
    'ui:description': disabilitiesClarification,
  },
  'view:ratedDisabilitiesAlert': {
    'ui:description': ratedDisabilitiesAlert,
    'ui:options': {
      hideIf: formData => !increaseOnly(formData) || claimingRated(formData),
    },
  },
};

export const schema = {
  type: 'object',
  properties: {
    ratedDisabilities,
    'view:disabilitiesClarification': {
      type: 'object',
      properties: {},
    },
    'view:ratedDisabilitiesAlert': {
      type: 'object',
      properties: {},
    },
  },
};