import { imageUrl, type SearchResponse } from "api/api" import { useState } from "react" import SearchResultItem from "./SearchResultItem" import SearchResultSelectorItem from "./SearchResultSelectorItem" interface Props { data?: SearchResponse onSelect: Function selectorMode?: boolean } export default function SearchResults({ data, onSelect, selectorMode }: Props) { const [selected, setSelected] = useState(0) const classes = "flex flex-col items-start bg rounded w-full" const hClasses = "pt-4 pb-2" const selectItem = (title: string, id: number) => { if (selected === id) { setSelected(0) onSelect({id: id, title: title}) } else { setSelected(id) onSelect({id: id, title: title}) } } if (data === undefined) { return <> } return (
{ data.artists.length > 0 && <>

Artists

{data.artists.map((artist) => ( selectorMode ? selectItem(artist.name, artist.id)} text={artist.name} img={imageUrl(artist.image, "small")} active={selected === artist.id} /> : onSelect(artist.id)} text={artist.name} img={imageUrl(artist.image, "small")} /> ))}
} { data.albums.length > 0 && <>

Albums

{data.albums.map((album) => ( selectorMode ? selectItem(album.title, album.id)} text={album.title} subtext={album.is_various_artists ? "Various Artists" : album.artists[0].name} img={imageUrl(album.image, "small")} active={selected === album.id} /> : onSelect(album.id)} text={album.title} subtext={album.is_various_artists ? "Various Artists" : album.artists[0].name} img={imageUrl(album.image, "small")} /> ))}
} { data.tracks.length > 0 && <>

Tracks

{data.tracks.map((track) => ( selectorMode ? selectItem(track.title, track.id)} text={track.title} subtext={track.artists.map((a) => a.name).join(', ')} img={imageUrl(track.image, "small")} active={selected === track.id} /> : onSelect(track.id)} text={track.title} subtext={track.artists.map((a) => a.name).join(', ')} img={imageUrl(track.image, "small")} /> ))}
}
) }