Textarea
Displays a form textarea or a component that looks like a textarea.
Installation
bash npx @moe/cli add textarea Copy/paste the following code to @/components/ui/textarea.tsx
import * as React from "react";
import { TextInput, type TextInputProps } from "react-native";
import { cn } from "@/lib/utils";
const Textarea = React.forwardRef<
React.ElementRef<typeof TextInput>,
TextInputProps
>(
(
{
className,
multiline = true,
numberOfLines = 4,
placeholderClassName,
...props
},
ref,
) => {
return (
<TextInput
ref={ref}
className={cn(
"web:flex min-h-[80px] w-full rounded-md border border-input bg-background px-3 py-2 text-base lg:text-sm native:text-lg native:leading-[1.25] text-foreground placeholder:text-muted-foreground web:ring-offset-background web:focus-visible:outline-none web:focus-visible:ring-2 web:focus-visible:ring-ring web:focus-visible:ring-offset-2",
props.editable === false && "opacity-50 web:cursor-not-allowed",
className,
)}
placeholderClassName={cn("text-muted-foreground", placeholderClassName)}
multiline={multiline}
numberOfLines={numberOfLines}
textAlignVertical="top"
{...props}
/>
);
},
);
Textarea.displayName = "Textarea";
export { Textarea };Usage
import { Textarea } from "@moe/registry/ui/textarea";
export function TextareaDemo() {
return <Textarea placeholder="Type your message here." />;
}Props
| Prop | Type | Default | Description |
|---|---|---|---|
placeholder | string | - | Placeholder text |
value | string | - | The controlled value |
onChangeText | (text: string) => void | - | Event handler called when text changes |
disabled | boolean | false | Whether the textarea is disabled |