"use server"; import { parseWithZod } from "@conform-to/zod"; import { signupSchema } from "~/lib/schema/auth"; import { signUpEmail } from "~/server/auth"; import { APIError } from "better-auth/api"; export async function signup(prevState: unknown, formData: FormData) { const submission = parseWithZod(formData, { schema: signupSchema }); if (submission.status !== "success") { return submission.reply(); } const { firstName, lastName, email, password } = submission.value; try { await signUpEmail({ body: { name: `${firstName} ${lastName}`, email, password, }, }); } catch (error) { if (error instanceof APIError) { return submission.reply({ fieldErrors: { email: ["Email already exists"] }, resetForm: false, }); } } }