MELS use latest avatar rather than the first avatar
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>pull/21833/head
parent
8a9d38b702
commit
48d9aa2c3e
|
@ -401,16 +401,21 @@ export default class MemberEventListSummary extends React.Component<IProps> {
|
||||||
render() {
|
render() {
|
||||||
const eventsToRender = this.props.events;
|
const eventsToRender = this.props.events;
|
||||||
|
|
||||||
// Object mapping user IDs to an array of IUserEvents:
|
// Map user IDs to latest Avatar Member. ES6 Maps are ordered by when the key was created,
|
||||||
const userEvents: Record<string, IUserEvents[]> = {};
|
// so this works perfectly for us to match event order whilst storing the latest Avatar Member
|
||||||
|
const latestUserAvatarMember = new Map<string, RoomMember>();
|
||||||
|
|
||||||
const avatarMembers: RoomMember[] = [];
|
// Object mapping user IDs to an array of IUserEvents
|
||||||
|
const userEvents: Record<string, IUserEvents[]> = {};
|
||||||
eventsToRender.forEach((e, index) => {
|
eventsToRender.forEach((e, index) => {
|
||||||
const userId = e.getStateKey();
|
const userId = e.getStateKey();
|
||||||
// Initialise a user's events
|
// Initialise a user's events
|
||||||
if (!userEvents[userId]) {
|
if (!userEvents[userId]) {
|
||||||
userEvents[userId] = [];
|
userEvents[userId] = [];
|
||||||
if (e.target) avatarMembers.push(e.target);
|
}
|
||||||
|
|
||||||
|
if (e.target) {
|
||||||
|
latestUserAvatarMember.set(userId, e.target);
|
||||||
}
|
}
|
||||||
|
|
||||||
let displayName = userId;
|
let displayName = userId;
|
||||||
|
@ -440,7 +445,7 @@ export default class MemberEventListSummary extends React.Component<IProps> {
|
||||||
onToggle={this.props.onToggle}
|
onToggle={this.props.onToggle}
|
||||||
startExpanded={this.props.startExpanded}
|
startExpanded={this.props.startExpanded}
|
||||||
children={this.props.children}
|
children={this.props.children}
|
||||||
summaryMembers={avatarMembers}
|
summaryMembers={[...latestUserAvatarMember.values()]}
|
||||||
summaryText={this.generateSummary(aggregate.names, orderedTransitionSequences)} />;
|
summaryText={this.generateSummary(aggregate.names, orderedTransitionSequences)} />;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue