import { useState } from "react"; /** * Custom search field component including a clear search functionality */ type SearchFieldProps = { onSearchStringChanged: (searchString : string) => void } /** * @param SearchFieldProps consisting of an initial searchString and an onSearchStringChanged handler * @returns Custom search field component */ export default function SearchField({onSearchStringChanged} : SearchFieldProps){ const [currentSearchString, setCurrentSearchString] = useState("") const changeSearchString = (newSearchString : string) => { console.log(newSearchString); setCurrentSearchString(newSearchString); onSearchStringChanged(newSearchString) } return (
{/* Input of searchfield Defines border and behavior. Requires extra padding at both sides to accomodate the icons */} changeSearchString(e.target.value) } /> {/* Right icon: X Clears search string on click */} {/* Left icon: Looking glass */}
) }