Spaces:
Sleeping
Sleeping
File size: 953 Bytes
e85fa50 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import React, { forwardRef } from 'react';
interface TextAreaProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement> {
label?: string;
error?: string;
className?: string;
fullWidth?: boolean;
}
const TextArea = forwardRef<HTMLTextAreaElement, TextAreaProps>(
({ label, error, className = '', fullWidth = true, ...props }, ref) => {
return (
<div className={`mb-4 ${fullWidth ? 'w-full' : ''} ${className}`}>
{label && (
<label className="block text-sm font-medium mb-1 text-gray-700">
{label}
</label>
)}
<textarea
ref={ref}
className={`
ios-textarea
${error ? 'border-red-500' : ''}
`}
{...props}
/>
{error && <p className="mt-1 text-sm text-red-600">{error}</p>}
</div>
);
}
);
TextArea.displayName = 'TextArea';
export default TextArea; |