import { useState, useMemo } from 'react'; import { motion } from 'framer-motion'; import { FunnelIcon, MagnifyingGlassIcon, PaperAirplaneIcon } from '@heroicons/react/24/outline'; import { Leader } from './types'; import { leaders } from './mock'; import Header from './header'; import Filter from './filter'; export default function WriteLetterPage() { const [selectedLeader, setSelectedLeader] = useState(null); const [searchQuery, setSearchQuery] = useState(''); const [selectedDivision, setSelectedDivision] = useState('all'); const divisions = useMemo(() => { return ['all', ...new Set(leaders.map(leader => leader.division))]; }, []); const filteredLeaders = useMemo(() => { return leaders.filter(leader => { const matchesSearch = leader.name.toLowerCase().includes(searchQuery.toLowerCase()) || leader.rank.toLowerCase().includes(searchQuery.toLowerCase()); const matchesDivision = selectedDivision === 'all' || leader.division === selectedDivision; return matchesSearch && matchesDivision; }); }, [searchQuery, selectedDivision]); return (
{/* 搜索和筛选区域 */}
{/* Modified Leader Cards Grid */}
{filteredLeaders.map((leader) => (
{/* Image Container */}
{leader.name}
{/* Content Container */}

{leader.name}

{leader.rank}

{leader.division}

{/* Contact Information */}

{leader.email}

{leader.phone}

{leader.office}

))}
{/* 无结果提示 */} {filteredLeaders.length === 0 && (

No leaders found matching your search criteria

)}
); }