import React, { useState, useEffect } from "react"; import "./table-select.css"; import PropTypes from "prop-types"; const DynamicTable = (props) => { var [message, setMessage] = useState(""), [message2, setMessage2] = useState(""); var { current_propobject } = props; var propobject = current_propobject; if (current_propobject) { var [propkeys, setOwnKeys] = useState(Object.keys(current_propobject)); var [propvalues, setOwnValues] = useState( Object.values(current_propobject), ); } var updateMessageKey = (event) => { setMessage(event.target.value); }; var updateMessageValue = (event) => { setMessage2(event.target.value); }; const handleRefresh = () => { var propobject = {}; propkeys.forEach((key, i) => (propobject[key] = propvalues[i])); props.setProp(propobject); props.setPropKeys(propkeys); props.setPropValues(propvalues); setMessage(""); setMessage2(""); }; const handleClick = () => { if (message != "") { if (message2 != "") { propkeys.push(message); propvalues.push(message2); } else { console.log("Value not valid"); } } else { console.log("Value not valid"); } var propobject = {}; propkeys.forEach((key, i) => (propobject[key] = propvalues[i])); props.setProp(propobject); props.setPropKeys(propkeys); setOwnKeys(propkeys); props.setPropValues(propvalues); setOwnValues(propvalues); setMessage(""); setMessage2(""); console.log(propkeys); console.log(propvalues); console.log(propobject); }; const renderKeyRows = () => { if (propkeys) { return propkeys.map(function (o, i) { return ( { if (e.target.value != "") { propkeys[i] = e.target.value; } else { propvalues.splice(i, 1); propkeys.splice(i, 1); } setOwnKeys(propkeys); props.setPropKeys(propkeys); props.setProp(propobject); handleRefresh(); }} /> ); }); } }; const renderValueRows = () => { if (propvalues) { return propvalues.map(function (o, i) { //console.log("ValRows" +i) //console.log("ValRows" +o) return ( { propvalues[i] = e.target.value; props.setPropValues(propvalues); setOwnValues(propvalues); handleRefresh(); }} /> ); }); } }; const renderDelete = () => { if (propvalues) { return propvalues.map(function (o, i) { return ( ); }); } }; return (
Key Value
{renderKeyRows()} {renderValueRows()} {renderDelete()}
updateMessageKey(e)} /> updateMessageValue(e)} />

); }; DynamicTable.propTypes = { current_keys: PropTypes.array, current_values: PropTypes.array, setPropKeys: PropTypes.array, setPropValues: PropTypes.array, setProp: PropTypes.func, }; export default DynamicTable;