onInputValueChange(e, index, i) {
const name = e.target.name;
let header = this.ruleProperties.Parts.Header.Rows
header[i].Elements[index].Value = e.target.value
console.log(header[i], header[i].Elements[index], "valuessssssss");
this.setState(
{
header: this.buildRowsUsing_antD(header),
},
() => {
console.log(header, "dfsaf");
}
);
}
buildRowsUsing_antD(rows) {
let localRows = [];
let elements = [];
console.log("ressosss", rows);
rows.map((row, i) => {
elements = [];
row.Elements.map((element, index) => {
// console.log(element.Type);
if (element.Type === LIST) {
elements.push(
<td className="view-cell" align="left">
{element.Name}
<br />
<TreeSelect
// className=""
style={{ width: "100%" }}
// value={element.Value}
defaultValue={element.Value}
dropdownStyle={{
maxHeight: 400,
overflow: "auto",
zIndex: "10000",
position: "absolute"
}}
treeData={this.buildTreeData_antD(element.Values)}
// placeholder={element.Name}
// treeDefaultExpandAll
// onChange={this.onInputChange(element.Id, element.Name)}
onChange={val =>
this.onInputChange(element.Id, element.Name, val)
}
/>
</td>
);
} else if (element.Type === "Text") {
// console.log(".......", element.Value);
// -----------------------------------------------------------------------------------
let inputName = element.Name.toLowerCase().replace(" ", "");
// this.setState({ [inputName]: element.Value });
// this.setState({ [inputName]: element.Value }, () =>
elements.push(
<td className="view-cell" align="left">
{element.Name}
<br />
<Input
key={element.Id}
name={inputName}
style={{ width: "100%" }}
// className="rounded"
// label={element.Name}
// defaultValue={element.Value}
value={element.Value}//do changes hereeeeeeeeee
disabled={!element.Editable}
// size={element.Width}
onChange={e => {
this.onInputValueChange(e, index, i);//pass indexxxxxxxx
// this.onInputChange(element.Id, element.Name, e.target.value)
}}
/>
</td>
);
// );
} else if (element.Type === TEXTAREA) {
const inputName = element.Name.toLowerCase().replace(" ", "");
this.setState({ [inputName]: element.Value });
// this.setState({ [inputName]: element.Value }, () =>
elements.push(
<td className="view-cell-full" width="100%">
{element.Name}
<br />
<TextArea
key={element.Id}
name={inputName}
// className="rounded"
componentclass="textarea"
rows={5}
style={{ width: "100%", resize: "auto" }}
// placeholder=""
disabled={!element.Editable}
defaultValue={element.Value}
value={this.state[inputName]}
onChange={e => {
this.onInputValueChange(e); // this.setState({inputVal: e.target.value})
// this.onInputChange(element.Id, element.Name, e.target.value)
//TODO - Assuming that text area is only for constraint field
// this.props.ruleChangeCallBack(null, e.target.value);
}}
/>
</td>
);
// );
} else if (element.Type === BUTTON) {
elements.push(
<Button
key={element.Id}
// onClick={this.onInputChange(element.Id, element.Name, null)}
onClick={() => this.onInputChange(element.Id)}
>
{element.Value}
</Button>
);
} else if (element.Type === LABEL) {
elements.push(
<td className="view-cell-full" align="left">
{element.Value}
</td>
);
}
});
// localRows.push(<div className="view-row">{elements}</div>)
localRows.push(<tr className="view-row">{elements}</tr>);
});
return (
<table width="100%" className="view-table">
<tbody>{localRows}</tbody>
</table>
);
}