import React from 'react'; import { StyleSheet, TextInput, TouchableOpacity, Text, View, TextInputProps, Keyboard, NativeSyntheticEvent, TextInputSubmitEditingEventData, } from 'react-native'; import Animated, { interpolate, interpolateColors, } from 'react-native-reanimated'; import {SCREEN_HEIGHT} from '../../utils'; import Icon from 'react-native-vector-icons/Feather'; const AnimatedTextInput = Animated.createAnimatedComponent(TextInput); const AnimatedIcon = Animated.createAnimatedComponent(Icon); interface SearchBarProps extends TextInputProps { onCancel: () => void; top: Animated.Value; } const SearchBar: React.FC = ({ onFocus, onBlur, onChangeText, value, onCancel, top, style, }) => { const opacity: Animated.Node = interpolate(top, { inputRange: [-SCREEN_HEIGHT, 0], outputRange: [0, 1], }); const marginRight: Animated.Node = interpolate(top, { inputRange: [-SCREEN_HEIGHT, 0], outputRange: [0, 57], }); const color: Animated.Node = interpolateColors(top, { inputRange: [-SCREEN_HEIGHT, 0], outputColorRange: ['#fff', '#000'], }); const handleSubmit = ( e: NativeSyntheticEvent, ) => { e.preventDefault(); Keyboard.dismiss(); }; return ( Cancel ); }; const styles = StyleSheet.create({ container: { height: 40, flexDirection: 'row', alignItems: 'stretch', zIndex: 2, }, inputContainer: { flexGrow: 1, flexDirection: 'row', alignItems: 'center', paddingHorizontal: 8, borderWidth: 1.5, borderRadius: 20, backgroundColor: '#fff3', }, searchIcon: { marginRight: 8, }, input: { flex: 1, fontSize: 16, color: '#fff', }, cancelButton: { position: 'absolute', height: '100%', justifyContent: 'center', paddingHorizontal: 5, }, cancelText: { color: '#818181', fontWeight: '600', }, }); export default SearchBar;