fix bug save data in wrong key && change functionality data && clean code component

This commit is contained in:
Ehsan
2025-08-06 18:06:41 +03:30
parent 7e61867e3d
commit 8e4f182868
6 changed files with 111 additions and 73 deletions
@@ -0,0 +1,19 @@
import Radios from "./Radios";
function RadioContent({ group, text, value, changeData, name }) {
return (
<div>
<p className="text-[16px] font-medium text-[#3B3B3B]">{text}</p>
<div className="mt-[16px]">
<Radios
changeData={changeData}
group={group}
value={value}
name={name}
/>
</div>
</div>
);
}
export default RadioContent;
+29
View File
@@ -0,0 +1,29 @@
import { FormControlLabel, Radio, RadioGroup } from "@mui/material";
function Radios({ group, value, changeData, name }) {
return (
<RadioGroup
value={value}
className="radio-mui"
onChange={(e) => changeData(e.target.value, name)}
sx={{
"& .MuiFormControlLabel-root": {
marginRight: "0 !important",
transform: "translateX(9px)",
},
}}
>
{group.map((item, idx) => (
<FormControlLabel
control={<Radio className="!ml-2" />}
className="!text-[#525252]"
label={item}
value={item}
key={idx}
/>
))}
</RadioGroup>
);
}
export default Radios;
@@ -0,0 +1,30 @@
import { FormControlLabel, Switch } from "@mui/material";
function SwitchContent({ data }) {
return (
<div className="flex items-center justify-start gap-[12px]">
<FormControlLabel
control={
<Switch
checked={data.turn}
onChange={(event) => {
changeData(event.target.checked ? 1 : 0, "turn");
}}
/>
}
sx={{
".MuiFormControlLabel-label": {
color: "#3B3B3B",
fontSize: "16px",
fontWeight: 500,
},
marginLeft: "0 !important",
}}
label="فقط پزشکان دارای نوبت"
labelPlacement="start"
/>
</div>
);
}
export default SwitchContent;
+62
View File
@@ -0,0 +1,62 @@
import AutoCompleteSelect from "@/app/component/element/AutoCompleteSelect";
import SwitchContent from "./SwitchContent";
import RadioContent from "./RadioContent";
import { filterList } from "@/helper";
import { useState } from "react";
const gender = ["زن", "مرد", "هر دو"];
const degree = ["پزشک عمومی", "پزشک متخصص", "پزشک فوق تخصص", "همه موارد"];
function Form({ data, changeUrl, changeData }) {
const [list, setList] = useState({});
const { parentList, childrenList } = filterList(data);
console.log(filterList(data));
return (
<>
<AutoCompleteSelect
list={list.parentList}
sendAll={true}
label="دسته بندی"
value={data.category?.name}
updateData={(value) => {
const newData = changeData(value, "specialties", true);
setList(filterList(newData));
console.log(newData);
}}
/>
{!!childrenList.length && (
<div className="mt-[24px]">
<AutoCompleteSelect
list={list.childrenList}
updateData={(value) => changeData(value, "specialties")}
sendAll={true}
value={data.specialties?.name}
label="تخصص"
/>
</div>
)}
<div className="mt-[40px] mb-[32px]">
<RadioContent
changeData={changeData}
value={data.gender}
text="جنسیت پزشک"
group={gender}
name="gender"
/>
<span className="block mt-[16px] mb-[24px] w-full h-px bg-[#EFEFEF]"></span>
<RadioContent
changeData={changeData}
value={data.degree}
text="درجه علمی"
group={degree}
name="degree"
/>
<span className="block mt-[16px] mb-[24px] w-full h-px bg-[#EFEFEF]"></span>
<SwitchContent data={data} />
</div>
</>
);
}
export default Form;