import React from 'react'; import PropTypes from 'prop-types'; import { Field, reduxForm } from 'redux-form'; import { Trans, useTranslation } from 'react-i18next'; import { shallowEqual, useSelector } from 'react-redux'; import { biggerOrEqualZero, maxValue, renderInputField, required, toNumber, } from '../../../../helpers/form'; import { FORM_NAME } from '../../../../helpers/constants'; const maxValue3600 = maxValue(3600); const getInputFields = ({ required, maxValue3600 }) => [{ name: 'cache_size', title: 'cache_size', description: 'cache_size_desc', placeholder: 'enter_cache_size', validate: required, }, { name: 'cache_ttl_min', title: 'cache_ttl_min_override', description: 'cache_ttl_min_override_desc', placeholder: 'enter_cache_ttl_min_override', max: 3600, validate: maxValue3600, }, { name: 'cache_ttl_max', title: 'cache_ttl_max_override', description: 'cache_ttl_max_override_desc', placeholder: 'enter_cache_ttl_max_override', }]; const Form = ({ handleSubmit, submitting, invalid, }) => { const { t } = useTranslation(); const { processingSetConfig } = useSelector((state) => state.dnsConfig, shallowEqual); const { cache_ttl_max, cache_ttl_min, } = useSelector((state) => state.form[FORM_NAME.CACHE].values, shallowEqual); const minExceedsMax = cache_ttl_min > cache_ttl_max; const INPUTS_FIELDS = getInputFields({ required, maxValue3600, }); return
{INPUTS_FIELDS.map(({ name, title, description, placeholder, validate, max, }) =>
{t(description)}
)} {minExceedsMax && {t('min_exceeds_max_value')}}
; }; Form.propTypes = { handleSubmit: PropTypes.func.isRequired, submitting: PropTypes.bool.isRequired, invalid: PropTypes.bool.isRequired, }; export default reduxForm({ form: FORM_NAME.CACHE })(Form);