handle change data step office information

This commit is contained in:
Ehsan
2024-10-11 20:39:39 +03:30
parent ecb8fcb8bf
commit a33195a8b4
3 changed files with 26 additions and 30 deletions
+8 -3
View File
@@ -25,6 +25,8 @@ function AddDoctorPage() {
phone: { value: 1741025645, isEdit: false }, phone: { value: 1741025645, isEdit: false },
office_number1: { value: "", isEdit: false }, office_number1: { value: "", isEdit: false },
office_number2: { value: "", isEdit: false }, office_number2: { value: "", isEdit: false },
state: { value: "", isEdit: false },
city: { value: "", isEdit: false },
}, },
work_day: [ work_day: [
{ name: "شنبه", morning_time: ["", ""], evening_time: ["", ""] }, { name: "شنبه", morning_time: ["", ""], evening_time: ["", ""] },
@@ -43,12 +45,15 @@ function AddDoctorPage() {
setData={setData} setData={setData}
setValue={setValue} setValue={setValue}
/>, />,
<OfficeInformation data={data} setData={setData} setValue={setValue} />, <OfficeInformation
parent="office"
data={data}
setData={setData}
setValue={setValue}
/>,
<WorkingDays data={data} setData={setData} setValue={setValue} />, <WorkingDays data={data} setData={setData} setValue={setValue} />,
]; ];
console.log(data);
return ( return (
<div className="opacity-page"> <div className="opacity-page">
<p className="text-[#525252] dark:text-[#D7D8ED] text-[20px] font-bold hidden md:flex"> <p className="text-[#525252] dark:text-[#D7D8ED] text-[20px] font-bold hidden md:flex">
@@ -1,41 +1,32 @@
"use client"; "use client";
import { useState } from "react";
import { city, state } from "./listSelector"; import { city, state } from "./listSelector";
import EditField from "@/app/component/EditField"; import EditField from "@/app/component/EditField";
import ContentText from "@/app/component/ContentText"; import ContentText from "@/app/component/ContentText";
import AddLocationP from "@/components/icons/AddLocationP"; import AddLocationP from "@/components/icons/AddLocationP";
import AutoCompleteSelect from "@/app/component/element/AutoCompleteSelect"; import AutoCompleteSelect from "@/app/component/element/AutoCompleteSelect";
function Form() { function Form({ parent, data, setData }) {
const [data, setData] = useState({ const changeData = (value, type, name) => {
address: { value: "", isEdit: false }, setData((prev) => {
phone: { value: 1741025645, isEdit: false }, return {
office_number1: { value: "", isEdit: false }, ...prev,
office_number2: { value: "", isEdit: false }, [parent]: {
}); ...prev[parent],
const [selected, setSelected] = useState({ [name]: {
state: "", ...prev[parent][name],
city: "", [type]: value,
}); },
const updateSelect = (event, name) => },
setSelected({ ...selected, [name]: event }); };
const changeData = (value, type, name) =>
setData({
...data,
[name]: {
...data[name],
[type]: value,
},
}); });
};
return ( return (
<div className="mt-[24px] grid grid-cols-1 md:grid-cols-2 gap-x-[48px] gap-y-[24px]"> <div className="mt-[24px] grid grid-cols-1 md:grid-cols-2 gap-x-[48px] gap-y-[24px]">
<ContentText text="استان"> <ContentText text="استان">
<AutoCompleteSelect <AutoCompleteSelect
updateData={updateSelect} updateData={changeData}
label="انتخاب کنید..." label="انتخاب کنید..."
name="state" name="state"
list={state} list={state}
@@ -43,7 +34,7 @@ function Form() {
</ContentText> </ContentText>
<ContentText text="شهر"> <ContentText text="شهر">
<AutoCompleteSelect <AutoCompleteSelect
updateData={updateSelect} updateData={changeData}
label="انتخاب کنید..." label="انتخاب کنید..."
name="city" name="city"
list={city} list={city}
@@ -2,10 +2,10 @@ import ArrowLeftPA from "@/components/icons/ArrowLeftPA";
import { Button } from "@mui/material"; import { Button } from "@mui/material";
import Form from "./Form"; import Form from "./Form";
function OfficeInformation({ setValue }) { function OfficeInformation({ setValue, parent, data, setData }) {
return ( return (
<div className="opacity-page pb-[24px]"> <div className="opacity-page pb-[24px]">
<Form /> <Form parent={parent} setData={setData} data={data.office} />
<div className="mt-[40px] w-full flex justify-end"> <div className="mt-[40px] w-full flex justify-end">
<Button <Button
className="!bg-[#5559CE] !w-full md:!w-fit !shadow-none !rounded-[4px] !gap-[4px] !text-[#EFEFEF] !text-[14px] md:!text-[16px] !font-medium" className="!bg-[#5559CE] !w-full md:!w-fit !shadow-none !rounded-[4px] !gap-[4px] !text-[#EFEFEF] !text-[14px] md:!text-[16px] !font-medium"