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 { renderInputField, toNumber } from '../../../../helpers/form'; import { CACHE_CONFIG_FIELDS, FORM_NAME, UINT32_RANGE } from '../../../../helpers/constants'; import { replaceZeroWithEmptyString } from '../../../../helpers/helpers'; const INPUTS_FIELDS = [ { name: CACHE_CONFIG_FIELDS.cache_size, title: 'cache_size', description: 'cache_size_desc', placeholder: 'enter_cache_size', }, { name: CACHE_CONFIG_FIELDS.cache_ttl_min, title: 'cache_ttl_min_override', description: 'cache_ttl_min_override_desc', placeholder: 'enter_cache_ttl_min_override', }, { name: CACHE_CONFIG_FIELDS.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; return
{INPUTS_FIELDS.map(({ name, title, description, placeholder, validate, min = 0, max = UINT32_RANGE.MAX, }) =>
{t(description)}
)} {minExceedsMax && {t('ttl_cache_validation')}}
; }; Form.propTypes = { handleSubmit: PropTypes.func.isRequired, submitting: PropTypes.bool.isRequired, invalid: PropTypes.bool.isRequired, }; export default reduxForm({ form: FORM_NAME.CACHE })(Form);