"use client"; import Link from "next/link"; import React, { useMemo, useState } from "react"; import { useFlaggedEpisodes } from "@/context/flagged-episodes-context"; import type { DatasetDisplayInfo } from "@/app/[org]/[dataset]/[episode]/fetch-data"; interface SidebarProps { datasetInfo: DatasetDisplayInfo; paginatedEpisodes: number[]; episodeId: number; totalPages: number; currentPage: number; prevPage: () => void; nextPage: () => void; showFlaggedOnly: boolean; onShowFlaggedOnlyChange: (v: boolean) => void; onEpisodeSelect?: (ep: number) => void; } const Sidebar: React.FC = ({ datasetInfo, paginatedEpisodes, episodeId, totalPages, currentPage, prevPage, nextPage, showFlaggedOnly, onShowFlaggedOnlyChange, onEpisodeSelect, }) => { const [mobileVisible, setMobileVisible] = useState(false); const { flagged, count, toggle } = useFlaggedEpisodes(); const displayEpisodes = useMemo(() => { if (!showFlaggedOnly || count === 0) return paginatedEpisodes; return [...flagged].sort((a, b) => a - b); }, [paginatedEpisodes, showFlaggedOnly, flagged, count]); return (
); }; export default Sidebar;