"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 { Loader } 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
); }