thirukalyanamweb/src/feature/EducationalDetailsForm.jsx
2025-11-27 18:26:55 +05:30

145 lines
4.8 KiB
JavaScript

import React, { useEffect, useRef } from "react";
import { useDispatch, useSelector } from "react-redux";
import { updateEducationalDetails } from "../redux/registrationFormSlice";
import { TextField, Button, Grid } from "@mui/material";
const EducationalDetailsForm = ({ onSubmitStep, onSkipStep, errors }) => {
const dispatch = useDispatch();
const data = useSelector((state) => state.registerform.educationalDetails);
const inputRef = useRef(null);
useEffect(() => {
inputRef.current?.focus();
}, []);
const handleChange = (field, value) => {
dispatch(updateEducationalDetails({ [field]: value }));
};
const handleSubmit = () => {
console.log("Submitting educational details:", data);
onSubmitStep();
};
return (
<>
<div className="w-full max-w-[1200px] mx-auto bg-[#fff2f2] py-6 md:px-2 rounded-8">
<form noValidate autoComplete="off" style={{ padding: 16 }}>
<div className="grid grid-cols-1 md:grid-cols-2 gap-x-20 gap-y-10 mb-6">
{/* Highest Qualification */}
<div className="flex flex-col gap-4">
<TextField
fullWidth
inputRef={inputRef}
name="qualification"
label="Highest Qualification"
value={data.qualification}
onChange={(e) => handleChange("qualification", e.target.value)}
error={Boolean(errors.qualification)}
helperText={errors.qualification}
placeholder="Enter Highest Qualification"
variant="outlined"
/>
</div>
{/* Field of Study */}
<div className="flex flex-col gap-4">
<TextField
fullWidth
name="fieldOfStudy"
label="Field of Study"
value={data.fieldOfStudy}
onChange={(e) => handleChange("fieldOfStudy", e.target.value)}
error={Boolean(errors.fieldOfStudy)}
helperText={errors.fieldOfStudy}
placeholder="Enter Field of Study"
variant="outlined"
/>
</div>
{/* Occupation */}
<div className="flex flex-col gap-4">
<TextField
fullWidth
name="occupation"
label="Occupation"
value={data.occupation}
onChange={(e) => handleChange("occupation", e.target.value)}
error={Boolean(errors.occupation)}
helperText={errors.occupation}
placeholder="Enter Occupation"
variant="outlined"
/>
</div>
{/* Company / Organization Name */}
<div className="flex flex-col gap-4">
<TextField
fullWidth
name="organization"
label="Company / Organization Name"
value={data.organization}
onChange={(e) => handleChange("organization", e.target.value)}
error={Boolean(errors.organization)}
helperText={errors.organization}
placeholder="Enter Company / Organization Name"
variant="outlined"
/>
</div>
{/* Annual Income */}
<div className="flex flex-col gap-4">
<TextField
fullWidth
name="income"
label="Annual Income"
value={data.income}
onChange={(e) => handleChange("income", e.target.value)}
error={Boolean(errors.income)}
helperText={errors.income}
placeholder="Enter Annual Income"
variant="outlined"
/>
</div>
{/* Work Location */}
<div className="flex flex-col gap-4">
<TextField
fullWidth
name="workLocation"
label="Work Location"
value={data.workLocation}
onChange={(e) => handleChange("workLocation", e.target.value)}
error={Boolean(errors.workLocation)}
helperText={errors.workLocation}
placeholder="Enter Work Location"
variant="outlined"
/>
</div>
</div>
<Grid
item
xs={12}
style={{
marginTop: "40px",
display: "flex",
gap: 16,
justifyContent: "center",
}}
>
<Button variant="outlined" onClick={onSkipStep}>
Skip
</Button>
<Button variant="contained" color="primary" onClick={handleSubmit}>
Next
</Button>
</Grid>
</form>
</div>
</>
);
};
export default EducationalDetailsForm;