diff --git a/frontend/src/pages/Doctor.tsx b/frontend/src/pages/Doctor.tsx index 0c368f6..34db16f 100644 --- a/frontend/src/pages/Doctor.tsx +++ b/frontend/src/pages/Doctor.tsx @@ -110,17 +110,36 @@ export default function DoctorPage() { fetchAll(); }, [fetchAll]); - const filteredDoctors = doctors.filter((doc) => { - const matchesSearch = - doc.name.toLowerCase().includes(searchText.toLowerCase()) || - doc.doctorId.toLowerCase().includes(searchText.toLowerCase()); + const filteredDoctors = doctors + .filter((doc) => { + const matchesSearch = + doc.name.toLowerCase().includes(searchText.toLowerCase()) || + doc.doctorId.toLowerCase().includes(searchText.toLowerCase()); - const matchesDepartment = filterDepartment - ? doc.departments?.some((d: any) => d.departmentId === filterDepartment) - : true; + const matchesDepartment = filterDepartment + ? doc.departments?.some((d: any) => d.departmentId === filterDepartment) + : true; - return matchesSearch && matchesDepartment; - }); + return matchesSearch && matchesDepartment; + }) + .sort((a, b) => { + if (!filterDepartment) { + return a.globalSortOrder - b.globalSortOrder; + } + + const aDept = a.departments.find( + (d: any) => d.departmentId === filterDepartment, + ); + + const bDept = b.departments.find( + (d: any) => d.departmentId === filterDepartment, + ); + + return ( + (aDept?.deptSortOrder ?? Number.MAX_SAFE_INTEGER) - + (bDept?.deptSortOrder ?? Number.MAX_SAFE_INTEGER) + ); + }); useEffect(() => { setCurrentPage(1);