"use client" import { useForm } from "react-hook-form" import { zodResolver } from "@hookform/resolvers/zod" import { z } from "zod" import { useState } from "react" const schema = z.object({ firstName: z.string().min(1, "请填写名字"), lastName: z.string().min(1, "请填写姓氏"), email: z.string().email("请输入有效的邮箱地址"), country: z.string().min(1, "请填写所在国家或地区"), phone: z.string().min(1, "请填写联系方式"), company: z.string().min(1, "请填写公司或项目名称"), companySize: z.string().min(1, "请选择团队规模"), message: z.string().min(10, "请至少写 10 个字符说明你的需求"), }) type FormData = z.infer export default function ContactForm() { const [status, setStatus] = useState<"idle" | "success" | "error">("idle") const { register, handleSubmit, formState: { errors, isSubmitting }, reset, } = useForm({ resolver: zodResolver(schema), }) const onSubmit = async (data: FormData) => { try { await new Promise((resolve) => setTimeout(resolve, 1000)) console.log("Contact form:", data) setStatus("success") reset() } catch { setStatus("error") } } if (status === "success") { return (

已收到你的信息,我们会尽快联系你

如果你在消息里写了团队规模、代码栈和交付约束,后续沟通会更快进入正题。

) } return (