import * as React from 'react';
import {
useState,
useRef
} from 'react';
import { connect } from "react-redux";
import {
FormControl,
Stack,
Input,
Icon
} from 'native-base';
import Theme from '../../components/theme.style';
const styles = {
activeText: {fontFamily: 'Arial', fontSize: 12, color: Theme.colors.accent},
default: {fontFamily: 'Arial', paddingBottom: 0, fontSize: 14, color: Theme.colors.gray},
input: {fontFamily: 'Arial', fontSize: 15},
placeholder: {fontFamily: 'Arial', fontSize: 14, color: Theme.colors.lightGray}
}
CustomForm = (props) => {
let labelRefs = [useRef()]
const [focus, setfocus] = useState(false)
const [activeIndex, setactiveindex] = useState(0)
const renderItem = (prop, index) => {
return (
<>
labelRefs[index - 1] = r}
style={activeIndex == index && focus ? styles.activeText : styles.default}>
{prop.name}
{
setactiveindex(index);
setfocus(true)
prop.onFocus ? prop.onFocus() : null
}}
maxLength={prop.maxLength || 255}
disabled={prop.disabled}
onTouchStart={() => prop.onClick ? prop.onClick() : null}
onChangeText={(val) => prop.onChangeText ? prop.onChangeText(val) : null}
onBlur={(e) => {
setactiveindex(0);
setfocus(false);
prop.onBlur ? prop.onBlur() : null
}}
style={[styles.input, { color: props.app_theme?.theme.colors.text }]}
/>
{prop.icon ? : null}
>)
}
const renderItems = () => {
return props.items.map((item, i) => {
return renderItem(item, i)
})
}
return (
{renderItems()}
)
}
const mapStateToProps = (state) => {
return {
app_theme: state.appThemeReducer.theme
}
}
export default connect(mapStateToProps, null)(CustomForm);