import Navbar from "../components/Navbar.jsx"; import {useEffect, useState} from "react"; import {search} from "../services/search.service.js" import VideoCard from "../components/VideoCard.jsx"; import CreatorCard from "../components/CreatorCard.jsx"; import {useSearchParams} from "react-router-dom"; export default function Search() { const [searchParams, setSearchParams] = useSearchParams(); const queryFromUrl = searchParams.get('q') || ''; const typeFromUrl = searchParams.get('type') || 'videos'; const [filter, setFilter] = useState(typeFromUrl); const [searchQuery, setSearchQuery] = useState(queryFromUrl); const [results, setResults] = useState({}); const [alerts, setAlerts] = useState([]); useEffect(() => { async function fetchData() { if (searchParams) { setResults(await search(queryFromUrl, typeFromUrl, 0, 20, addAlert)); } } fetchData(); }, [searchParams]); useEffect(() => { async function fetchData() { if (searchQuery) { setResults(await search(searchQuery, filter, 0, 20, addAlert)); } } fetchData(); }, [filter]); const handleKeyPress = async (e) => { if (e.key === 'Enter') { setResults(await search(e.target.value, filter, 0, 20)); } } const addAlert = (type, message) => { const newAlert = { type, message, id: Date.now() }; setAlerts([...alerts, newAlert]); }; const onCloseAlert = (alertToRemove) => { setAlerts(alerts.filter(alert => alert !== alertToRemove)); }; return (
{/* MEGA SEARCH BAR */}
setSearchQuery(e.target.value)} onKeyPress={(e) => handleKeyPress(e) } />
{/* FILTERS */}
setFilter("videos")} /> setFilter("channel")} />
{/* RESULTS */}
{results && results.length > 0 ? ( results.map((result, index) => { if (result.type === "video") { return ( ); } else if (result.type === "channel") { return ( ); } }) ) : (

Aucun résultat trouvé

Essayez de modifier votre recherche ou d'utiliser un autre filtre.

)}
) }