"use client" import * as React from "react" import { OTPInput, OTPInputContext } from "input-otp" import { MinusIcon } from "lucide-react" import { cn } from "@/lib/utils" const ErrorContext = React.createContext(false) function InputOTP({ className, containerClassName, error, ...props }: React.ComponentProps & { containerClassName?: string error?: boolean }) { return ( ) } function InputOTPGroup({ className, ...props }: React.ComponentProps<"div">) { return (
) } function InputOTPSlot({ index, className, ...props }: React.ComponentProps<"div"> & { index: number mask?: boolean }) { const inputOTPContext = React.useContext(OTPInputContext) const hasError = React.useContext(ErrorContext) const { char, hasFakeCaret, isActive } = inputOTPContext?.slots[index] ?? {} const slots = inputOTPContext?.slots ?? [] const isAllFilled = slots.length >= 6 && slots.every(slot => slot.char) return (
{isAllFilled || (char && !isActive) ? "●" : char} {hasFakeCaret && (
)}
) } function InputOTPSeparator({ ...props }: React.ComponentProps<"div">) { return (
) } export { InputOTP, InputOTPGroup, InputOTPSlot, InputOTPSeparator }