blob: 8270145968043b777b0ba9c6cb77a4a033eecd51 [file] [log] [blame]
import React, { useEffect, useState } from 'react';
import axios from 'axios';
import './Recommend.css';
import { useUser } from '../../../context/UserContext';
const Recommend = () => {
const { user } = useUser();
const [popularSeeds, setPopularSeeds] = useState([]);
const [recommendedSeeds, setRecommendedSeeds] = useState([]);
useEffect(() => {
// 获取热门资源
axios
.get('/echo/recommendation/popular', { params: { limit: 16 } })
.then((res) => setPopularSeeds(res.data))
.catch((err) => console.error('获取热门资源失败', err));
}, []);
useEffect(() => {
// 获取个性化推荐
if (user && user.userId) {
axios
.get(`/echo/recommendation/seeds/${user.userId}`)
.then((res) => setRecommendedSeeds(res.data))
.catch((err) => console.error('获取个性化推荐失败', err));
}
}, [user]);
const renderSeedCard = (seed) => (
<div className="seed-card" key={seed.id}>
<img src={seed.coverUrl || '/default-cover.jpg'} alt={seed.title} />
<div className="title">{seed.title}</div>
</div>
);
return (
<div className="recommendation-page">
<h2>🎬 正在热映</h2>
<div className="seed-list">{popularSeeds.map(renderSeedCard)}</div>
<h2>🎯 个性化推荐</h2>
{user ? (
<div className="seed-list">{recommendedSeeds.map(renderSeedCard)}</div>
) : (
<div className="login-reminder">请登录以获取个性化推荐</div>
)}
</div>
);
};
export default Recommend;