mirror of
https://github.com/urbit/shrub.git
synced 2024-12-24 03:14:30 +03:00
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:
parent
1d59ca7a16
commit
65f8991ac8
@ -33,15 +33,15 @@ export class InviteSearch extends Component {
|
|||||||
let groups = Array.from(Object.keys(this.props.groups));
|
let groups = Array.from(Object.keys(this.props.groups));
|
||||||
groups = groups.filter(e => !e.startsWith("/~/"))
|
groups = groups.filter(e => !e.startsWith("/~/"))
|
||||||
.map(e => {
|
.map(e => {
|
||||||
let eachGroup = new Set();
|
let eachGroup = [];
|
||||||
eachGroup.add(e);
|
eachGroup.push(e);
|
||||||
if (this.props.associations) {
|
if (this.props.associations) {
|
||||||
let name = e;
|
let name = e;
|
||||||
if (e in this.props.associations) {
|
if (e in this.props.associations) {
|
||||||
name = (this.props.associations[e].metadata.title !== "")
|
name = (this.props.associations[e].metadata.title !== "")
|
||||||
? this.props.associations[e].metadata.title : e;
|
? this.props.associations[e].metadata.title : e;
|
||||||
}
|
}
|
||||||
eachGroup.add(name);
|
eachGroup.push(name);
|
||||||
}
|
}
|
||||||
return Array.from(eachGroup);
|
return Array.from(eachGroup);
|
||||||
});
|
});
|
||||||
|
@ -31,20 +31,17 @@ export class InviteSearch extends Component {
|
|||||||
|
|
||||||
peerUpdate() {
|
peerUpdate() {
|
||||||
let groups = Array.from(Object.keys(this.props.groups));
|
let groups = Array.from(Object.keys(this.props.groups));
|
||||||
groups = groups
|
groups = groups.filter(e => !e.startsWith("/~/"))
|
||||||
.filter(e => !e.startsWith("/~/"))
|
|
||||||
.map(e => {
|
.map(e => {
|
||||||
let eachGroup = new Set();
|
let eachGroup = [];
|
||||||
eachGroup.add(e);
|
eachGroup.push(e);
|
||||||
if (this.props.associations) {
|
if (this.props.associations) {
|
||||||
let name = e;
|
let name = e;
|
||||||
if (e in this.props.associations) {
|
if (e in this.props.associations) {
|
||||||
name =
|
name = (this.props.associations[e].metadata.title !== "")
|
||||||
this.props.associations[e].metadata.title !== ""
|
? this.props.associations[e].metadata.title : e;
|
||||||
? this.props.associations[e].metadata.title
|
|
||||||
: e;
|
|
||||||
}
|
}
|
||||||
eachGroup.add(name);
|
eachGroup.push(name);
|
||||||
}
|
}
|
||||||
return Array.from(eachGroup);
|
return Array.from(eachGroup);
|
||||||
});
|
});
|
||||||
|
@ -31,20 +31,17 @@ export class InviteSearch extends Component {
|
|||||||
|
|
||||||
peerUpdate() {
|
peerUpdate() {
|
||||||
let groups = Array.from(Object.keys(this.props.groups));
|
let groups = Array.from(Object.keys(this.props.groups));
|
||||||
groups = groups
|
groups = groups.filter(e => !e.startsWith("/~/"))
|
||||||
.filter(e => !e.startsWith("/~/"))
|
|
||||||
.map(e => {
|
.map(e => {
|
||||||
let eachGroup = new Set();
|
let eachGroup = [];
|
||||||
eachGroup.add(e);
|
eachGroup.push(e);
|
||||||
if (this.props.associations) {
|
if (this.props.associations) {
|
||||||
let name = e;
|
let name = e;
|
||||||
if (e in this.props.associations) {
|
if (e in this.props.associations) {
|
||||||
name =
|
name = (this.props.associations[e].metadata.title !== "")
|
||||||
this.props.associations[e].metadata.title !== ""
|
? this.props.associations[e].metadata.title : e;
|
||||||
? this.props.associations[e].metadata.title
|
|
||||||
: e;
|
|
||||||
}
|
}
|
||||||
eachGroup.add(name);
|
eachGroup.push(name);
|
||||||
}
|
}
|
||||||
return Array.from(eachGroup);
|
return Array.from(eachGroup);
|
||||||
});
|
});
|
||||||
|
@ -31,20 +31,17 @@ export class InviteSearch extends Component {
|
|||||||
|
|
||||||
peerUpdate() {
|
peerUpdate() {
|
||||||
let groups = Array.from(Object.keys(this.props.groups));
|
let groups = Array.from(Object.keys(this.props.groups));
|
||||||
groups = groups
|
groups = groups.filter(e => !e.startsWith("/~/"))
|
||||||
.filter(e => !e.startsWith("/~/"))
|
|
||||||
.map(e => {
|
.map(e => {
|
||||||
let eachGroup = new Set();
|
let eachGroup = [];
|
||||||
eachGroup.add(e);
|
eachGroup.push(e);
|
||||||
if (this.props.associations) {
|
if (this.props.associations) {
|
||||||
let name = e;
|
let name = e;
|
||||||
if (e in this.props.associations) {
|
if (e in this.props.associations) {
|
||||||
name =
|
name = (this.props.associations[e].metadata.title !== "")
|
||||||
this.props.associations[e].metadata.title !== ""
|
? this.props.associations[e].metadata.title : e;
|
||||||
? this.props.associations[e].metadata.title
|
|
||||||
: e;
|
|
||||||
}
|
}
|
||||||
eachGroup.add(name);
|
eachGroup.push(name);
|
||||||
}
|
}
|
||||||
return Array.from(eachGroup);
|
return Array.from(eachGroup);
|
||||||
});
|
});
|
||||||
|
Loading…
Reference in New Issue
Block a user