"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 { zodResolver } from "@hookform/resolvers/zod"; import { Loader2 } from "lucide-react"; import Link from "next/link"; import { useRouter } from "next/navigation"; import { useTransition } from "react"; import { type SubmitHandler, useForm } from "react-hook-form"; import { toast } from "sonner"; import { z } from "zod"; const OTPSchema = z.object({ pin: z.string().min(6, { message: "Your one-time password must be 6 characters.", }), }); export default function VerifyOTPForm({ phone_number, }: { phone_number: string }) { const [isPending, startTransition] = useTransition(); const router = useRouter(); console.log("verification in OTP form", phone_number); const { register, handleSubmit, formState: { errors }, } = useForm>({ defaultValues: { pin: "", }, resolver: zodResolver(OTPSchema), }); const onSubmit: SubmitHandler> = (data) => { startTransition(async () => { const isVerified = await authClient.phoneNumber.verify({ phoneNumber: phone_number, code: data.pin, }); console.log({ isVerified }); if (!isVerified.error) { router.push("/devices"); } else { toast.error(isVerified.error.message); } }); }; return (
{errors.pin && (

{errors.pin.message}

)}
Go back to{" "} login
); }