import styles from "./SearchBar.module.css"; import { Link } from "react-router"; import { useEffect, useState } from "react"; import searchEvents from "../../utils/events/searchEvents.js"; import searchUsers from "../../utils/users/searchUsers.js"; import { useLocation } from "react-router"; function SearchBar(): any { const [searchQuery, setSearchQuery] = useState(""); const [searchResults, setSearchResults] = useState([]); const location: any = useLocation(); useEffect(() => { const performSearch = async (query: string): Promise => { if (query.trim() === "") { setSearchResults([]); return; } let data: any; if (location.pathname.includes("events")) { data = await searchEvents(query); } else if (location.pathname.includes("volunteers")) { data = await searchUsers(query); } if (data) { setSearchResults(data); } else { setSearchResults([]); } }; const handler: ReturnType = setTimeout(() => { performSearch(searchQuery); }, 300); return () => { clearTimeout(handler); }; }, [searchQuery, location.pathname]); return (
) => element.preventDefault() } > Rechercher ) => setSearchQuery(element.target.value) } />
{searchResults.length > 0 ? (
) : null}
{searchResults.map((result: any, i: number) => location.pathname.includes("events") ? (
{result.image == null ? ( Pas de photo de l'événement ) : ( Photo de l'événement )}

{result.name}

) : location.pathname.includes("volunteers") ? (
{result.image == null ? ( Pas de photo de l'événement ) : ( Photo de l'événement )}

{result.name} {result.lastname}

) : null )}
); } export default SearchBar;