import React, { useEffect, useRef, ReactNode } from "react"; import SongRow, { PlayState } from "./SongRow"; import { PlaylistItem } from "../api/player"; interface SongTableProps { songs: PlaylistItem[]; isPlaying: boolean auxControlProvider?: (song: PlaylistItem) => ReactNode; onDelete: (index: number) => void; onSkipTo: (index: number) => void; } const SongTable: React.FC = ({ songs, isPlaying, auxControlProvider, onDelete, onSkipTo }) => { const nowPlayingIndex = songs.findIndex(song => song.playing ?? false); const songTableRef = useRef(null); useEffect(() => { const songTable = songTableRef.current; if (songTable) { songTable.scrollTop = nowPlayingIndex * 100; } }, [nowPlayingIndex]); return (
{songs.map((song, index) => ( onDelete(index)} onPlay={() => onSkipTo(index)} /> ))}
); }; export default SongTable;