handle pagination in clinics page & change design login & fix bug filter state & change list most searched in home page & handle error page doctor item & change key url doctors and home page and get data from url & send data with url search to doctors page & show pagination only when list is long
This commit is contained in:
@@ -20,11 +20,11 @@ function DoctorsPage({ params, matchedCity, matchedState }) {
|
||||
});
|
||||
const findItem = (name, value) => specialties.find(item => item[name] === value)
|
||||
const itemCategory = findItem('id', params.category);
|
||||
const itemExpertise = findItem('id', params.expertise);
|
||||
const itemSpecialties = findItem('id', params.specialties);
|
||||
|
||||
const [data, setData] = useState({
|
||||
category: itemCategory || "",
|
||||
expertise: itemExpertise ? { ...itemExpertise, label: itemExpertise.name } : "",
|
||||
specialties: itemSpecialties ? { ...itemSpecialties, label: itemSpecialties.name } : "",
|
||||
turn: params && params.hasOwnProperty('turn') ? JSON.parse(params.turn) : 1,
|
||||
gender: params.gender || "هر دو",
|
||||
degree: params.degree || "متخصص",
|
||||
|
||||
@@ -11,7 +11,7 @@ function ListDoctors({ loading }) {
|
||||
))}
|
||||
</ul>
|
||||
<div className="mt-[56px] flex justify-center">
|
||||
<Pagination />
|
||||
<Pagination list={doctors} itemsPerPage={12} />
|
||||
</div>
|
||||
</>
|
||||
);
|
||||
|
||||
@@ -11,22 +11,22 @@ function Content({ data, setData }) {
|
||||
const router = useRouter();
|
||||
const { parentList, childrenList } = filterList(data);
|
||||
|
||||
const changeUrl = (value, name, removeExpertise) => {
|
||||
const changeUrl = (value, name, removeSpecialties) => {
|
||||
const current = new URLSearchParams(window.location.search);
|
||||
current.set(name, value.id || value);
|
||||
if (removeExpertise) {
|
||||
current.delete('expertise')
|
||||
if (removeSpecialties) {
|
||||
current.delete('specialties')
|
||||
};
|
||||
const queryString = current.toString();
|
||||
router.push(`/doctors?${queryString}`)
|
||||
}
|
||||
|
||||
const changeData = (value, name, removeExpertise) => {
|
||||
changeUrl(value, name, removeExpertise);
|
||||
const changeData = (value, name, removeSpecialties) => {
|
||||
changeUrl(value, name, removeSpecialties);
|
||||
const newData = data;
|
||||
newData[name] = value;
|
||||
if (removeExpertise) {
|
||||
newData.expertise = ''
|
||||
if (removeSpecialties) {
|
||||
newData.specialties = ''
|
||||
};
|
||||
setData(newData);
|
||||
}
|
||||
@@ -47,8 +47,8 @@ function Content({ data, setData }) {
|
||||
list={childrenList}
|
||||
updateData={changeData}
|
||||
sendAll={true}
|
||||
value={data.expertise}
|
||||
name="expertise"
|
||||
value={data.specialties}
|
||||
name="specialties"
|
||||
label="تخصص"
|
||||
/>
|
||||
</div>
|
||||
|
||||
@@ -16,10 +16,10 @@ function FilterModal({ data, setData, children }) {
|
||||
const handleClose = () => setOpen(false);
|
||||
|
||||
const deleteData = () => {
|
||||
clearFilterParams(router, ['turn', 'expertise', 'degree', 'category', 'gender'])
|
||||
clearFilterParams(router, ['turn', 'specialties', 'degree', 'category', 'gender'])
|
||||
setData({
|
||||
category: "",
|
||||
expertise: "",
|
||||
specialties: "",
|
||||
turn: true,
|
||||
gender: "هر دو",
|
||||
degree: "متخصص",
|
||||
|
||||
@@ -1,17 +0,0 @@
|
||||
const category = [
|
||||
{ label: "چشم پزشکی 1", id: 10 },
|
||||
{ label: "چشم پزشکی 2", id: 20 },
|
||||
{ label: "چشم پزشکی 3", id: 30 },
|
||||
{ label: "چشم پزشکی 4", id: 40 },
|
||||
{ label: "چشم پزشکی 5", id: 40 },
|
||||
];
|
||||
|
||||
const expertise = [
|
||||
{ label: "تخصص 1", id: 10 },
|
||||
{ label: "تخصص 2", id: 20 },
|
||||
{ label: "تخصص 3", id: 30 },
|
||||
{ label: "تخصص 4", id: 40 },
|
||||
{ label: "تخصص 5", id: 40 },
|
||||
];
|
||||
|
||||
export { category, expertise };
|
||||
Reference in New Issue
Block a user