import Navbar from '../components/Navbar.jsx'; import HeroImage from '../assets/img/hero.png'; import Recommendations from "../components/Recommendations.jsx"; import {useState, useEffect} from "react"; import { useAuth } from '../contexts/AuthContext'; import TopCreators from "../components/TopCreators.jsx"; import TrendingVideos from "../components/TrendingVideos.jsx"; import { getRecommendations, getTrendingVideos, getTopCreators } from '../services/recommendation.service.js'; import { useNavigate } from 'react-router-dom'; import SeeLater from "../components/SeeLater.jsx"; import {getSeeLater} from "../services/playlist.service.js"; export default function Home() { const { isAuthenticated, user } = useAuth(); const [recommendations, setRecommendations] = useState([]); const [loading, setLoading] = useState(true); const [topCreators, setTopCreators] = useState([]); const [trendingVideos, setTrendingVideos] = useState([]); const [seeLaterVideos, setSeeLaterVideos] = useState([]); const [alerts, setAlerts] = useState([]); const navigate = useNavigate(); useEffect(() => { const fetchData = async () => { if (isAuthenticated) { const token = localStorage.getItem('token'); try { setRecommendations(await getRecommendations(token, addAlert)); } finally { setLoading(false); } } else { try { setRecommendations(await getRecommendations(null, addAlert)); } finally { setLoading(false); } } try { setTrendingVideos(await getTrendingVideos(addAlert)); } finally { setLoading(false); } if (isAuthenticated) { try { const token = localStorage.getItem('token'); setSeeLaterVideos(await getSeeLater(token, addAlert)); } finally { setLoading(false); } } else { try { setTopCreators(await getTopCreators(addAlert)); } finally { setLoading(false); } } }; fetchData(); }, []); const addAlert = (type, message) => { const newAlert = { type, message, id: Date.now() }; setAlerts([...alerts, newAlert]); }; const onCloseAlert = (alertToRemove) => { setAlerts(alerts.filter(alert => alert !== alertToRemove)); }; return (
{/* Hero section */}
{isAuthenticated ? (

Bienvenue {user?.username} !

) : ( <>

Regarder des vidéos comme jamais auparavant

)}
{/* Recommendations section */} {/* Top Creators section */} { isAuthenticated ? ( ) : ( ) } {/* Trending Videos section */}
); }