"use client"; import { Button } from "@/components/ui/button"; import { Input } from "@/components/ui/input"; import { Label } from "@/components/ui/label"; import { authClient } from "@/lib/auth/client"; import { ErrorContext } from "better-auth/react"; import { Loader2 } from "lucide-react"; import { useRouter } from "next/navigation"; import { useState } from "react"; import { toast } from "sonner"; export function SignInForm( { captchaToken }: { captchaToken: string | null } ) { const router = useRouter(); const [username, setUsername] = useState(""); const [password, setPassword] = useState(""); const [loading, setLoading] = useState(false); const handleSignIn = async (e: React.FormEvent) => { e.preventDefault(); await authClient.signIn.username( { username, password, fetchOptions: { headers: { "x-captcha-response": captchaToken ?? "", }, }, }, { onRequest: () => { setLoading(true); }, onSuccess: (d: any) => { console.log(d) setLoading(false); toast.success("Signed in successfully"); router.push("/"); }, onError: (ctx: ErrorContext) => { setLoading(false); toast.error(ctx.error.message); }, } ); }; return (
); }