diff --git a/jsx/src/components/DynamicTable/DynamicTable.jsx b/jsx/src/components/DynamicTable/DynamicTable.jsx index 7e8d5885..77934e0c 100644 --- a/jsx/src/components/DynamicTable/DynamicTable.jsx +++ b/jsx/src/components/DynamicTable/DynamicTable.jsx @@ -1,141 +1,95 @@ -import React, { useState } from "react"; +import React, { useState, useEffect } from "react"; import "./table-select.css"; +import PropTypes from "prop-types"; -export default class DynamicTable extends React.Component { - constructor(props) { - super(props); - this.current_propobject = props.current_propobject; - this.setProp = props.setProp; - this.setPropKeys = props.setPropKeys; - this.setPropValues = props.setPropValues; - let current_keys = []; - let current_values = []; +const DynamicTable = (props) => { + + var [message, setMessage] = useState(""), + [message2, setMessage2] = useState(""); + var {current_propobject} = props; + + var propobject = current_propobject; - for (var property in this.current_propobject) { - current_keys.push(property); - current_values.push(this.current_propobject[property]); - } - //current_keys = this.current_propobject.propkeys - //current_values = this.current_propobject.propvalues - - this.state = { - message: "", - message2: "", - propkeys: current_keys, - propvalues: current_values, - propobject: "", - }; + var [propkeys, setOwnKeys] = useState(Object.keys(current_propobject)); + var [propvalues, setOwnValues] = useState(Object.values(current_propobject)); + var updateMessageKey = (event) => { + setMessage(event.target.value); } - - updateMessageKey(event) { - this.setState({ - message: event.target.value, - }); + var updateMessageValue = (event) => { + setMessage2(event.target.value); } - - updateMessageValue(event) { - this.setState({ - message2: event.target.value, - }); - } - handleRefresh(i) { - var propkeys = this.state.propkeys; - var propvalues = this.state.propvalues; + const handleRefresh = () => { + var propobject = {}; propkeys.forEach((key, i) => (propobject[key] = propvalues[i])); + props.setProp(propobject); + props.setPropKeys(propkeys); + props.setPropValues(propvalues); + setMessage(""); + setMessage2(""); - console.log(propobject); - this.setProp(propobject); - this.setPropKeys(propkeys); - this.setPropValues(propvalues); - - this.setState({ - propkeys: propkeys, - propvalues: propvalues, - message: "", - message2: "", - propobject: propobject, - }); } - handleClick() { - var propkeys = this.state.propkeys; - var propvalues = this.state.propvalues; - if (this.state.message != "") { - if (this.state.message2 != "") { - propkeys.push(this.state.message); - propvalues.push(this.state.message2); + + 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); - this.setProp(propobject); - this.setPropKeys(propkeys); - this.setPropValues(propvalues); - this.setState({ - propkeys: propkeys, - propvalues: propvalues, - message: "", - message2: "", - propobject: propobject, + } + + + const renderKeyRows = () => { + return propkeys.map(function (o, i) { + return ( +
Key | -Value | -|
---|---|---|
{this.renderKeyRows()} | -{this.renderValueRows()} | -{this.renderDelete()} | -