Improve video recommendations with server-side search filtering
Refactors the video recommendation fetching logic to utilize the existing search endpoint on the backend for filtering, improving efficiency and consistency. Replit-Commit-Author: Agent Replit-Commit-Session-Id: d7424866-83d1-4486-a212-ac12b4c7becf Replit-Commit-Checkpoint-Type: full_checkpoint Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/8cc42625-c1f5-4e43-99bd-77f2c4dedee2/d7424866-83d1-4486-a212-ac12b4c7becf/ROSfcPv
This commit is contained in:
parent
b92d7324ac
commit
99d29646e2
@ -62,29 +62,21 @@ export default function VideoPage() {
|
||||
enabled: !!videoId,
|
||||
});
|
||||
|
||||
// Fetch recommended videos (excluding current video)
|
||||
// Fetch recommended videos using the same search endpoint as main page
|
||||
const { data: recommendedResponse } = useQuery<VideosResponse>({
|
||||
queryKey: ["/api/videos"],
|
||||
queryFn: () => fetch("/api/videos?limit=20&offset=0").then(res => res.json()),
|
||||
queryKey: ["/api/videos", sidebarSearchQuery],
|
||||
queryFn: () => {
|
||||
const url = sidebarSearchQuery && sidebarSearchQuery.length >= 2
|
||||
? `/api/videos?limit=50&offset=0&search=${encodeURIComponent(sidebarSearchQuery)}`
|
||||
: "/api/videos?limit=50&offset=0";
|
||||
return fetch(url).then(res => res.json());
|
||||
},
|
||||
enabled: !!videoId,
|
||||
});
|
||||
|
||||
// Filter recommended videos based on search and exclude current video
|
||||
// Simply exclude current video - search filtering is now done server-side
|
||||
const filteredRecommendedVideos = (recommendedResponse?.videos || [])
|
||||
.filter(v => v.id !== videoId)
|
||||
.filter(video => {
|
||||
if (!sidebarSearchQuery || sidebarSearchQuery.length < 2) return true;
|
||||
const searchLower = sidebarSearchQuery.toLowerCase();
|
||||
const titleMatch = video.title?.toLowerCase().includes(searchLower);
|
||||
const descMatch = video.description?.toLowerCase().includes(searchLower);
|
||||
|
||||
// Debug logging
|
||||
if (sidebarSearchQuery.length >= 2) {
|
||||
console.log(`Search "${sidebarSearchQuery}": Video "${video.title}" - Title match: ${titleMatch}, Desc match: ${descMatch}`);
|
||||
}
|
||||
|
||||
return titleMatch || descMatch;
|
||||
});
|
||||
.filter(v => v.id !== videoId);
|
||||
|
||||
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user