const App = () => { const [YearList, setYearsData] = useState([]); const [NamesList, setNameData] = useState([]); const [itemList, setItemList] = useState([]); let [year, setYear] = useState(null); let handleYearChange = (e) => { setYear(e.target.value); }; let [searchQuery, setSearchQuery] = useState(''); let handleSearchChange = (e) => { setSearchQuery(e.target.value); }; let [year, setYear] = useState(null); let handleYearChange = (e) => { setYear(e.target.value); }; let [searchQuery, setSearchQuery] = useState(''); let handleSearchChange = (e) => { setSearchQuery(e.target.value); }; const fetchYearList = async () => { try { const response = await fetch('http://localhost:56384/api/YearList'); setYearsData(await response.json()); } catch (error) { console.log('Failed to fetch from Amazon DB', error); } }; const fetchNameList = async () => { try { const response = await fetch('http://localhost:56384/api/NameList'); setNameData(await response.json()); } catch (error) { console.log('Failed to fetch from Amazon DB', error); } }; const fetchItemData = async () => { try { const response = await fetch( `http://localhost:56384/api/RecallSearch?searchText=${searchQuery}&year=${year}` ); const itemData = await response.json(); setItemList(itemData); } catch (error) { console.log('Failed to fetch from Amazon DB', error); } }; const handleSearch = () => { fetchItemData(); }; useEffect(() => { fetchYearList(); fetchNameList(); fetchItemData(); }, []); return ( <div className='App'> <TitleCard /> <input type='text' value={searchQuery} onChange={handleSearchChange} placeholder='Search Amazon Items' /> <select onChange={handleYearChange}> <option value='-- Select year --'> -- Select a Year -- </option> {YearList.map((year) => ( <option key={year} value={year}> {year} </option> ))} </select> //Button that isnt working <button onClick={handleSearch}>Search</button> </div> ); }; export default App;
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter