import React, {useEffect, useState} from 'react' import {useParams, useNavigate} from 'react-router-dom' import {Loader} from '../Loader/Loader' import PhoneInput from 'react-phone-input-2' import 'react-phone-input-2/lib/style.css' import './form.scss' import {apiRequest} from "../../api/request"; import Swal from 'sweetalert2' import withReactContent from 'sweetalert2-react-content' const SweetAlert = withReactContent(Swal); const Form = () => { const navigate = useNavigate(); const urlParams = useParams(); const [status, setStatus] = useState(null); const [data, setData] = useState({ email: '', phone: '', comment: '' }); const [isFetching, setIsFetching] = useState(false); const handleModal = (status) => { SweetAlert.fire({ text: status !== 200 || 201 ? 'Какие-то неполадки =(' : 'Форма отправлена', preConfirm: () => status !== 200 || 201 ? () => { setStatus(null) } : () => { setStatus(null); navigate(`/candidate/${urlParams.id}`) } }); }; useEffect(() => { if (status) { handleModal(status) } }, [status]); const handleChange = (e) => { const {id, value} = e.target; setData((prev) => ({ ...prev, [id]: value })) }; const handleSubmit = (e) => { e.preventDefault(); setIsFetching(true); const formData = new FormData(); formData.append('profile_id', urlParams.id); formData.append('Email', data.email); formData.append('phone', data.phone); formData.append('comment', data.comment); apiRequest('/interview-request/create-interview-request', { method: 'POST', params: { profile_id: urlParams.id, ...data } }).then((res) => { setStatus(res); setIsFetching(false) } ) }; return (