import { useState, useMemo } from 'react'; import { motion, AnimatePresence } from 'framer-motion'; import { Leader } from './types'; import { leaders } from './mock'; import Header from './header'; import Filter from './filter'; import LeaderCard from './LeaderCard'; 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 (
{filteredLeaders.length > 0 ? ( {filteredLeaders.map((leader) => ( setSelectedLeader(leader)} /> ))} ) : (

No leaders found matching your search criteria

)}
); }