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