fix bug save and set data just with one key, remove page login from appo page, disable not avalaible data in calendar, change steps for pages in appo, get data user, edit and set in page user-info
This commit is contained in:
@@ -1,71 +1,78 @@
|
||||
"use client";
|
||||
|
||||
import { useState } from "react";
|
||||
|
||||
import Content from "./Content";
|
||||
import Layout from "@/components/layout";
|
||||
import { useEffect, useState } from "react";
|
||||
import doctors from "@/data/doctors.json";
|
||||
import RegisterPage from "@/components/register";
|
||||
import Paying from "@/components/appointment/paying";
|
||||
import Detail from "@/components/appointment/detail";
|
||||
import FailedPay from "@/components/appointment/failedPay";
|
||||
import LogInPage from "@/components/register/LogInPage";
|
||||
import SuccessPay from "@/components/appointment/successPay";
|
||||
import VerificationPage from "@/components/register/verificationPage";
|
||||
import Date from "./date";
|
||||
import { request } from "@/services/response";
|
||||
import Cookies from "js-cookie";
|
||||
import Container from "./Container";
|
||||
|
||||
const defaultData = {
|
||||
phone: { value: "", isEdit: false },
|
||||
national_code: { value: "", isEdit: false },
|
||||
name: { value: "", isEdit: false },
|
||||
basic_insurance: { value: "", isEdit: false },
|
||||
};
|
||||
|
||||
function AppointmentPage({ slug, matchedCity }) {
|
||||
const doctor = doctors.find((item) => item.id === +slug);
|
||||
|
||||
const [step, setStep] = useState(0);
|
||||
const [step, setStep] = useState(1);
|
||||
const [isForAnother, setIsForAnother] = useState(false);
|
||||
|
||||
const [data, setData] = useState({
|
||||
phone: { value: "09121056987", isEdit: true },
|
||||
codemeli: { value: "1741025645", isEdit: true },
|
||||
name: { value: "ساغر صابری نژاد", isEdit: true },
|
||||
});
|
||||
const [prevData, setPrevData] = useState(defaultData);
|
||||
const [data, setData] = useState(defaultData);
|
||||
|
||||
const elements = [
|
||||
<Date doctor={doctor} setStep={setStep} />,
|
||||
<LogInPage setIsSendMsg={false} setStep={setStep} />,
|
||||
<VerificationPage setIsSendMsg={false} link={false} setStep={setStep} />,
|
||||
<Detail
|
||||
data={data}
|
||||
setStep={setStep}
|
||||
setData={setData}
|
||||
isForAnother={isForAnother}
|
||||
setIsForAnother={setIsForAnother}
|
||||
/>,
|
||||
<Paying setStep={setStep} />,
|
||||
<SuccessPay setStep={setStep} />,
|
||||
<FailedPay setStep={setStep} />,
|
||||
];
|
||||
useEffect(() => {
|
||||
const userInfo = Cookies.get("userInfo");
|
||||
const parsedData = JSON.parse(userInfo);
|
||||
|
||||
if (userInfo && parsedData) {
|
||||
request
|
||||
.getUserProfile(parsedData.uuid)
|
||||
.then((res) => {
|
||||
if (res) {
|
||||
const newData = {
|
||||
phone: { value: parsedData.username || "", isEdit: false },
|
||||
national_code: { value: res.national_code || "", isEdit: true },
|
||||
name: { value: `${res.name} ${res.family}`, isEdit: true },
|
||||
basic_insurance: {
|
||||
value: res.basic_insurance,
|
||||
isEdit: true,
|
||||
},
|
||||
};
|
||||
setData(newData);
|
||||
setPrevData(newData);
|
||||
} else {
|
||||
const emptyData = {
|
||||
phone: { value: parsedData.username || "", isEdit: false },
|
||||
national_code: { value: "", isEdit: true },
|
||||
name: { value: "", isEdit: true },
|
||||
basic_insurance: {
|
||||
value: res.basic_insurance,
|
||||
isEdit: true,
|
||||
},
|
||||
};
|
||||
setData(emptyData);
|
||||
setPrevData(emptyData);
|
||||
}
|
||||
})
|
||||
.catch((err) => {
|
||||
console.log(err);
|
||||
});
|
||||
}
|
||||
}, []);
|
||||
|
||||
return (
|
||||
<>
|
||||
{step === 1 || step === 2 ? (
|
||||
<RegisterPage>{elements[step]}</RegisterPage>
|
||||
) : (
|
||||
<Layout
|
||||
title="رزرو"
|
||||
name="booking"
|
||||
disableFooter={step > 2}
|
||||
matchedCity={matchedCity}
|
||||
paddingBottom="pb-[80px]"
|
||||
>
|
||||
<Content
|
||||
disableSide={step === 5 || step === 6}
|
||||
isFirst={step === 0}
|
||||
setStep={setStep}
|
||||
doctor={doctor}
|
||||
step={step}
|
||||
>
|
||||
{elements[step]}
|
||||
</Content>
|
||||
</Layout>
|
||||
)}
|
||||
</>
|
||||
<Container
|
||||
step={step}
|
||||
data={data}
|
||||
doctor={doctor}
|
||||
setData={setData}
|
||||
setStep={setStep}
|
||||
matchedCity={matchedCity}
|
||||
isForAnother={isForAnother}
|
||||
setIsForAnother={setIsForAnother}
|
||||
/>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user