"use client" import { zodResolver } from "@hookform/resolvers/zod" import { useForm } from "react-hook-form" import { z } from "zod" import { useRouter } from "next/navigation" import { toast } from "sonner" import { Lock } from "lucide-react" import { Button } from "@/components/ui/button" import { Form, FormControl, FormField, FormItem, FormLabel, FormMessage, } from "@/components/ui/form" import { Input } from "@/components/ui/input" import { verifyPlanPassword } from "@/app/actions/auth" const formSchema = z.object({ password: z.string().min(1, "Password is required"), }) export function PlanLoginForm({ planId }: { planId: string }) { const router = useRouter() const form = useForm>({ resolver: zodResolver(formSchema), defaultValues: { password: "", }, }) async function onSubmit(values: z.infer) { try { const success = await verifyPlanPassword(planId, values.password) if (success) { toast.success("Access granted!") router.refresh() // Refresh to trigger server re-render with cookie } else { toast.error("Invalid password") } } catch { toast.error("Something went wrong") } } return (

Enter Plan Password

( Password )} />
) }