Spaces:
Paused
Paused
"use client"; | |
import { useState } from "react"; | |
import { useRouter } from "next/navigation"; | |
import { AiOutlineSearch } from "react-icons/ai"; | |
const PresearchPrompt = "Please extract search terms from the user’s question. The search terms is a concise sentence, which will be searched on Google to obtain relevant information to answer the user’s question, too generalized search terms doesn’t help. Please provide no more than two search terms. Please provide the most relevant search terms only, the search terms should directly correspond to the user’s question. Please separate different search items with commas, with no quote marks. The user’s question is:" | |
export default function HomeSearch() { | |
const router = useRouter(); | |
const [input, setInput] = useState(""); | |
const [randomSearchLoading, setRandomSearchLoading] = useState(false); | |
function handleSubmit(e) { | |
e.preventDefault(); | |
if (!input.trim()) return; | |
router.push(`/search/web?searchTerm=${input}`); | |
} | |
async function randomSearch() { | |
setRandomSearchLoading(true); | |
// | |
const response = await fetch("https://random-word-api.herokuapp.com/word") | |
.then((res) => res.json()) | |
if (!response) return; | |
router.push(`/search/web?searchTerm=${response}`); | |
setRandomSearchLoading(false); | |
} | |
return ( | |
<> | |
<form | |
onSubmit={handleSubmit} | |
className="flex w-full mt-5 mx-auto max-w-[90%] border border-gray-200 px-5 py-3 rounded-full hover:shadow-md focus-within:shadow-md transition-shadow sm:max-w-xl lg:max-w-2xl" | |
> | |
<AiOutlineSearch className="text-xl text-gray-500 mr-3" /> | |
<input | |
type="text" | |
className="flex-grow focus:outline-none" | |
onChange={(e) => setInput(e.target.value)} | |
value={input} | |
/> | |
</form> | |
<div className="flex flex-col space-y-2 sm:space-y-0 sm:space-x-4 justify-center sm:flex-row mt-8 "> | |
<button onClick={handleSubmit} className="btn"> | |
Google Search | |
</button> | |
<button | |
disabled={randomSearchLoading} | |
onClick={randomSearch} | |
className="btn flex items-center justify-center disabled:opacity-80" | |
> | |
{randomSearchLoading ? ( | |
<img | |
src="spinner.svg" | |
alt="loading..." | |
className="h-6 text-center" | |
/> | |
) : ( | |
"I'm feeling lucky" | |
)} | |
</button> | |
</div> | |
</> | |
); | |
} | |