import { IonBackButton, IonButton, IonButtons, IonCol, IonContent, IonGrid, IonHeader, IonImg, IonList, IonNote, IonPage, IonRow, IonSearchbar, IonText, IonTitle, IonToolbar, useIonLoading, useIonViewDidEnter, } from '@ionic/react'; import { useState } from 'react'; import { useRef } from 'react'; import styles from './Categories.module.scss'; import { performSearch } from '../utils'; import { RecipeListItem } from '../components/RecipeListItem'; const Search = () => { const searchRef = useRef(null); const [searchResults, setSearchResults] = useState([]); const [showLoader, hideLoader] = useIonLoading(); useIonViewDidEnter(() => { searchRef.current.setFocus(); }); const search = async () => { showLoader({ cssClass: 'customLoader', message: 'Searching...', duration: 9999999, spinner: 'dots', }); const searchTerm = searchRef.current.value; const data = await performSearch(searchTerm); setSearchResults(data.hits); setTimeout(() => { hideLoader(); }, 300); }; return ( Search Recipes
Search
{searchResults.length > 0 && ( {searchResults.map((result, index) => { const { recipe } = result; return ; })} )} {searchResults.length < 1 && ( <> Search for a recipe then select from the list to view it

For development purposes, only 20 results will be returned

)}
); }; export default Search;