import React from 'react'; import PropTypes from 'prop-types'; import { Trans } from 'react-i18next'; import { useSelector } from 'react-redux'; import { Field, reduxForm } from 'redux-form'; import i18next from 'i18next'; import cn from 'classnames'; import { getPathWithQueryString } from '../../../helpers/helpers'; import { FORM_NAME, MOBILE_CONFIG_LINKS, STANDARD_HTTPS_PORT } from '../../../helpers/constants'; import { renderInputField, renderSelectField, toNumber, } from '../../../helpers/form'; import { validateConfigClientId, validateServerName, validatePort, validateIsSafePort, } from '../../../helpers/validators'; const getDownloadLink = (host, clientId, protocol, invalid) => { if (!host || invalid) { return ( ); } const linkParams = { host }; if (clientId) { linkParams.client_id = clientId; } return ( download_mobileconfig ); }; const MobileConfigForm = ({ invalid }) => { const formValues = useSelector((state) => state.form[FORM_NAME.MOBILE_CONFIG]?.values); if (!formValues) { return null; } const { host, clientId, protocol, port, } = formValues; const githubLink = ( text ); const getHostName = () => { if (port && port !== STANDARD_HTTPS_PORT && protocol === MOBILE_CONFIG_LINKS.DOH ) { return `${host}:${port}`; } return host; }; return (
e.preventDefault()}>
{protocol === MOBILE_CONFIG_LINKS.DOH && (
)}
client_id_desc
{getDownloadLink(getHostName(), clientId, protocol, invalid)}
); }; MobileConfigForm.propTypes = { invalid: PropTypes.bool.isRequired, }; export default reduxForm({ form: FORM_NAME.MOBILE_CONFIG })(MobileConfigForm);