@@ -236,6 +236,8 @@ export default class MessagePanel extends React.Component<IProps, IState> {
236
236
// A map of <callId, CallEventGrouper>
237
237
private callEventGroupers = new Map < string , CallEventGrouper > ( ) ;
238
238
239
+ private membersCount = 0 ;
240
+
239
241
constructor ( props , context ) {
240
242
super ( props , context ) ;
241
243
@@ -256,11 +258,14 @@ export default class MessagePanel extends React.Component<IProps, IState> {
256
258
}
257
259
258
260
componentDidMount ( ) {
261
+ this . calculateRoomMembersCount ( ) ;
262
+ this . props . room ?. on ( "RoomState.members" , this . calculateRoomMembersCount ) ;
259
263
this . isMounted = true ;
260
264
}
261
265
262
266
componentWillUnmount ( ) {
263
267
this . isMounted = false ;
268
+ this . props . room ?. off ( "RoomState.members" , this . calculateRoomMembersCount ) ;
264
269
SettingsStore . unwatchSetting ( this . showTypingNotificationsWatcherRef ) ;
265
270
}
266
271
@@ -274,6 +279,10 @@ export default class MessagePanel extends React.Component<IProps, IState> {
274
279
}
275
280
}
276
281
282
+ private calculateRoomMembersCount = ( ) : void => {
283
+ this . membersCount = this . props . room ?. getMembers ( ) . length || 0 ;
284
+ } ;
285
+
277
286
private onShowTypingNotificationsChange = ( ) : void => {
278
287
this . setState ( {
279
288
showTypingNotifications : SettingsStore . getValue ( "showTypingNotifications" ) ,
@@ -711,7 +720,6 @@ export default class MessagePanel extends React.Component<IProps, IState> {
711
720
isLastSuccessful = isLastSuccessful && mxEv . getSender ( ) === MatrixClientPeg . get ( ) . getUserId ( ) ;
712
721
713
722
const callEventGrouper = this . callEventGroupers . get ( mxEv . getContent ( ) . call_id ) ;
714
-
715
723
// use txnId as key if available so that we don't remount during sending
716
724
ret . push (
717
725
< TileErrorBoundary key = { mxEv . getTxnId ( ) || eventId } mxEvent = { mxEv } >
@@ -743,7 +751,7 @@ export default class MessagePanel extends React.Component<IProps, IState> {
743
751
enableFlair = { this . props . enableFlair }
744
752
showReadReceipts = { this . props . showReadReceipts }
745
753
callEventGrouper = { callEventGrouper }
746
- hideSender = { this . props . room ?. getMembers ( ) . length <= 2 && this . props . layout === Layout . Bubble }
754
+ hideSender = { this . membersCount <= 2 && this . props . layout === Layout . Bubble }
747
755
/>
748
756
</ TileErrorBoundary > ,
749
757
) ;
0 commit comments