Merge "feat: 移除首页标签分类功能,默认显示推荐内容"
diff --git a/Merge/front/src/components/HomeFeed.jsx b/Merge/front/src/components/HomeFeed.jsx
index 0f3c0fe..e30eb73 100644
--- a/Merge/front/src/components/HomeFeed.jsx
+++ b/Merge/front/src/components/HomeFeed.jsx
@@ -11,11 +11,6 @@
import MediaPreview from './MediaPreview'
import '../style/HomeFeed.css'
-const categories = [
- '推荐','穿搭','美食','彩妆','影视',
- '职场','情感','家居','游戏','旅行','健身'
-]
-
const recommendModes = [
{ label: '标签推荐', value: 'tag' },
{ label: '协同过滤推荐', value: 'cf' },
@@ -31,9 +26,8 @@
// 获取当前用户ID,如果未登录则使用默认值
const getCurrentUserId = () => {
const userInfo = getUserInfo()
- return userInfo?.id ? String(userInfo.id) : DEFAULT_USER_ID
- }
- const [activeCat, setActiveCat] = useState('推荐')
+ return userInfo?.id ? String(userInfo.id) : DEFAULT_USER_ID }
+
const [items, setItems] = useState([])
const [loading, setLoading] = useState(true)
const [error, setError] = useState(null)
@@ -43,13 +37,12 @@
const [recCFNum, setRecCFNum] = useState(20)
const [useSearchRecommend, setUseSearchRecommend] = useState(false) // 是否使用搜索推荐模式 // JWLLL 搜索推荐功能函数
const [userMap, setUserMap] = useState({}) // user_id: {username, nickname}
-
- // JWLLL搜索推荐内容
+ // JWLLL搜索推荐内容
const fetchSearchContent = useCallback(async (keyword = '') => {
setLoading(true)
setError(null)
try {
- const data = await searchAPI.search(keyword || activeCat, activeCat === '推荐' ? undefined : activeCat)
+ const data = await searchAPI.search(keyword, undefined)
// 新增:拉取详情,保证和推荐一致
const detailed = await Promise.all(
(data.results || []).map(async item => {
@@ -86,7 +79,7 @@
setItems([])
}
setLoading(false)
- }, [activeCat])
+ }, [])
// 标签推荐
const fetchTagRecommend = useCallback(async (tags) => {
setLoading(true)
@@ -255,7 +248,6 @@
}))
setUserMap(map)
}
-
useEffect(() => {
// 原始数据加载函数
const loadPosts = async () => {
@@ -289,15 +281,14 @@
}
// 根据模式选择加载方式
- if (activeCat === '推荐' && useSearchRecommend) {
+ if (useSearchRecommend) {
fetchUserTagsAndRecommend()
} else {
loadPosts()
}
- }, [activeCat, useSearchRecommend, fetchUserTagsAndRecommend])
- // 切换推荐模式时的额外处理
+ }, [useSearchRecommend, fetchUserTagsAndRecommend]) // 切换推荐模式时的额外处理
useEffect(() => {
- if (activeCat === '推荐' && useSearchRecommend) {
+ if (useSearchRecommend) {
fetchUserTagsAndRecommend()
}
// eslint-disable-next-line
@@ -325,10 +316,9 @@
{/* 数据源切换 */}
<div style={{marginBottom:12, display:'flex', alignItems:'center', gap:16}}>
<span>数据源:</span>
- <div style={{display:'flex', gap:8}}>
- <button
+ <div style={{display:'flex', gap:8}}> <button
className={!useSearchRecommend ? 'rec-btn styled active' : 'rec-btn styled'}
- onClick={() => {setUseSearchRecommend(false); setActiveCat('推荐')}}
+ onClick={() => setUseSearchRecommend(false)}
type="button"
style={{
borderRadius: 20,
@@ -341,10 +331,9 @@
transition: 'all 0.2s',
outline: 'none',
}}
- >原始数据</button>
- <button
+ >原始数据</button> <button
className={useSearchRecommend ? 'rec-btn styled active' : 'rec-btn styled'}
- onClick={() => {setUseSearchRecommend(true); setActiveCat('推荐')}}
+ onClick={() => setUseSearchRecommend(true)}
type="button"
style={{
borderRadius: 20,
@@ -359,10 +348,8 @@
}}
>智能推荐</button>
</div>
- </div>
-
- {/* 推荐模式切换,仅在推荐页显示且使用搜索推荐时 */}
- {activeCat === '推荐' && useSearchRecommend && (
+ </div> {/* 推荐模式切换,仅在使用智能推荐时显示 */}
+ {useSearchRecommend && (
<div style={{marginBottom:12, display:'flex', alignItems:'center', gap:16}}>
<span style={{marginRight:8}}>推荐模式:</span>
<div style={{display:'flex', gap:8}}>
@@ -408,30 +395,7 @@
onChange={e => setSearch(e.target.value)}
/>
<button type="submit" className="search-btn">搜索</button>
- </form>
-
- {/* 顶部分类 */}
- <nav className="feed-tabs">
- {categories.map(cat => (
- <button
- key={cat}
- className={cat === activeCat ? 'tab active' : 'tab'}
- onClick={() => {
- setActiveCat(cat);
- setSearch('');
- if (useSearchRecommend) {
- if (cat === '推荐') {
- fetchUserTagsAndRecommend()
- } else {
- fetchSearchContent()
- }
- }
- }}
- >
- {cat}
- </button>
- ))}
- </nav> {/* 状态提示 */}
+ </form> {/* 状态提示 */}
{loading ? (
<div className="loading">加载中…</div>
) : error ? (