import React from "react"; import { event } from "react-ga"; import { IoSearch } from "react-icons/io5"; import { searchSong } from "../../helpers"; import { Song } from "../../types/song"; import * as Styled from "./index.styled"; interface Props { currentTry: number; setSelectedSong: React.Dispatch>; } export function Search({ currentTry, setSelectedSong }: Props) { const [value, setValue] = React.useState(""); const [results, setResults] = React.useState([]); React.useEffect(() => { if (value) { setResults(searchSong(value)); } else if (value === "") { setResults([]); } }, [value]); // clear value on selection React.useEffect(() => { setValue(""); }, [currentTry]); return ( {results.map((song) => ( { setSelectedSong(song); setValue(`${song.artist} - ${song.name}`); setResults([]); event({ category: "Player", action: "Chose song", label: `${song.artist} - ${song.name}`, }); }} > {song.artist} - {song.name} ))} setValue(e.currentTarget.value)} placeholder="Search" value={value} /> ); }