import * as React from "react"; import { View, TextInput, type TextInputProps } from "react-native"; import { cn } from "~/lib/utils"; interface InputProps extends TextInputProps { containerClassName?: string; borderClassName?: string; placeholderText?: string; placeholderClassName?: string; placeholderColor?: string; textClassName?: string; leftIcon?: React.ReactNode; rightIcon?: React.ReactNode; } const Input = React.forwardRef, InputProps>( ( { containerClassName, borderClassName, className, placeholderText, placeholderClassName, placeholderColor, textClassName, leftIcon, rightIcon, placeholder, ...props }, ref ) => { const resolvedPlaceholder = placeholder ?? placeholderText; // If no container / icons are provided, fall back to a simple input if (!leftIcon && !rightIcon && !containerClassName && !borderClassName) { return ( ); } // Enhanced layout: rounded container with optional left/right icons (search-bar style) return ( {leftIcon ? {leftIcon} : null} {rightIcon ? ( {rightIcon} ) : null} ); } ); Input.displayName = "Input"; export { Input };