import * as React from 'react'; import { Button, FormControl, FormControlLabel, FormLabel, Grid, Paper, Radio, RadioGroup, TextField, } from '@mui/material'; import { LocalizationProvider, DatePicker } from '@mui/x-date-pickers'; import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'; import { useEffect } from 'react'; import { Patient } from '../Interface/Patient'; type Props = { handleFormSection1Data: (patient: Patient) => void; patientDataDiplay: any; type: string; }; export default function PersonalSection({ handleFormSection1Data, patientDataDiplay, type, }: Props) { const [birthDateValue, setBirthDateValue] = React.useState(); const [patient, setPatient] = React.useState({ fullName: '', homePhone: '', cellPhone: '', email: '', age: '', dateOfBirth: birthDateValue, socialSecurityNumber: '', mailingAddress: '', city: '', state: '', zipCode: '', gender: 'male', }); const [errors, setErrors] = React.useState({ fullNameError: false, cellPhoneError: false, emailError: false, ageError: false, mailingAddressFalse: false, }); useEffect(() => { handleFormSection1Data(patient); }, [patient]); return ( <> { setPatient((prevValues: any) => ({ ...prevValues, fullName: e.target.value, })); }} onBlur={(e) => { if (e.target.value === '') { setErrors((prevValues: any) => ({ ...prevValues, fullNameError: true, })); } else { setErrors((prevValues: any) => ({ ...prevValues, fullNameError: false, })); } }} required error={errors.fullNameError} helperText={errors.fullNameError ? 'Please enter your name' : ''} /> { let value = e.target.value; if (value[0] === '0') { value = value.slice(1); } setPatient((prevValues: any) => ({ ...prevValues, cellPhone: value, })); }} onBlur={(e) => { if (!/^\d{10}$/.test(e.target.value)) { setErrors((prevValues: any) => ({ ...prevValues, cellPhoneError: true, })); } else { setErrors((prevValues: any) => ({ ...prevValues, cellPhoneError: false, })); } }} error={errors.cellPhoneError} helperText={ errors.cellPhoneError ? 'Please enter a valid 10-digit phone number' : '' } /> { setPatient((prevValues: any) => ({ ...prevValues, homePhone: e.target.value, })); }} // error={!(/^\d{10}$/.test(patient.homePhone))} // helperText={!(/^\d{10}$/.test(patient.homePhone)) ? "Please enter a valid 10-digit phone number" : ""} /> { setPatient((prevValues: any) => ({ ...prevValues, email: e.target.value, })); }} onBlur={(e) => { if (!/^\S+@\S+\.\S+$/.test(e.target.value)) { setErrors((prevValues: any) => ({ ...prevValues, emailError: true, })); } else { setErrors((prevValues: any) => ({ ...prevValues, emailError: false, })); } }} error={errors.emailError} helperText={ errors.emailError ? 'Please enter a valid email address' : '' } /> { setPatient((prevValues: any) => ({ ...prevValues, age: e.target.value, })); }} onBlur={(e) => { if (e.target.value === '') { setErrors((prevValues: any) => ({ ...prevValues, ageError: true, })); } else { setErrors((prevValues: any) => ({ ...prevValues, ageError: false, })); } }} error={errors.ageError} helperText={errors.ageError ? 'Please enter your age' : ''} /> { setBirthDateValue(newValue); }} renderInput={(params) => ( )} /> { setPatient((prevValues: any) => ({ ...prevValues, socialSecurityNumber: e.target.value, })); }} // onBlur={formik.handleBlur} // error={formik.touched.socialSecurityNumber && Boolean(formik.errors.socialSecurityNumber)} // helperText={formik.touched.socialSecurityNumber && formik.errors.socialSecurityNumber} /> { setPatient((prevValues: any) => ({ ...prevValues, mailingAddress: e.target.value, })); }} onBlur={(e) => { if (e.target.value === '') { setErrors((prevValues: any) => ({ ...prevValues, mailingAddressError: true, })); } else { setErrors((prevValues: any) => ({ ...prevValues, mailingAddressError: false, })); } }} error={errors.mailingAddressError} helperText={ errors.mailingAddressError ? 'Please enter your mailing address' : '' } /> { setPatient((prevValues: any) => ({ ...prevValues, state: e.target.value, })); }} /> { setPatient((prevValues: any) => ({ ...prevValues, city: e.target.value, })); }} /> { setPatient((prevValues: any) => ({ ...prevValues, zipCode: e.target.value, })); }} // onBlur={formik.handleBlur} // error={formik.touched.zipCode && Boolean(formik.errors.zipCode)} // helperText={formik.touched.zipCode && formik.errors.zipCode} /> Gender { setPatient((prevValues: any) => ({ ...prevValues, gender: e.target.value, })); }} sx={{ display: 'flex', flexDirection: 'row' }} > } label='Male' /> } label='Female' /> ); }