import { useState, useMemo } from 'react'; import { motion } from 'framer-motion'; import { Search, Users, Filter, ArrowUpDown, BookOpen, ChevronRight, AlertTriangle } from 'lucide-react'; import FacultyCard from '@/components/FacultyCard/FacultyCard'; import { StaggerContainer, StaggerItem } from '@/components/AnimatedContainer/AnimatedContainer'; import { FACULTY_DATA, DEPARTMENTS } from '@/constants'; import { Link } from 'react-router-dom'; export default function Faculty() { const [searchFaculty, setSearchFaculty] = useState(''); const [selectedDept, setSelectedDept] = useState('All Departments'); const [sortBy, setSortBy] = useState('Name A-Z'); const filteredAndSortedFaculty = useMemo(() => { const filtered = FACULTY_DATA.filter((f) => { const searchLower = searchFaculty.trim().toLowerCase(); const matchSearch = f.name.toLowerCase().includes(searchLower) || f.department.toLowerCase().includes(searchLower) || f.designation.toLowerCase().includes(searchLower) || (f.specialization && f.specialization.toLowerCase().includes(searchLower)); const matchDept = selectedDept === 'All Departments' || f.department === selectedDept; return matchSearch && matchDept; }); return filtered.sort((a, b) => { if (sortBy === 'Name A-Z') return a.name.localeCompare(b.name); if (sortBy === 'Department') return a.department.localeCompare(b.department); if (sortBy === 'Designation') return a.designation.localeCompare(b.designation); return 0; }); }, [searchFaculty, selectedDept, sortBy]); return (
Browse and connect with experienced faculty members across all departments.
Browse and connect with experienced faculty members. Search by name, department, or specialization.
Try adjusting your search or filters.