85 lines
2.1 KiB
JavaScript
85 lines
2.1 KiB
JavaScript
import { useState } from "react";
|
|
import HeadTab from "../content/HeadTab";
|
|
import profileData from "@/data/profile_other.json";
|
|
|
|
// 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";
|
|
|
|
function DetailUser({ user, isTurnsDetails, setIsTurnsDetails, dataUser }) {
|
|
const [tab, setTab] = useState(0);
|
|
const [data, setData] = useState(profileData[0]);
|
|
|
|
const listTab = [
|
|
"اطلاعات عمومی",
|
|
"بیماریها",
|
|
"آلرژیها",
|
|
"داروهای مصرفی",
|
|
"جراحیها",
|
|
"سابقه خانوادگی بیماری",
|
|
"بستگان",
|
|
];
|
|
|
|
const handleChange = (_, newValue) => setTab(newValue);
|
|
const changeData = (action, name, id, payload) => {
|
|
const newData = {
|
|
...data,
|
|
[name]: [...data[name]],
|
|
};
|
|
|
|
switch (action) {
|
|
case "update":
|
|
newData[name][id] = payload;
|
|
break;
|
|
|
|
case "add":
|
|
newData[name].push(payload);
|
|
break;
|
|
|
|
case "delete":
|
|
newData[name].splice(id, 1);
|
|
break;
|
|
|
|
default:
|
|
console.warn(`Unknown action: ${action}`);
|
|
return;
|
|
}
|
|
setData(newData);
|
|
};
|
|
|
|
const components = [
|
|
<Information
|
|
user={user}
|
|
dataUser={dataUser}
|
|
isTurnsDetails={isTurnsDetails}
|
|
setIsTurnsDetails={setIsTurnsDetails}
|
|
/>,
|
|
<Disease data={data} />,
|
|
<Allergies data={data} changeData={changeData} />,
|
|
<Medications data={data} changeData={changeData} />,
|
|
<Surgeries data={data} changeData={changeData} />,
|
|
<FamilyHistory data={data} changeData={changeData} />,
|
|
<Relatives data={data} changeData={changeData} />,
|
|
];
|
|
|
|
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;
|