@@ -89,6 +89,17 @@ module.exports = withMatrixClient(React.createClass({
89
89
cli . on ( "RoomMember.membership" , this . onRoomMemberMembership ) ;
90
90
cli . on ( "accountData" , this . onAccountData ) ;
91
91
92
+ const enablePresenceByHsUrl = SdkConfig . get ( ) [ "enable_presence_by_hs_url" ] ;
93
+ this . _showPresence = true ;
94
+ if ( enablePresenceByHsUrl && enablePresenceByHsUrl [ cli . baseUrl ] !== undefined ) {
95
+ this . _showPresence = enablePresenceByHsUrl [ cli . baseUrl ] ;
96
+ }
97
+ cli . getCapabilities ( ) . then ( ( caps ) => {
98
+ if ( ! caps [ "m.presence" ] ) {
99
+ return ;
100
+ }
101
+ this . _showPresence = caps [ "m.presence" ] [ "receive_enabled" ] ;
102
+ } ) ;
92
103
this . _checkIgnoreState ( ) ;
93
104
} ,
94
105
@@ -922,15 +933,8 @@ module.exports = withMatrixClient(React.createClass({
922
933
const powerLevelEvent = room ? room . currentState . getStateEvents ( "m.room.power_levels" , "" ) : null ;
923
934
const powerLevelUsersDefault = powerLevelEvent ? powerLevelEvent . getContent ( ) . users_default : 0 ;
924
935
925
- const enablePresenceByHsUrl = SdkConfig . get ( ) [ "enable_presence_by_hs_url" ] ;
926
- const hsUrl = this . props . matrixClient . baseUrl ;
927
- let showPresence = true ;
928
- if ( enablePresenceByHsUrl && enablePresenceByHsUrl [ hsUrl ] !== undefined ) {
929
- showPresence = enablePresenceByHsUrl [ hsUrl ] ;
930
- }
931
-
932
936
let presenceLabel = null ;
933
- if ( showPresence ) {
937
+ if ( this . _showPresence ) {
934
938
const PresenceLabel = sdk . getComponent ( 'rooms.PresenceLabel' ) ;
935
939
presenceLabel = < PresenceLabel activeAgo = { presenceLastActiveAgo }
936
940
currentlyActive = { presenceCurrentlyActive }
0 commit comments