edit api integrate

This commit is contained in:
meena committed 2026-03-03 18:14:58 +05:30
1 parent 81c014f94c
commit 8b52dd4a29
10 files changed
+592 -199

No files matched your search

+5 -1
View File
@@ -35,7 +35,7 @@ import { useSendOtp, useVerifyOtp } from "../hooks/useAuth";
const OTP_LENGTH = 4;
const OTP_TIMER_SEC = 120; // 2 minutes
const PersonalDetailsForm = ({ onSubmitStep, errors, onFieldChange }) => {
const PersonalDetailsForm = ({ onSubmitStep, errors, onFieldChange, isStep1Update }) => {
const dispatch = useDispatch();
const data = useSelector((state) => state.registerform.personalDetails);
const nameInputRef = useRef(null);
@@ -1012,6 +1012,7 @@ const PersonalDetailsForm = ({ onSubmitStep, errors, onFieldChange }) => {
</div>
{/* Password */}
{!isStep1Update && (
<div className="flex flex-col gap-2">
<label className="text-gray-900 text-[15px]">
Password{requiredMark}
@@ -1099,8 +1100,10 @@ const PersonalDetailsForm = ({ onSubmitStep, errors, onFieldChange }) => {
</div>
)}
</div>
)}
{/* Confirm Password */}
{!isStep1Update && (
<div className="flex flex-col gap-2">
<label className="text-gray-900 text-[15px]">
Confirm Password{requiredMark}
@@ -1130,6 +1133,7 @@ const PersonalDetailsForm = ({ onSubmitStep, errors, onFieldChange }) => {
variant="outlined"
/>
</div>
)}
{/* State */}
<div className="flex flex-col gap-2">
+64 -6
View File
@@ -23,7 +23,7 @@ import {
useRegisterStep4,
useRegisterStep5,
} from "../hooks/useRegister";
import { setAccessToken } from "../api/axiosInstance";
import axiosInstance, { setAccessToken } from "../api/axiosInstance";
import toast from "react-hot-toast";
const STEP_FIELD_ORDER = {
@@ -180,6 +180,7 @@ const StepperForm = () => {
const initialStep = location.state?.step || 1;
const [currentStep, setCurrentStep] = useState(initialStep);
const [isStep1Update, setIsStep1Update] = useState(false);
const [errors, setErrors] = useState({});
const registerStep1 = useRegisterStep1();
@@ -329,6 +330,53 @@ const StepperForm = () => {
}
}, [location.state?.step]);
useEffect(() => {
const fetchPersonalDetails = async () => {
try {
const response = await axiosInstance.get("/get_personal_details");
const data = response.data;
if (data.status === "success" && data.personal_details) {
const pd = data.personal_details;
setIsStep1Update(true);
const mappedImages = (pd.images || []).map((url, index) => ({
id: `server-${index}`,
preview: url,
name: `image-${index}.png`,
}));
const formattedDob = pd.dob ? pd.dob.split("T")[0] : "";
dispatch(
updatePersonalDetails({
name: pd.name || "",
mobileNumber: pd.mobile || "",
email: pd.email || "",
gender: pd.gender || "",
dob: formattedDob,
height: pd.height || "",
weight: pd.weight || "",
maritalStatus: pd.marital_status_id || "",
religion: pd.religion_id || "",
profileFor: pd.profile_for_id || "",
caste: pd.caste_id || "",
subCaste: pd.sub_caste_id || "",
gothram: pd.gothram_id || "",
raasi: pd.raasi_id || "",
star: pd.star_id || "",
state: pd.state_id || "",
city: pd.district_id || "",
pincode: pd.pincode || "",
profiles: mappedImages,
})
);
}
} catch (error) {
console.error("Error fetching personal details:", error);
}
};
fetchPersonalDetails();
}, [dispatch]);
@@ -345,8 +393,6 @@ const StepperForm = () => {
"profileFor",
"caste",
"email",
"password",
"confirmPassword",
"state",
"city",
"pincode",
@@ -358,6 +404,11 @@ const StepperForm = () => {
}
});
if (!isStep1Update) {
if (!personalDetails.password) newErrors.password = "This field is required";
if (!personalDetails.confirmPassword) newErrors.confirmPassword = "This field is required";
}
if (
personalDetails.email &&
!/\S+@\S+\.\S+/.test(personalDetails.email)
@@ -474,7 +525,7 @@ const StepperForm = () => {
formData.append("state", personalDetails.state);
formData.append("district", personalDetails.city);
formData.append("password", personalDetails.password || "");
formData.append("fcm_token", localStorage.getItem("fcm_token") || "");
formData.append("web_fcm_token", localStorage.getItem("fcm_token") || "");
if (personalDetails.profiles && Array.isArray(personalDetails.profiles)) {
for (const [index, item] of personalDetails.profiles.entries()) {
@@ -633,8 +684,14 @@ const StepperForm = () => {
try {
if (currentStep === 1) {
const payload = await buildRegisterStep1Payload();
const res = await registerStep1.mutateAsync(payload);
const token = extractAccessToken(res);
let res;
if (isStep1Update) {
res = await axiosInstance.post("/update_personal_details", payload);
} else {
res = await registerStep1.mutateAsync(payload);
}
const token = extractAccessToken(res.data || res);
if (token) {
setAccessToken(token);
}
@@ -725,6 +782,7 @@ const StepperForm = () => {
onSubmitStep={handleStepSubmit}
errors={errors}
onFieldChange={clearFieldErrors}
isStep1Update={isStep1Update}
/>
);
case 2: