Files
nobat724_front/components/dashboard/userAccount/detailUser/index.js
T

149 lines
3.5 KiB
JavaScript

import { useState } from "react";
import HeadTab from "../content/HeadTab";
import { request } from "@/services/response";
import { setNewData } from "./function";
// Tabs
import Medications from "./medications";
import Information from "./information";
import Disease from "./disease";
import Allergies from "./allergies";
import Surgeries from "./surgeries";
import FamilyHistory from "./familyHistory";
import Relatives from "./relatives";
import { dieses } from "./information/dieses";
function DetailUser({
user,
dataUser,
userInfo,
isTurnsDetails,
updateDataUser,
setIsTurnsDetails,
}) {
const [tab, setTab] = useState(0);
const initialData = {
name: dataUser?.name,
description: dataUser?.description,
birthday: dataUser?.birthday,
basic_insurance: [dataUser?.basic_insurance?.id],
blood_type: dataUser?.blood_type,
education: dataUser?.education,
fathers_name: dataUser?.fathers_name,
gender: dataUser?.gender,
home_phone: dataUser?.home_phone,
job: dataUser?.job,
marital_status: dataUser?.marital_status,
supplementary_insurance: dataUser?.supplementary_insurance,
work_phone: dataUser?.work_phone,
address: dataUser?.address,
other: dataUser?.other,
national_code: dataUser?.national_code,
};
if (!dataUser) {
initialData.other = [
{
disease: dieses,
allergies: [],
medications: [],
surgeries: [],
family_history: [],
relatives: [],
},
];
}
const [data, setData] = useState(initialData);
const [loading, setLoading] = useState(false);
const listTab = [
"اطلاعات عمومی",
"بیماری‌ها",
"آلرژی‌ها",
"داروهای مصرفی",
"جراحی‌ها",
"سابقه خانوادگی بیماری",
"بستگان",
];
const handleChange = (_, newValue) => setTab(newValue);
const updateData = () => {
setLoading(true);
request
.patchUserProfile(data, dataUser.uuid)
.then(() => {
setLoading(false);
})
.catch(() => {
setLoading(false);
});
};
const changeData = (action, name, id, payload) =>
setNewData(action, name, id, payload, data, setData);
const components = [
<Information
user={user}
data={data}
setData={setData}
userInfo={userInfo}
dataUser={dataUser}
initialData={initialData}
updateDataUser={updateDataUser}
isTurnsDetails={isTurnsDetails}
setIsTurnsDetails={setIsTurnsDetails}
/>,
<Disease
data={data}
setData={setData}
loading={loading}
updateData={updateData}
/>,
<Allergies
data={data}
loading={loading}
changeData={changeData}
updateData={updateData}
/>,
<Medications
data={data}
loading={loading}
changeData={changeData}
updateData={updateData}
/>,
<Surgeries
data={data}
loading={loading}
changeData={changeData}
updateData={updateData}
/>,
<FamilyHistory
data={data}
loading={loading}
changeData={changeData}
updateData={updateData}
/>,
<Relatives
data={data}
loading={loading}
changeData={changeData}
updateData={updateData}
/>,
];
return (
<HeadTab
tab={tab}
user={user}
listTab={listTab}
components={components}
handleChange={handleChange}
isTurnsDetails={isTurnsDetails}
setIsTurnsDetails={setIsTurnsDetails}
inactives={dataUser ? [] : [1, 2, 3, 4, 5, 6]}
/>
);
}
export default DetailUser;