import * as React from "react"; import { Pressable, TextInput, View } from "react-native"; import Animated, { FadeIn, FadeOut } from "react-native-reanimated"; import { TailwindResolver } from "@/components/TailwindResolver"; import { Button } from "@/components/ui/Button"; import { useColorScheme } from "@/lib/useColorScheme"; import { cn } from "@/lib/utils"; import { useAugmentedRef, useControllableState } from "@rn-primitives/hooks"; import { Icon } from "@roninoss/icons"; import type { SearchInputProps } from "./types"; const SearchInput = React.forwardRef< React.ElementRef, SearchInputProps >( ( { value: valueProp, onChangeText: onChangeTextProp, placeholder = "Search...", containerClassName, iconContainerClassName, className, onCancel, ...props }, ref, ) => { const { colors } = useColorScheme(); const inputRef = useAugmentedRef({ ref, methods: { focus, blur, clear } }); const [value = "", onChangeText] = useControllableState({ prop: valueProp, defaultProp: valueProp ?? "", onChange: onChangeTextProp, }); function focus() { inputRef.current?.focus(); } function blur() { inputRef.current?.blur(); } function clear() { onCancel?.(); onChangeText(""); } return ( ); }, ); SearchInput.displayName = "SearchInput"; export { SearchInput };