Skip to content

Commit

Permalink
fix: fixed error with adding and deleting conditions' patterns while …
Browse files Browse the repository at this point in the history
…editing
  • Loading branch information
wojtekzyla committed Sep 19, 2022
1 parent 02efd96 commit 45870c9
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -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(
<FormRows.Row index={internal_id} key={createDOMID()} onRequestRemove={this.handleRequestRemove}>
<Text defaultValue={value.pattern} onChange={e => this.handleItemValue(internal_id, e)}/>
<FormRows.Row index={internal_id} key={keyID} onRequestRemove={this.handleRequestRemove}>
<Text defaultValue={value.pattern} onChange={e => this.handleItemValue(indexes[`${keyID}`], e)}/>
</FormRows.Row>
);
});

this.state = {
items,
indexes
};

props.onPatternsCreator(this.patterns);
Expand All @@ -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(
<FormRows.Row
index={state.items.length}
key={createDOMID()}
key={keyID}
onRequestRemove={this.handleRequestRemove}
>
<Text onChange={e => this.handleItemValue(state.items.length, e)}/>
<Text onChange={e => this.handleItemValue(indexes[`${keyID}`], e)}/>
</FormRows.Row>,
state.items
),
indexes: indexes
}));
};

Expand All @@ -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);
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -68,9 +68,9 @@ class VarbindsCreator extends Component {
onRequestRemove={this.handleRequestRemove}
>
<div style={{ display: 'flex' }}>
<Text onChange={e => this.handleItemValueFamily(state.items.length, e)}/>
<Text onChange={e => this.handleItemValueCategory(state.items.length, e)}/>
<Text onChange={e => this.handleItemValueIndex(state.items.length, e)}/>
<Text onChange={e => this.handleItemValueFamily(indexes[`${keyID}`], e)}/>
<Text onChange={e => this.handleItemValueCategory(indexes[`${keyID}`], e)}/>
<Text onChange={e => this.handleItemValueIndex(indexes[`${keyID}`], e)}/>
</div>
</FormRows.Row>,
state.items
Expand Down Expand Up @@ -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)
};
Expand Down

0 comments on commit 45870c9

Please sign in to comment.