import { DetailedHTMLProps, TextareaHTMLAttributes, useMemo } from "react";
import cn from "../../utils/classnames";
interface TextareaProps extends DetailedHTMLProps<
TextareaHTMLAttributes,
HTMLTextAreaElement
> {
variant?: "default" | "minimal";
error?: boolean;
}
export default function Textarea({
variant = "default",
error = false,
className = "",
value,
...props
}: TextareaProps) {
const baseClasses =
"w-full font-sans transition-all duration-200 resize-none focus:outline-none";
const variantClasses = {
default:
"px-4 py-3 border border-border rounded-md bg-white hover:border-primary-300 focus:border-primary focus:ring-2 focus:ring-primary/20",
minimal:
"px-4 py-3 border-0 bg-transparent hover:bg-muted/30 focus:bg-white focus:shadow-sm rounded-md",
};
const errorClasses = error
? "border-destructive focus:border-destructive focus:ring-destructive/20"
: "";
const disabledClasses = "disabled:cursor-default";
const fontSizeClass = useMemo(() => {
const length = typeof value === "string" ? value.length : 0;
console.log(length);
if (length === 0) return "text-2xl";
if (length < 50) return "text-2xl";
if (length < 200) return "text-xl";
if (length < 300) return "text-lg";
return "text-base";
}, [value]);
return (
);
}