import { useEffect, useRef, useState } from "react"; import { useInfiniteQuery, useQuery, useQueryClient } from "@tanstack/react-query"; import { api, type FeedFilters, type Video } from "../lib/api"; import { notify } from "../lib/notifications"; import VideoCard from "./VideoCard"; import PlayerModal from "./PlayerModal"; const PAGE = 60; function matchesView(status: string, show: string): boolean { switch (show) { case "hidden": return status === "hidden"; case "watched": return status === "watched"; case "saved": return status === "saved"; case "unwatched": return status !== "watched" && status !== "hidden"; default: return status !== "hidden"; // all } } export default function Feed({ filters, setFilters, view, }: { filters: FeedFilters; setFilters: (f: FeedFilters) => void; view: "grid" | "list"; }) { const [overrides, setOverrides] = useState>({}); const [activeVideo, setActiveVideo] = useState