JSFiddle - React, Tailwind, and code Playground

by Андрей Хамедов

JavaScript

/* eslint-disable react/forbid-prop-types */
import React from 'react';
import PropTypes from 'prop-types';
import { Form, Field } from 'react-final-form';
import createFocusDecorator from 'final-form-focus';
import createCalculateDecorator from 'final-form-calculate';
import InputField from '../../../ui/InputField/InputField';
import Button from '../../../ui/Button/Button';
import FormGrid from '../FormGrid/FormGrid';
import Wrapper from '../../Layouts/Wrapper/Wrapper';
import PageHeader from '../../../ui/PageHeader/PageHeader';
import FormSection from '../FormSection/FormSection';
import PhoneField from '../../../ui/PhoneField/PhoneField';
import Autocomplete from '../../../ui/Autocomplete/Autocomplete';
import { optionsType } from '../../../../types/responseData';
import styles from './new-request-form.scss';
import Condition from '../helpers/Condition';
import Select from '../../../ui/Select/Select';
import MaskedField from '../../../ui/MaskedField/MaskedField';
import { INN_MASK, INNIP_MASK, OGRN_MASK, OGRNIP_MASK } from '../../../../shared/const';
import FormItem from '../FormGrid/FormItem';
import InputWrapper from '../../../ui/InputWrapper/InputWrapper';
import { DEFAULT_NEW_OPPORTUNITY_VALUES } from '../../../routes/requests/NewRequest';
import Textarea from '../../../ui/Textarea/Textarea';

const ORG_TYPES = [
    { title: 'Юридическое лицо', value: 'business' },
    { title: 'Индивидуальный предприниматель', value: 'individual' },
];

const ACTIVITY_TYPES = [
    { title: 'Коммерческая организация', value: 'commercial' },
    { title: 'Некоммерческая организация', value: 'nonProfit' },
    { title: 'Финансовая организация', value: 'financial' },
];

const FORM_ERROR = 'Ошибка, заявка не отправлена. Попробуйте позднее';
const focusOnError = createFocusDecorator();
const calculator = createCalculateDecorator(
    {
        field: 'organizationType',
        updates: {
            inn: () => '',
            ogrn: () => '',
        },
    },
    {
       ...