React Search Component
by Ste Royle
JavaScript
import { useState } from "react"
import { Form, Button } from "react-bootstrap";
import { useParams, useNavigate } from "react-router-dom";
const SearchBox = () => {
const navigate = useNavigate();
const { keyword: urlKeyword } = useParams();
const [keyword, setKeyword] = useState(urlKeyword || '');
const submitHandler = (e) => {
e.preventDefault();
if (keyword.trim()) {
setKeyword('');
navigate(`/search/${keyword}`);
} else {
navigate('/');
}
}
return (
<Form onSubmit={submitHandler}>
<Form.Control
type="text"
name="q"
onChange={(e) => setKeyword(e.target.value)}
value={keyword}
placeholder="Search Products..."
>
</Form.Control>
<Button type="submit">Search</Button>
</Form>
)
}
export default SearchBox;