invite search: avoid crashing with no associations

By using an array, not a set, we stop deduplicating our group index,
pushing redundant information instead. When searching, this prevents a
component fail state where it cannot search a non-existent index for
matches.
This commit is contained in:
Matilde Park 2020-04-02 14:50:29 -04:00
parent 1d59ca7a16
commit 65f8991ac8
4 changed files with 21 additions and 30 deletions

View File

@ -33,15 +33,15 @@ export class InviteSearch extends Component {
let groups = Array.from(Object.keys(this.props.groups));
groups = groups.filter(e => !e.startsWith("/~/"))
.map(e => {
let eachGroup = new Set();
eachGroup.add(e);
let eachGroup = [];
eachGroup.push(e);
if (this.props.associations) {
let name = e;
if (e in this.props.associations) {
name = (this.props.associations[e].metadata.title !== "")
? this.props.associations[e].metadata.title : e;
}
eachGroup.add(name);
eachGroup.push(name);
}
return Array.from(eachGroup);
});

View File

@ -31,20 +31,17 @@ export class InviteSearch extends Component {
peerUpdate() {
let groups = Array.from(Object.keys(this.props.groups));
groups = groups
.filter(e => !e.startsWith("/~/"))
groups = groups.filter(e => !e.startsWith("/~/"))
.map(e => {
let eachGroup = new Set();
eachGroup.add(e);
let eachGroup = [];
eachGroup.push(e);
if (this.props.associations) {
let name = e;
if (e in this.props.associations) {
name =
this.props.associations[e].metadata.title !== ""
? this.props.associations[e].metadata.title
: e;
name = (this.props.associations[e].metadata.title !== "")
? this.props.associations[e].metadata.title : e;
}
eachGroup.add(name);
eachGroup.push(name);
}
return Array.from(eachGroup);
});

View File

@ -31,20 +31,17 @@ export class InviteSearch extends Component {
peerUpdate() {
let groups = Array.from(Object.keys(this.props.groups));
groups = groups
.filter(e => !e.startsWith("/~/"))
groups = groups.filter(e => !e.startsWith("/~/"))
.map(e => {
let eachGroup = new Set();
eachGroup.add(e);
let eachGroup = [];
eachGroup.push(e);
if (this.props.associations) {
let name = e;
if (e in this.props.associations) {
name =
this.props.associations[e].metadata.title !== ""
? this.props.associations[e].metadata.title
: e;
name = (this.props.associations[e].metadata.title !== "")
? this.props.associations[e].metadata.title : e;
}
eachGroup.add(name);
eachGroup.push(name);
}
return Array.from(eachGroup);
});

View File

@ -31,20 +31,17 @@ export class InviteSearch extends Component {
peerUpdate() {
let groups = Array.from(Object.keys(this.props.groups));
groups = groups
.filter(e => !e.startsWith("/~/"))
groups = groups.filter(e => !e.startsWith("/~/"))
.map(e => {
let eachGroup = new Set();
eachGroup.add(e);
let eachGroup = [];
eachGroup.push(e);
if (this.props.associations) {
let name = e;
if (e in this.props.associations) {
name =
this.props.associations[e].metadata.title !== ""
? this.props.associations[e].metadata.title
: e;
name = (this.props.associations[e].metadata.title !== "")
? this.props.associations[e].metadata.title : e;
}
eachGroup.add(name);
eachGroup.push(name);
}
return Array.from(eachGroup);
});