import { useState, useEffect, useCallback } from "react" import { json } from 'd3'; export const ChannelSearch = (apiKey) => { const [searchName, setSearchName] = useState('Markiplier'); const [needFetch, setNeedFetch] = useState(false); const [searchResult, setSearchResult] = useState(false); const handleChange = (event) => { setSearchName(event.target.value); }; const handleSubmit = (event) => { event.preventDefault(); setNeedFetch(true); }; //fetches the data const fetchData = () => { const url = "https://youtube.googleapis.com/youtube/v3/search?part=snippet&q="+searchName+"&type=channel&key="+apiKey.apiKey; json(url).then((data) => {setSearchResult(data);}); }; useEffect(() => { if(needFetch){ setNeedFetch(false); fetchData(); } }, [needFetch]); const InputForm = useCallback(() => { return
}, [] ); if(!searchResult) { return <> } const ChannelResultsTable = () =>{ return <> {searchResult.items.map(function(d, idx){ return (
  • {d.snippet.title}: {d.snippet.channelId}
  • ) })} } return <> }