ContactEdit: fix contacts getting added to groups multiple times

master
Ramzan 4 years ago committed by Tom Hacohen
parent 990f693da8
commit 54c9735074

@ -149,7 +149,7 @@ class ContactEdit extends React.PureComponent<PropsType> {
showDeleteDialog: boolean;
collectionGroups: {};
newGroups: string[];
originalGroups: string[];
originalGroups: {};
};
constructor(props: PropsType) {
@ -244,7 +244,7 @@ class ContactEdit extends React.PureComponent<PropsType> {
Object.values(this.state.collectionGroups).forEach((group: ContactType) => {
if (group.members.includes(this.state.uid)) {
this.state.newGroups.push(group.fn);
this.state.originalGroups.push(group.fn);
this.state.originalGroups[group.fn] = undefined;
}
});
@ -362,7 +362,7 @@ class ContactEdit extends React.PureComponent<PropsType> {
newGroup.comp.updatePropertyWithValue("fn", group.trim());
newGroup.comp.updatePropertyWithValue("member", `urn:uuid:${this.state.uid}`);
this.props.onSave(newGroup, this.state.collectionUid, undefined);
} else if (!this.state.originalGroups[group]) {
} else if (!(group in this.state.originalGroups)) {
const oldGroup = this.state.collectionGroups[group];
const updatedGroup = oldGroup.clone();
updatedGroup.comp.addPropertyWithValue("member", `urn:uuid:${this.state.uid}`);
@ -371,7 +371,7 @@ class ContactEdit extends React.PureComponent<PropsType> {
});
// Remove deleted groups
this.state.originalGroups.filter((x) => !this.state.newGroups.includes(x)).forEach((removed) => {
Object.keys(this.state.originalGroups).filter((x) => !this.state.newGroups.includes(x)).forEach((removed) => {
const deletedGroup = this.state.collectionGroups[removed];
const updatedGroup = deletedGroup.clone();
const members = updatedGroup.members.filter((uid: string) => uid !== this.state.uid);

Loading…
Cancel
Save