import React, { Fragment } from 'react'; import PropTypes from 'prop-types'; import { connect } from 'react-redux'; import { Field, reduxForm, formValueSelector } from 'redux-form'; import { Trans, withNamespaces } from 'react-i18next'; import flow from 'lodash/flow'; import { renderInputField, renderRadioField, renderSelectField, required, ipv4, ipv6, biggerOrEqualZero, toNumber, } from '../../../../helpers/form'; import { BLOCKING_MODES } from '../../../../helpers/constants'; const getFields = (processing, t) => Object.values(BLOCKING_MODES).map(mode => ( )); let Form = ({ handleSubmit, submitting, invalid, processing, blockingMode, t, }) => (
rate_limit_desc
{Object.values(BLOCKING_MODES).map(mode => (
  • {`blocking_mode_${mode}`}
  • ))}
    {getFields(processing, t)}
    {blockingMode === BLOCKING_MODES.custom_ip && (
    blocking_ipv4_desc
    blocking_ipv6_desc
    )}
    ); Form.propTypes = { blockingMode: PropTypes.string.isRequired, handleSubmit: PropTypes.func.isRequired, submitting: PropTypes.bool.isRequired, invalid: PropTypes.bool.isRequired, processing: PropTypes.bool.isRequired, t: PropTypes.func.isRequired, }; const selector = formValueSelector('blockingModeForm'); Form = connect((state) => { const blockingMode = selector(state, 'blocking_mode'); return { blockingMode, }; })(Form); export default flow([ withNamespaces(), reduxForm({ form: 'blockingModeForm', }), ])(Form);