import React, { useState } from 'react' import ModalCom from '../../../Helpers/ModalCom'; import LoadingSpinner from '../../../Spinners/LoadingSpinner'; import InputCom from '../../../Helpers/Inputs/InputCom/index'; import { Formik, Form } from 'formik'; import * as Yup from "yup"; import usersService from '../../../../services/UsersService'; const validationSchema = Yup.object().shape({ email: Yup.string() .email("Wrong email format") .matches( /^[^0-9][a-zA-Z0-9._%+-]+@[a-zA-Z]+(\.[a-zA-Z]+)+$/, "Invalid email format" ) .min(3, "Minimum 3 characters") .max(50, "Maximum 50 characters") .required("Email is required"), firstname: Yup.string() .min(3, "Minimum 3 characters") .max(25, "Maximum 25 characters") .required("Firstname is required"), lastname: Yup.string() .min(3, "Minimum 3 characters") .max(25, "Maximum 25 characters") .required("Lastname is required"), family_type: Yup.string() .min(3, "Minimum 3 characters") .max(25, "Maximum 25 characters") .required("Family Type is required"), }); const initialValues = { firstname: '', lastname: '', family_type: '', email: '' }; export default function InviteRelative({action, situation, setReloadRelList, relativeList}) { const api = new usersService() let [requestStatus, setRequestStatus] = useState({ loading: false, status: false, message: "", }); // STATE FOR KNOWING WHEN A REQUEST IS MADE TO THE SERVER const handleInvite = (values) => { setRequestStatus({loading: true, status: false, message: ""}) api.inviteFamilyRelative(values).then(response => { let {status, data} = response if(data?.internal_return < 0){ setRequestStatus({loading: false, status: false, message: "Unable to complete"}) return setTimeout(()=>{ setRequestStatus({ loading: false, status: false, message: ""}) },3000) } setRequestStatus({loading: false, status: true, message: "Relative Added"}) //RELOAD RELATIVE LSIT TABLE setReloadRelList(prev => !prev) setTimeout(()=>{ action() },3000) }).catch(error => { setRequestStatus({loading: false, status: false, message: "Something went wrong, try again!"}) setTimeout(()=>{ setRequestStatus({ loading: false, status: false, message: ""}) },3000) }) } return (

Invite Parent/Relative

{(props) => { return (
{/* inputs starts here */} {/* Email */}
{/* first name and last name */}
{/* Type */}
{/*
*/}
{requestStatus.loading ? ( ) : ( )}
); }}
{/* ERROR DISPLAY AND SUBMIT BUTTON */} {requestStatus.message != "" && (!requestStatus.status ? (
{requestStatus.message}
) : ( requestStatus.status && (
{requestStatus.message}
) ))} {/* End of error or success display */}
) }