Spaces:
Paused
Paused
"use client"; | |
import { useSearchParams, useRouter } from "next/navigation"; | |
import { RxCross2 } from "react-icons/rx"; | |
import { BsFillMicFill } from "react-icons/bs"; | |
import { AiOutlineSearch } from "react-icons/ai"; | |
import { useState } from "react"; | |
export default function SearchBox() { | |
const searchParams = useSearchParams(); | |
const router = useRouter(); | |
const searchTerm = searchParams.get("searchTerm"); | |
const [term, setTerm] = useState(searchTerm || ""); | |
function handleSubmit(e) { | |
e.preventDefault(); | |
if (!term.trim()) return; | |
router.push(`/search/web?searchTerm=${term}`); | |
} | |
return ( | |
<form | |
className="flex border border-gray-200 rounded-full shadow-lg px-6 py-3 ml-10 mr-5 flex-grow max-w-3xl items-center" | |
onSubmit={handleSubmit} | |
> | |
<input | |
type="text" | |
className="w-full focus:outline-none" | |
value={term} | |
onChange={(e) => setTerm(e.target.value)} | |
/> | |
<RxCross2 | |
className="text-2xl text-gray-500 cursor-pointer sm:mr-2" | |
onClick={() => setTerm("")} | |
/> | |
<BsFillMicFill className="hidden sm:inline-flex text-4xl text-blue-500 pl-4 border-l-2 border-gray-300 mr-3" /> | |
<AiOutlineSearch | |
className="text-2xl hidden sm:inline-flex text-blue-500 cursor-pointer" | |
onClick={handleSubmit} | |
/> | |
</form> | |
); | |
} | |