import React, { forwardRef } from 'react'; import { TextInput, StyleSheet, StyleProp, ViewStyle, KeyboardTypeOptions } from 'react-native'; interface NormalInputProps { placeholder: string | undefined; extendedStyle?: StyleProp; onChangeText: (text: string) => void; type?: KeyboardTypeOptions; secureTextEntry?: boolean; value?: string; editable?: boolean; keyboardType?: KeyboardTypeOptions; autoCapitalize?: 'none' | 'sentences' | 'words' | 'characters' | undefined; textContentType?: | 'none' | 'URL' | 'addressCity' | 'addressCityAndState' | 'addressState' | 'countryName' | 'creditCardNumber' | 'emailAddress' | 'familyName' | 'fullStreetAddress' | 'givenName' | 'jobTitle' | 'location' | 'middleName' | 'name' | 'namePrefix' | 'nameSuffix' | 'nickname' | 'organizationName' | 'postalCode' | 'streetAddressLine1' | 'streetAddressLine2' | 'sublocality' | 'telephoneNumber' | 'username' | 'password' | 'newPassword' | 'oneTimeCode'; autoComplete?: | 'name' | 'nickname' | 'username' | 'password' | 'new-password' | 'one-time-code' | 'email' | 'tel' | 'street-address' | 'postal-code' | 'cc-number' | 'cc-exp' | 'cc-csc' | 'cc-exp-month' | 'cc-exp-year' | 'off' | 'password-new'; } const NormalInput = forwardRef( ( { placeholder, extendedStyle, onChangeText, autoComplete, secureTextEntry = false, value, keyboardType, editable, textContentType = 'oneTimeCode', autoCapitalize }, ref ) => { return ( onChangeText(value)} textContentType={textContentType} editable={editable} autoComplete={autoComplete} autoCapitalize={autoCapitalize} /> ); } ); const styles = StyleSheet.create({ textInput: { maxWidth: '100%', fontSize: 16, borderWidth: 1, padding: 20, borderRadius: 12, borderColor: '#bbbbbb' } }); export default NormalInput;