import { useNavigate } from "react-router-dom"; import { usePlayer } from "../../context/playerContext"; import type { Song } from "../../utils/types"; interface SongResultProps { song: Song; } const toEmbedUrl = (url: string): string => { try { const parsed = new URL(url); if ( (parsed.hostname === "www.youtube.com" || parsed.hostname === "youtube.com") && parsed.searchParams.has("v") ) { return `https://www.youtube.com/embed/${parsed.searchParams.get("v")}`; } if (parsed.hostname === "youtu.be") { return `https://www.youtube.com/embed${parsed.pathname}`; } return url; } catch { return url; } }; const SongResult = ({ song }: SongResultProps) => { const navigate = useNavigate(); const { play, currentSong } = usePlayer(); return (
navigate(`/songs/${song.id}`)} className="flex items-center gap-4 p-3 rounded-lg hover:bg-white/5 cursor-pointer transition-colors group" > {song.title} { (e.target as HTMLImageElement).src = "/favicon.png"; }} />

{song.title}

Song • {song.releasedBy}

{song.genre} {song.link && ( )}
); }; export default SongResult;