"use client"; import { zodResolver } from "@hookform/resolvers/zod"; import { useForm } from "react-hook-form"; import { z } from "zod"; import { toast } from "@/hooks/use-toast"; import { Form, FormControl, FormDescription, FormField, FormItem, FormMessage, } from "@/components/ui/form"; import { InputOTP, InputOTPGroup, InputOTPSlot, } from "@/components/ui/input-otp"; import { SubmitButton } from "../submit-button"; import { Card, CardContent, CardDescription, CardHeader, CardTitle, } from "../ui/card"; import { cn } from "@/lib/utils"; import { verifyOtpAction } from "@/actions/auth/verify-otp"; import { useSearchParams } from "next/navigation"; import { Input } from "../ui/input"; const FormSchema = z.object({ token: z.string().min(6, { message: "Your one-time password must be 6 characters.", }), }); interface InputOTPFormProps { className?: string; [key: string]: any; } export function VerifyOtpForm({ className, ...props }: InputOTPFormProps) { const searchParams = useSearchParams(); const email = searchParams.get("email") || ""; const form = useForm>({ resolver: zodResolver(FormSchema), defaultValues: { token: "", }, }); async function onSubmit(data: z.infer) { try { } catch (error) { toast({ variant: "destructive", title: "Error", description: "Failed to verify OTP. Please try again.", }); } } return (
One-Time Password One time password is a security feature that helps protect your data
( {[...Array(6)].map((_, index) => ( ))} Please enter the one-time password sent to {email}. )} />
Submit
By clicking continue, you agree to our Terms of Service{" "} and Privacy Policy.
); }