import React, {useEffect, useState} from 'react'; import TextField from 'react-native-material-textfield/src/components/field'; import {ScrollView, StyleSheet} from 'react-native'; import {Picker, Text, View} from 'native-base'; import IconedButton from '../view/iconed-button.jsx'; import {POS_PICKER} from '../../constants/component-types'; import set from '@babel/runtime/helpers/esm/set'; const FieldEditor = (props) => { const label = props.data.label; const constantValues = props.pos | ''; const [values, setValues] = useState(props.data.values); const [editingValue, setEditingValue] = useState( props.data.values[props.id] || props.data.values[0], ); const [selectedValue, setSelectedValue] = useState( props.data.values[props.id] || props.data.values[0], ); const [finiteValue, setFiniteValue] = useState( props.data.values[props.id] || props.data.values[0], ); const [editing, isEditing] = useState(false); const [] = useState(); const [] = useState(); const [] = useState(); const select = (value) => { setSelectedValue(value); setFiniteValue(value); setEditingValue(value); }; const typing = (text) => { setEditingValue(text); }; const setTyped = () => { try { let valuesSet = new Set(props.data.values); valuesSet.add(editingValue); const valuesArray = Array.from(valuesSet).slice(); setValues(valuesArray); isEditing(!editing); if (selectedValue !== editingValue) { select(valuesArray[valuesArray.length - 1]); } } catch (e) { console.log('error in field-editor.jsx', e); } }; useEffect(() => { if (props.type === POS_PICKER) { props.data.values.forEach((value, id) => { if (value === finiteValue) { props.hasChanged(id); } }); } else { props.hasChanged(finiteValue); } }, [finiteValue]); useEffect(() => { setValues(props.data.values); console.log('EXECUTIN'); }, [constantValues]); // useEffect(() => { // // if(props.type !== POS_PICKER){ // if(constantValues !== props.data.values){ // console.log("EXECUTIN") // } // } // }, [constantValues, props.data.values]) const styles = StyleSheet.create({ wrapper: {}, inner: { display: 'flex', justifyContent: 'space-between', flexDirection: 'row', alignItems: 'center', alignContent: 'center', }, row: { display: 'flex', flexDirection: 'row', justifyContent: 'space-between', width: 90, }, button: { width: 40, height: 40, display: 'flex', justifyContent: 'center', alignItems: 'center', }, tfWrapper: { width: editing ? '75%' : '84%', }, pickerLabel: { color: '#00000050', fontSize: 12, marginLeft: 2, }, hr: { height: 1, width: '100%', backgroundColor: '#00000070', }, }); return ( {props.type === POS_PICKER ? ( {props.data.label} select(value)}> {props.data.values.map((value, id) => { return ; })} ) : ( {editing ? ( typing(text)} autoFocus={true} /> ) : ( {props.data.label} select(value)}> {props.data.values.map((value, id) => { return ( ); })} )} {editing ? ( { isEditing(!editing); setEditingValue(selectedValue); }} /> ) : ( { isEditing(!editing); }} /> )} )} ); }; export default FieldEditor;