BenStirrup
6/17/2018 - 9:29 PM

Check if a translation key exist for react-intl

import * as React from 'react';
import { injectIntl, FormattedHTMLMessage, FormattedMessage } from 'react-intl';

// Use injectIntl() to get the intl object
const renderTextField = injectIntl(({ intl, ...props }) => {
  const {
    endAdornment,
    input,
    meta: { touched, error },
  } = props;

  // Check if a translation key exists
  const translationKeyExists = !!intl.messages[`${endAdornment}`];

  let EndAdornment = null;
  if (translationKeyExists) {
    EndAdornment = (
      <FormattedEndAdornment>
        <FormattedMessage id={endAdornment} />
      </FormattedEndAdornment>
    );
  } else {
    EndAdornment = <FormattedEndAdornment>{endAdornment}</FormattedEndAdornment>;
  }

  return ( ... );
});