all files / src/ confirmation.js

100% Statements 17/17
100% Branches 18/18
100% Functions 3/3
100% Lines 13/13
1 branch Ignored     
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32                 11× 11×   11×   11× 12×   12×                  
import React from 'react'
import { FormattedMessage } from 'react-intl'
import { formatMessage, prepare, memoize } from './helpers'
 
const DEFAULT_CASE_SENSITIVE = true
 
let confirmation = memoize(function ({
      field,
      fieldLabel,
      caseSensitive,
      message,
      msg,
      'if': ifCond, unless
    }) {
  msg = formatMessage(msg || message)
 
  caseSensitive = (null != caseSensitive ? caseSensitive : DEFAULT_CASE_SENSITIVE)
 
  return prepare(ifCond, unless, false, function (value, allValues) {
    let fieldValue = '' + (allValues[field] || '')
 
    if (caseSensitive ? value !== fieldValue : value.toLowerCase() !== fieldValue.toLowerCase()) {
      return msg || (
        <FormattedMessage id="form.errors.confirmation"
          defaultMessage="doesn't match `{fieldLabel}`"
          values={{ fieldLabel: fieldLabel || field }} />
      )
    }
  })
})
 
export default confirmation