import React, { useState } from 'react'; import { connect } from 'react-redux'; import PropTypes from 'prop-types'; import { Field, FieldArray, reduxForm, formValueSelector, } from 'redux-form'; import { Trans, withTranslation } from 'react-i18next'; import flow from 'lodash/flow'; import Select from 'react-select'; import i18n from '../../../i18n'; import Tabs from '../../ui/Tabs'; import Examples from '../Dns/Upstream/Examples'; import { toggleAllServices } from '../../../helpers/helpers'; import { renderInputField, renderGroupField, renderSelectField, renderServiceField, } from '../../../helpers/form'; import { validateClientId, validateRequiredValue } from '../../../helpers/validators'; import { FORM_NAME, SERVICES } from '../../../helpers/constants'; import './Service.css'; const settingsCheckboxes = [ { name: 'use_global_settings', placeholder: 'client_global_settings', }, { name: 'filtering_enabled', placeholder: 'block_domain_use_filters_and_hosts', }, { name: 'safebrowsing_enabled', placeholder: 'use_adguard_browsing_sec', }, { name: 'parental_enabled', placeholder: 'use_adguard_parental', }, { name: 'safesearch_enabled', placeholder: 'enforce_safe_search', }, ]; const validate = (values) => { const errors = {}; const { name, ids } = values; errors.name = validateRequiredValue(name); if (ids && ids.length) { const idArrayErrors = []; ids.forEach((id, idx) => { idArrayErrors[idx] = validateRequiredValue(id) || validateClientId(id); }); if (idArrayErrors.length) { errors.ids = idArrayErrors; } } return errors; }; const renderFieldsWrapper = (placeholder, buttonTitle) => function cell(row) { const { fields, } = row; return (
{fields.map((ip, index) => (
fields.remove(index)} normalizeOnBlur={(data) => data.trim()} />
))}
); }; // Should create function outside of component to prevent component re-renders const renderFields = renderFieldsWrapper(i18n.t('form_enter_id'), i18n.t('form_add_id')); const renderMultiselect = (props) => { const { input, placeholder, options } = props; return (