diff --git a/app/component/date/dateTime/SendAppo.js b/app/component/date/dateTime/SendAppo.js
index 3f636b3..0d27cc6 100644
--- a/app/component/date/dateTime/SendAppo.js
+++ b/app/component/date/dateTime/SendAppo.js
@@ -16,17 +16,12 @@ function SendAppo({ hour }) {
doctor_id: doctorId,
slot: hour,
})
- .then((res) => {
+ .then(() => {
setLoading(false);
})
- .catch((err) => {
- console.log(err);
+ .catch(() => {
+ //
});
- // if (locateVisit) {
- // setStep((prev) => prev + 1);
- // } else {
- // setIsError(true);
- // }
};
return (
diff --git a/app/component/selectors/GroupedSelect.js b/app/component/selectors/GroupedSelect.js
new file mode 100644
index 0000000..8cad342
--- /dev/null
+++ b/app/component/selectors/GroupedSelect.js
@@ -0,0 +1,102 @@
+import MenuItem from "@mui/material/MenuItem";
+import ListSubheader from "@mui/material/ListSubheader";
+import Select from "@mui/material/Select";
+import { useState } from "react";
+import { styleTextSelectRight } from "@/mui";
+import IconMultipleSelect from "@/components/icons/IconMultipleSelect";
+
+function groupSpecialtiesByParent(specialties) {
+ const groups = [];
+
+ const parents = specialties.filter((item) => item.parent === null);
+
+ parents.forEach((parent) => {
+ const children = specialties.filter((item) => item.parent === parent.id);
+ if (children.length > 0) {
+ groups.push({
+ parent,
+ children,
+ });
+ }
+ });
+
+ return groups;
+}
+
+export default function GroupedSelect({
+ list,
+ name,
+ updateData,
+ data,
+ nameKey = "name",
+}) {
+ const groupedList = groupSpecialtiesByParent(list);
+
+ const handleChange = (event) => {
+ const value = event.target.value;
+ updateData && updateData(value, "value", name);
+ };
+
+ return (
+
+
+
+ );
+}
diff --git a/components/panel/addDoctor/form/Fields.js b/components/panel/addDoctor/form/Fields.js
new file mode 100644
index 0000000..80d95fd
--- /dev/null
+++ b/components/panel/addDoctor/form/Fields.js
@@ -0,0 +1,97 @@
+import Selector from "./fields/Selector";
+import EditField from "@/app/component/fields/EditField";
+import GroupedSelect from "@/app/component/selectors/GroupedSelect";
+import MultipleSelect from "@/app/component/selectors/MultipleSelect";
+
+// Data
+import specialties from "@/data/specialties.json";
+import education from "@/data/education.json";
+import ContentText from "@/app/component/ContentText";
+
+const validate_medical_number = {
+ min: 1,
+ max: 9999999999,
+};
+
+function Fields({ services, data, updateNum, changeData }) {
+ return (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ );
+}
+
+export default Fields;
diff --git a/components/panel/addDoctor/form/fields/RadioGender.js b/components/panel/addDoctor/form/fields/RadioGender.js
index 0768993..1adc3e4 100644
--- a/components/panel/addDoctor/form/fields/RadioGender.js
+++ b/components/panel/addDoctor/form/fields/RadioGender.js
@@ -1,11 +1,11 @@
import { FormControlLabel, Radio, RadioGroup } from "@mui/material";
-function RadioGender({ changeData, name }) {
+function RadioGender({ changeData, name, data }) {
return (
changeData(e.target.value, "value", name)}
sx={{
"& .muirtl-j204z7-MuiFormControlLabel-root": {
@@ -17,12 +17,14 @@ function RadioGender({ changeData, name }) {
label="مرد"
value="man"
control={}
+ dir="rtl"
className="!text-[#A1A1A1]"
/>
}
+ dir="rtl"
className="!text-[#A1A1A1]"
/>
diff --git a/components/panel/addDoctor/form/fields/Selector.js b/components/panel/addDoctor/form/fields/Selector.js
index 8833fa4..f38cf2b 100644
--- a/components/panel/addDoctor/form/fields/Selector.js
+++ b/components/panel/addDoctor/form/fields/Selector.js
@@ -2,9 +2,12 @@ import BottomSelect from "@/components/icons/BottomSelect";
import { Autocomplete, Button, TextField } from "@mui/material";
import { styleTextSelectRight } from "@/mui";
-function Selector({ updateData, nameKey, label, name, list }) {
+function Selector({ data, updateData, nameKey, label, name, list }) {
+ const selectedOption = list.find((item) => item.id === data) || null;
+
return (
option[nameKey] || ""}
@@ -17,7 +20,6 @@ function Selector({ updateData, nameKey, label, name, list }) {
}}
sx={{
...styleTextSelectRight,
- // Hide Icon Number
"& input::-webkit-outer-spin-button, & input::-webkit-inner-spin-button":
{
display: "none",
diff --git a/components/panel/addDoctor/form/index.js b/components/panel/addDoctor/form/index.js
index aeac80b..e51d23a 100644
--- a/components/panel/addDoctor/form/index.js
+++ b/components/panel/addDoctor/form/index.js
@@ -2,17 +2,9 @@ import { useEffect, useState } from "react";
import FieldDate from "./fields/FieldDate";
import RadioGender from "./fields/RadioGender";
import SendReq from "./sendReq";
-import Selector from "./fields/Selector";
-
-// Components
-import EditField from "@/app/component/fields/EditField";
import ContentText from "@/app/component/ContentText";
-
-// Data
-import specialties from "@/data/specialties.json";
-import education from "@/data/education.json";
-import MultipleSelect from "@/app/component/selectors/MultipleSelect";
import { request } from "@/services/response";
+import Fields from "./Fields";
const validate_medical_number = {
min: 1,
@@ -41,7 +33,6 @@ function Form({ image, data, setData, resetData }) {
const validateValue = parseValue > max ? data[name].value : value;
changeData(validateValue, type, name);
};
- const filteredSpe = specialties.filter((item) => item.parent);
useEffect(() => {
request
@@ -49,94 +40,30 @@ function Form({ image, data, setData, resetData }) {
.then((res) => {
setServices(res.data);
})
- .catch((err) => {
- console.log(err);
+ .catch(() => {
+ //
});
}, []);
- console.log(services);
return (
<>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
>
diff --git a/components/panel/addDoctor/form/sendReq/function.js b/components/panel/addDoctor/form/sendReq/function.js
index 0249999..21e0303 100644
--- a/components/panel/addDoctor/form/sendReq/function.js
+++ b/components/panel/addDoctor/form/sendReq/function.js
@@ -12,7 +12,10 @@ export const transformData = (data) => {
activity_time: dateToTimestamp(data.time_work.value),
doctor_mobile_number: data.phone.value,
degree: data.degree.value,
- specialty: [Number(data.expertise.value)],
+ specialty: [data.expertise.value],
info: data.description.value,
+ doctor_id: data.medical_system_number.value,
+ doctor_services: data.skills.value,
+ gender: data.gender.value,
};
};
diff --git a/components/panel/addDoctor/form/sendReq/index.js b/components/panel/addDoctor/form/sendReq/index.js
index 1ed303e..9b82581 100644
--- a/components/panel/addDoctor/form/sendReq/index.js
+++ b/components/panel/addDoctor/form/sendReq/index.js
@@ -27,6 +27,7 @@ function SendReq({ img, data, resetData }) {
};
const saveImg = () => {
+ resetData();
setLoading(true);
if (img) {
request
@@ -35,7 +36,7 @@ function SendReq({ img, data, resetData }) {
const imgId = res.fid[0].value;
saveData(imgId);
})
- .catch((err) => {
+ .catch(() => {
setLoading(false);
});
} else {
@@ -47,7 +48,6 @@ function SendReq({ img, data, resetData }) {