diff --git a/src/components/views/elements/MemberEventListSummary.js b/src/components/views/elements/MemberEventListSummary.js index b460a3513e..69bcd7c203 100644 --- a/src/components/views/elements/MemberEventListSummary.js +++ b/src/components/views/elements/MemberEventListSummary.js @@ -156,21 +156,21 @@ module.exports = React.createClass({ let senders = new Set(eventsToRender.map((e) => e.getSender())); senders.forEach( (userId) => { - // Only push the last event if it isn't the same membership as the first - let userEvents = eventsToRender.filter((e) => { return e.getSender() === userId; }); - if (userEvents.length === 1) { - filteredEvents.push(userEvents[0]); - return; - } - + // NB: These may be the same event, in which case the lastEvent is used + // because prev_content should != content let firstEvent = userEvents[0]; let lastEvent = userEvents[userEvents.length - 1]; - if (firstEvent.getContent().membership === lastEvent.getContent().membership) { + // Membership BEFORE eventsToRender + let previousMembership = firstEvent.getPrevContent().membership || "leave"; + + // Otherwise, if the last membership event differs from previousMembership, + // use that. + if (previousMembership !== lastEvent.getContent().membership) { filteredEvents.push(lastEvent); } }