aboutsummaryrefslogtreecommitdiffstats
path: root/components/ui/Input.tsx
blob: 6843917aa2e160dd8ee652352850b70c786a1c3d (plain) (blame)
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
import { forwardRef } from "react";
import { Text, TextInput, View } from "react-native";

import { cn } from "@/lib/utils";

export interface InputProps
    extends React.ComponentPropsWithoutRef<typeof TextInput> {
    label?: string;
    labelClasses?: string;
    inputClasses?: string;
}

const Input = forwardRef<React.ElementRef<typeof TextInput>, InputProps>(
    ({ className, label, labelClasses, inputClasses, ...props }, ref) => (
        <View className={cn("flex flex-col gap-1.5", className)}>
            {label && <Text className={cn("text-base", labelClasses)}>{label}</Text>}
            <TextInput
                className={cn(
                    inputClasses,
                    "border border-input py-2.5 px-4 rounded-lg",
                )}
                {...props}
            />
        </View>
    ),
);

export { Input };