import { useState } from "react"; import { useTranslation } from "next-i18next"; import { FiSearch } from "react-icons/fi"; import { SiDuckduckgo, SiMicrosoftbing, SiGoogle, SiBaidu } from "react-icons/si"; const providers = { google: { name: "Google", url: "https://www.google.com/search?q=", icon: SiGoogle, }, duckduckgo: { name: "DuckDuckGo", url: "https://duckduckgo.com/?q=", icon: SiDuckduckgo, }, bing: { name: "Bing", url: "https://www.bing.com/search?q=", icon: SiMicrosoftbing, }, baidu: { name: "Baidu", url: "https://www.baidu.com/s?wd=", icon: SiBaidu, }, custom: { name: "Custom", url: false, icon: FiSearch, }, }; export default function Search({ options }) { const { t } = useTranslation(); const provider = providers[options.provider]; const [query, setQuery] = useState(""); if (!provider) { return null; } function handleSubmit(event) { const q = encodeURIComponent(query); if (provider.url) { window.open(`${provider.url}${q}`, options.target || "_blank"); } else { window.open(`${options.url}${q}`, options.target || "_blank"); } event.preventDefault(); event.target.reset(); setQuery(""); } return (
setQuery(s.currentTarget.value)} required autoCapitalize="off" autoCorrect="off" autoComplete="off" // eslint-disable-next-line jsx-a11y/no-autofocus autoFocus={options.focus} /> ); }