From 5df5ffc1f9c72437664c52f6fa33346aba1d9833 Mon Sep 17 00:00:00 2001 From: ehsan Date: Sat, 3 May 2025 06:50:02 +0330 Subject: [PATCH] send data location with url to doctors and get it and show in page doctors --- app/component/modalSearchCity/ButtonFilter.js | 8 +++-- app/component/modalSearchCity/index.js | 34 +++++++++--------- components/doctors/index.js | 12 +++++-- components/home/search/index.js | 36 ++++++++++++------- 4 files changed, 54 insertions(+), 36 deletions(-) diff --git a/app/component/modalSearchCity/ButtonFilter.js b/app/component/modalSearchCity/ButtonFilter.js index c209c25..f7bbd7d 100644 --- a/app/component/modalSearchCity/ButtonFilter.js +++ b/app/component/modalSearchCity/ButtonFilter.js @@ -20,10 +20,12 @@ function ButtonFilter({ selected, setOpen }) {

- {selected && selected.first && selected.second - ? `${selected.first} | ${selected.second}` + {selected && selected.province && selected.city + ? `${selected.province} | ${selected.city}` : "انتخاب شهر"}

diff --git a/app/component/modalSearchCity/index.js b/app/component/modalSearchCity/index.js index e894101..81cf7ad 100644 --- a/app/component/modalSearchCity/index.js +++ b/app/component/modalSearchCity/index.js @@ -14,8 +14,8 @@ import statesData from "@/data/state.json"; import citiesData from "@/data/city.json"; function ModalSearchCity({ children, selected, setSelected, open, setOpen }) { - const secondSelected = selected.second; - const firstSelected = selected.first; + const provinceSelected = selected.province; + const citySelected = selected.city; const [states, setStates] = useState([]); const [cities, setCities] = useState([]); const [filteredCities, setFilteredCities] = useState([]); @@ -43,9 +43,9 @@ function ModalSearchCity({ children, selected, setSelected, open, setOpen }) { // Filter cities when state is selected useEffect(() => { - if (firstSelected) { + if (provinceSelected) { const selectedState = states.find( - (state) => state.label === firstSelected + (state) => state.label === provinceSelected ); if (selectedState) { const stateId = selectedState.id; @@ -56,14 +56,14 @@ function ModalSearchCity({ children, selected, setSelected, open, setOpen }) { } } else { setFilteredCities([]); - setSelected({ ...selected, second: "" }); + setSelected({ ...selected, city: "" }); } - }, [firstSelected, cities, states]); + }, [provinceSelected, cities, states]); const updateData = (event, name) => { - if (name === "first" && event !== firstSelected) { + if (name === "province" && event !== provinceSelected) { // If state changes, reset city selection - setSelected({ first: event, second: "" }); + setSelected({ province: event, city: "" }); } else { setSelected({ ...selected, [name]: event }); } @@ -89,25 +89,23 @@ function ModalSearchCity({ children, selected, setSelected, open, setOpen }) {
item.label === secondSelected - ) && - secondSelected + citySelected && + filteredCities.find((item) => item.label === citySelected) && + citySelected } list={filteredCities} - name="second" + name="city" label="شهر" - disabled={!firstSelected || filteredCities.length === 0} + disabled={!provinceSelected || filteredCities.length === 0} />
@@ -116,7 +114,7 @@ function ModalSearchCity({ children, selected, setSelected, open, setOpen }) { onClick={handleClose} variant="contained" color="primary" - disabled={!firstSelected || !secondSelected} + disabled={!provinceSelected || !citySelected} > تایید و ادامه diff --git a/components/doctors/index.js b/components/doctors/index.js index 17b4387..82469fc 100644 --- a/components/doctors/index.js +++ b/components/doctors/index.js @@ -5,9 +5,15 @@ import SearchBar from "./search"; import SortList from "./sortlist"; import ListDoctors from "./listDoctors"; import LocationD from "../icons/LocationD"; +import { useSearchParams } from "next/navigation"; function DoctorsPage() { const [loading, setLoading] = useState(true); + const searchParams = useSearchParams(); + const locationSelected = { + province: searchParams.get("province"), + city: searchParams.get("city"), + }; const [data, setData] = useState({ expertise: "", gender: 0, @@ -27,14 +33,16 @@ function DoctorsPage() {

- خوزستان / اهواز + {" "} + {locationSelected.province || "استان"} /{" "} + {locationSelected.city || "شهر"}

-
+
); diff --git a/components/home/search/index.js b/components/home/search/index.js index a5c88ce..aee9cee 100644 --- a/components/home/search/index.js +++ b/components/home/search/index.js @@ -6,23 +6,23 @@ import SearchD from "@/components/icons/SearchD"; import ModalSearchCity from "@/app/component/modalSearchCity"; import ButtonFilter from "@/app/component/modalSearchCity/ButtonFilter"; import { useState } from "react"; +import Link from "next/link"; function SearchBar() { const [selected, setSelected] = useState({ - first: "", - second: "", + province: "", + city: "", }); const [open, setOpen] = useState(false); - console.log(selected); return ( - + + +