"use client"; import { LightButton } from "@/design-system/base/button/button"; import { Input } from "@/design-system/base/input/input"; import { useTranslations } from "next-intl"; import { useState } from "react"; import { useRouter } from "next/navigation"; import { POPULAR_LANGUAGES } from "./constants"; interface SearchFormProps { defaultQueryLang?: string; defaultDefinitionLang?: string; } export function SearchForm({ defaultQueryLang = "english", defaultDefinitionLang = "chinese" }: SearchFormProps) { const t = useTranslations("dictionary"); const [queryLang, setQueryLang] = useState(defaultQueryLang); const [definitionLang, setDefinitionLang] = useState(defaultDefinitionLang); const router = useRouter(); const handleSubmit = (e: React.FormEvent) => { e.preventDefault(); const formData = new FormData(e.currentTarget); const searchQuery = formData.get("searchQuery") as string; if (!searchQuery?.trim()) return; const params = new URLSearchParams({ q: searchQuery, ql: queryLang, dl: definitionLang, }); router.push(`/dictionary?${params.toString()}`); }; return ( <> {/* 页面标题 */}

{t("title")}

{t("description")}

{/* 搜索表单 */}
{t("search")}
{/* 语言设置 */}
{t("languageSettings")}
{/* 查询语言 */}
{POPULAR_LANGUAGES.map((lang) => ( setQueryLang(lang.code)} className="text-sm px-3 py-1" > {lang.nativeName} ))}
{/* 释义语言 */}
{POPULAR_LANGUAGES.map((lang) => ( setDefinitionLang(lang.code)} className="text-sm px-3 py-1" > {lang.nativeName} ))}
); }