import clsx from "clsx"; import {useState} from "react"; interface Props { type: "email" | "text" | "password" | "tel" | "number"; roundness?: "full" | "xl"; required?: boolean; label?: string; placeholder?: string; defaultValue?: string | number; value?: string | number; className?: string; disabled?: boolean; name: string; onChange: (value: string) => void; } export default function Input({ type, label, placeholder, name, required = false, value, defaultValue, className, roundness = "full", disabled = false, onChange, }: Props) { const [showPassword, setShowPassword] = useState(false); if (type === "password") { return (
{label && ( )}
onChange(e.target.value)} placeholder={placeholder} defaultValue={defaultValue} className="w-full px-8 py-6 text-sm font-normal placeholder:text-mti-gray-cool bg-white rounded-full border border-mti-gray-platinum focus:outline-none" />

setShowPassword((prev) => !prev)} className="text-xs cursor-pointer absolute bottom-1/2 translate-y-1/2 right-8"> {showPassword ? "Hide" : "Show"}

); } return (
{label && ( )} onChange(e.target.value)} min={type === "number" ? 0 : undefined} placeholder={placeholder} className={clsx( "px-8 py-6 text-sm font-normal bg-white border border-mti-gray-platinum focus:outline-none", "placeholder:text-mti-gray-cool disabled:bg-mti-gray-platinum/40 disabled:text-mti-gray-dim disabled:cursor-not-allowed", roundness === "full" ? "rounded-full" : "rounded-xl", )} required={required} defaultValue={defaultValue} />
); }