From ebfe47468ccc28aab6fa459200c2cd8ddccc59c1 Mon Sep 17 00:00:00 2001 From: Ehsan Date: Wed, 3 Sep 2025 22:05:26 +0330 Subject: [PATCH] get data with filter location for first time, get comment of doctor and show in doctor page, handle new comment --- app/component/ItemDoctor.js | 6 +- app/component/ProgressChange.js | 11 +- app/component/comment/ItemUser.js | 43 +++++--- app/component/comment/index.js | 8 +- app/doctor/[slug]/page.js | 9 +- app/doctors/page.js | 9 +- .../detailDoctor/cards/comments/index.js | 4 +- .../cards/comments/modal/ModalAnswer.js | 103 +++++++++++++++--- components/doctor/detailDoctor/index.js | 4 +- components/doctor/index.js | 7 +- components/doctors/index.js | 2 - components/doctors/listDoctors/index.js | 2 +- data/progress_detail.json | 27 +++++ services/response.js | 2 + 14 files changed, 187 insertions(+), 50 deletions(-) create mode 100644 data/progress_detail.json diff --git a/app/component/ItemDoctor.js b/app/component/ItemDoctor.js index 6b6879a..c9df883 100644 --- a/app/component/ItemDoctor.js +++ b/app/component/ItemDoctor.js @@ -33,7 +33,11 @@ function ItemDoctor({ doctor }) {

- تخصص: {doctor?.expertise} + تخصص: + {doctor?.specialties?.map( + (item, idx) => + `${item.name} ${doctor.specialties.length === idx + 1 ? "" : "|"} ` + )}

diff --git a/app/component/ProgressChange.js b/app/component/ProgressChange.js index 74b32c1..a83e3fe 100644 --- a/app/component/ProgressChange.js +++ b/app/component/ProgressChange.js @@ -1,7 +1,7 @@ import { Slider } from "@mui/material"; import { useState } from "react"; -function ProgressChange({ data }) { +function ProgressChange({ data, changeData, parent }) { const [value, setValue] = useState(70); return ( @@ -10,9 +10,12 @@ function ProgressChange({ data }) { {data.label}

setValue(e.target.value)} + onChange={(e) => { + setValue(e.target.value); + changeData(parent, data.name, e.target.value); + }} sx={{ "& .MuiSlider-rail": { background: "#E8E8E8", @@ -32,7 +35,7 @@ function ProgressChange({ data }) { }, }} /> -

+

{value}

diff --git a/app/component/comment/ItemUser.js b/app/component/comment/ItemUser.js index fb5785b..31a6183 100644 --- a/app/component/comment/ItemUser.js +++ b/app/component/comment/ItemUser.js @@ -13,10 +13,13 @@ function ItemUser({ update, setUpdate, isReply, list, setList, data }) { const handleLike = (lengthLike, data, nameLike, nameIsLike) => { if (nameIsLike === "is_like" && data.is_dislike) { data.is_dislike = false; - data.dislike--; - } else if (nameIsLike === "is_dislike" && data.is_like) { - data.is_like = false; - data.like--; + data.like_status.dislike_count--; + } else if ( + nameIsLike === "is_dislike" && + data.like_status.current_user_like.like + ) { + data.like_status.current_user_like.like = false; + data.like_status.like_count--; } data[nameLike] = lengthLike; data[nameIsLike] = !data[nameIsLike]; @@ -28,14 +31,14 @@ function ItemUser({ update, setUpdate, isReply, list, setList, data }) {
profile

- {data.name} + {data.author.real_name}

3 روز پیش @@ -52,17 +55,23 @@ function ItemUser({ update, setUpdate, isReply, list, setList, data }) { className="cursor-pointer" onClick={() => handleLike( - data.is_like ? data.like - 1 : data.like + 1, + data.like_status.current_user_like.like + ? data.like_status.like_count - 1 + : data.like_status.like_count + 1, data, "like", "is_like" ) } > - {data.is_like ? : } + {data.like_status.current_user_like.like ? ( + + ) : ( + + )}

- {data.like} + {data.like_status.like_count || ""}

@@ -70,7 +79,9 @@ function ItemUser({ update, setUpdate, isReply, list, setList, data }) { className="cursor-pointer" onClick={() => handleLike( - data.is_dislike ? data.dislike - 1 : data.dislike + 1, + data.is_dislike + ? data.like_status.dislike_count - 1 + : data.like_status.dislike_count + 1, data, "dislike", "is_dislike" @@ -80,7 +91,7 @@ function ItemUser({ update, setUpdate, isReply, list, setList, data }) { {data.is_dislike ? : }

- {data.dislike} + {data.like_status.dislike_count || ""}

- + diff --git a/components/doctor/detailDoctor/index.js b/components/doctor/detailDoctor/index.js index ff94166..2171366 100644 --- a/components/doctor/detailDoctor/index.js +++ b/components/doctor/detailDoctor/index.js @@ -5,7 +5,7 @@ import AboutDcotor from "./cards/AboutDcotor"; import Comments from "./cards/comments"; import Locations from "./cards/locations"; -function DetailDoctor({ doctor }) { +function DetailDoctor({ doctor, comments }) { return (
@@ -15,7 +15,7 @@ function DetailDoctor({ doctor }) { - +
); } diff --git a/components/doctor/index.js b/components/doctor/index.js index b60f652..ee4c22c 100644 --- a/components/doctor/index.js +++ b/components/doctor/index.js @@ -2,9 +2,10 @@ import AppointmentList from "./appointmentList"; import DetailDoctor from "./detailDoctor"; import Share from "./detailDoctor/Share"; import CustomLoading from "@/app/component/loading/Custom"; -import Poster from "./poster"; -function DoctorPage({ doctor, doctors }) { +function DoctorPage({ doctor, doctors, comments }) { + console.log(comments); + return (
@@ -24,7 +25,7 @@ function DoctorPage({ doctor, doctors }) {
- +
diff --git a/components/doctors/index.js b/components/doctors/index.js index f16b180..d26adbe 100644 --- a/components/doctors/index.js +++ b/components/doctors/index.js @@ -23,8 +23,6 @@ function DoctorsPage({ params, matchedCity, matchedState, list }) { const findItem = (id) => specialties.find((item) => item.id === id); const isParent = findItem(fieldId) && findItem(fieldId).parent; - const findSpecial = (id) => specialties.find((item) => item.id === id); - const [data, setData] = useState({ category: isParent ? findItem(isParent) : findItem(fieldId), specialties: isParent && findItem(fieldId), diff --git a/components/doctors/listDoctors/index.js b/components/doctors/listDoctors/index.js index fe1df15..27c05d6 100644 --- a/components/doctors/listDoctors/index.js +++ b/components/doctors/listDoctors/index.js @@ -14,7 +14,7 @@ function ListDoctors({ loading, list }) { ) : (

- هیچ دکتری وجود ندارد! + دکتری برای نمایش وجود ندارد.

)} diff --git a/data/progress_detail.json b/data/progress_detail.json new file mode 100644 index 0000000..ec2d7e1 --- /dev/null +++ b/data/progress_detail.json @@ -0,0 +1,27 @@ +[ + { + "name": "time_in_office", + "label": "زمان انتظار در مطب", + "progress": 70 + }, + { + "name": "correct_diagnosis", + "label": "تشخیص درست", + "progress": 70 + }, + { + "name": "behavior_doctor", + "label": "برخورد مناسب پزشک", + "progress": 70 + }, + { + "name": "office_cleaning", + "label": "نظافت مطب", + "progress": 70 + }, + { + "name": "doctor_skill", + "label": "مهارت پزشک", + "progress": 70 + } +] diff --git a/services/response.js b/services/response.js index c90ea6d..eba575f 100644 --- a/services/response.js +++ b/services/response.js @@ -76,4 +76,6 @@ export const request = { }), getDoctorServices: () => api.get("api/v1/categorys/doctor_services", removeTokenHead), + postDoctorComment: (data) => api.post("api/v1/clinicpro/comment", data), + postDoctorRate: (data) => api.post("api/v1/clinicpro/rate", data) };