change list sort doctors page & change function search list specialties & remove pagination from page specialties & fix zoom page & change design all fields & change regex validation phone number for nobat724 and clinic-pro

This commit is contained in:
Ehsan
2025-05-14 15:57:40 +03:30
parent 845db52e31
commit feba3c4a64
10 changed files with 42 additions and 82 deletions
+9 -17
View File
@@ -1,29 +1,21 @@
"use client";
import { useEffect, useState } from "react";
import { useState } from "react";
import List from "./list";
import SmSearch from "../searchHead/SmSearch";
import HeadPageList from "@/app/component/head";
import specialtiesData from "@/data/specialties.json";
function SpecialtiesPage() {
const [searchQuery, setSearchQuery] = useState("");
const [filteredSpecialties, setFilteredSpecialties] = useState(specialtiesData);
useEffect(() => {
if (searchQuery.trim() === "") {
setFilteredSpecialties(specialtiesData);
} else {
const query = searchQuery.toLowerCase().trim();
const filtered = specialtiesData.filter((specialty) =>
specialty.name.toLowerCase().includes(query)
);
setFilteredSpecialties(filtered);
}
}, [searchQuery]);
const handleSearch = (query) => {
setSearchQuery(query);
const searchHandler = (e) => {
const value = e.target.value
setFilteredSpecialties(
specialtiesData.filter(item =>
item.name.toLowerCase().includes(value)
)
)
};
return (
@@ -32,7 +24,7 @@ function SpecialtiesPage() {
title="تخصص مورد نظر شما چیست؟"
detail="تخصص مورد نظرتان را جستجو کرده و یا از لیست زیر انتخاب نمایید:"
>
<SmSearch placeholder="جستجوی تخصص" onSearch={handleSearch} />
<SmSearch placeholder="جستجوی تخصص" searchHandler={searchHandler} />
</HeadPageList>
<List specialties={filteredSpecialties} />
</div>
+1 -18
View File
@@ -1,16 +1,7 @@
import MenuS from "@/components/icons/MenuS";
import Pagination from "@/app/component/Pagination";
import ItemSpecialties from "./ItemSpecialties";
import { useState } from "react";
function List({ specialties = [] }) {
const [page, setPage] = useState(1);
const itemsPerPage = 24;
const startIndex = (page - 1) * itemsPerPage;
const endIndex = startIndex + itemsPerPage;
const currentList = specialties.filter((_, i) => i >= startIndex && i < endIndex);
return (
<div className="bg-[#FAFAFA]">
<div className="flex items-center justify-center gap-[12px] pt-[24px] mb-[40px]">
@@ -29,19 +20,11 @@ function List({ specialties = [] }) {
gap-x-[16px] md:gap-x-[20px] lg:gap-x-[24px]
gap-y-[16px] sm:gap-y-[24px] md:gap-y-[32px] lg:gap-y-[40px]"
>
{currentList.map((speciality) => (
{specialties.map((speciality) => (
<ItemSpecialties data={speciality} key={speciality.id} />
))}
</ul>
)}
<div className="mt-[48px] flex justify-center">
<Pagination
page={page}
setPage={setPage}
list={specialties}
itemsPerPage={itemsPerPage}
/>
</div>
</div>
);
}