mirror of
https://github.com/ansible/awx.git
synced 2026-02-12 15:14:45 -03:30
Fix bug where lookup parent state is not updated on toggleSelected
This commit is contained in:
@@ -32,7 +32,7 @@ class Lookup extends React.Component {
|
|||||||
|
|
||||||
this.state = {
|
this.state = {
|
||||||
isModalOpen: false,
|
isModalOpen: false,
|
||||||
lookupSelectedItems: props.value || [],
|
lookupSelectedItems: [...props.value] || [],
|
||||||
results: [],
|
results: [],
|
||||||
count: 0,
|
count: 0,
|
||||||
page: 1,
|
page: 1,
|
||||||
@@ -101,17 +101,27 @@ class Lookup extends React.Component {
|
|||||||
};
|
};
|
||||||
|
|
||||||
toggleSelected (row) {
|
toggleSelected (row) {
|
||||||
const { lookupSelectedItems } = this.state;
|
const { name, onLookupSave } = this.props;
|
||||||
const selectedIndex = lookupSelectedItems
|
const { lookupSelectedItems: updatedSelectedItems, isModalOpen } = this.state;
|
||||||
|
|
||||||
|
const selectedIndex = updatedSelectedItems
|
||||||
.findIndex(selectedRow => selectedRow.id === row.id);
|
.findIndex(selectedRow => selectedRow.id === row.id);
|
||||||
|
|
||||||
if (selectedIndex > -1) {
|
if (selectedIndex > -1) {
|
||||||
lookupSelectedItems.splice(selectedIndex, 1);
|
updatedSelectedItems.splice(selectedIndex, 1);
|
||||||
this.setState({ lookupSelectedItems });
|
this.setState({ lookupSelectedItems: updatedSelectedItems });
|
||||||
} else {
|
} else {
|
||||||
this.setState(prevState => ({
|
this.setState(prevState => ({
|
||||||
lookupSelectedItems: [...prevState.lookupSelectedItems, row]
|
lookupSelectedItems: [...prevState.lookupSelectedItems, row]
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Updates the selected items from parent state
|
||||||
|
// This handles the case where the user removes chips from the lookup input
|
||||||
|
// while the modal is closed
|
||||||
|
if (!isModalOpen) {
|
||||||
|
onLookupSave(updatedSelectedItems, name);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
handleModalToggle () {
|
handleModalToggle () {
|
||||||
|
|||||||
Reference in New Issue
Block a user