diff --git a/frontend/packages/manager/src/components/profiles/PatternsCreator.jsx b/frontend/packages/manager/src/components/profiles/PatternsCreator.jsx index d7dbdb8..f49033d 100644 --- a/frontend/packages/manager/src/components/profiles/PatternsCreator.jsx +++ b/frontend/packages/manager/src/components/profiles/PatternsCreator.jsx @@ -16,19 +16,23 @@ class PatternsCreator extends Component { ] } + let indexes = {}; let item_id = -1; const items = this.patterns.map(value => { item_id += 1; let internal_id = item_id; + let keyID = createDOMID(); + indexes[`${keyID}`] = internal_id; return( - - this.handleItemValue(internal_id, e)}/> + + this.handleItemValue(indexes[`${keyID}`], e)}/> ); }); this.state = { items, + indexes }; props.onPatternsCreator(this.patterns); @@ -45,18 +49,23 @@ class PatternsCreator extends Component { } handleRequestAdd = () => { + let indexes = this.state.indexes; + let internal_id = this.patterns.length; + let keyID = createDOMID(); + indexes[`${keyID}`] = internal_id; this.patterns.push({pattern: ""}); this.setState((state) => ({ items: FormRows.addRow( - this.handleItemValue(state.items.length, e)}/> + this.handleItemValue(indexes[`${keyID}`], e)}/> , state.items ), + indexes: indexes })); }; @@ -67,9 +76,20 @@ class PatternsCreator extends Component { }; handleRequestRemove = (e, { index }) => { - console.log(`pattern: ${this.patterns[index].pattern}, index: ${index}`) + let indexes = this.state.indexes; + let keyToDelete; + for (const keyID in indexes){ + if (indexes[`${keyID}`] > index){ + indexes[`${keyID}`] -= 1; + } + if (indexes[`${keyID}`] == indexes){ + keyToDelete = keyID; + } + } + delete indexes[`${keyToDelete}`]; this.setState((state) => ({ items: FormRows.removeRow(index, state.items), + indexes: indexes })); this.patterns.splice(index, 1); }; diff --git a/frontend/packages/manager/src/components/profiles/VarbindsCreator.jsx b/frontend/packages/manager/src/components/profiles/VarbindsCreator.jsx index 475f215..d14c499 100644 --- a/frontend/packages/manager/src/components/profiles/VarbindsCreator.jsx +++ b/frontend/packages/manager/src/components/profiles/VarbindsCreator.jsx @@ -68,9 +68,9 @@ class VarbindsCreator extends Component { onRequestRemove={this.handleRequestRemove} >
- this.handleItemValueFamily(state.items.length, e)}/> - this.handleItemValueCategory(state.items.length, e)}/> - this.handleItemValueIndex(state.items.length, e)}/> + this.handleItemValueFamily(indexes[`${keyID}`], e)}/> + this.handleItemValueCategory(indexes[`${keyID}`], e)}/> + this.handleItemValueIndex(indexes[`${keyID}`], e)}/>
, state.items @@ -104,7 +104,7 @@ class VarbindsCreator extends Component { delete indexes[`${keyToDelete}`]; this.setState((state) => ({ items: FormRows.removeRow(index, state.items), - indexes, + indexes: indexes, })); this.varBinds.splice(index, 1) };