@@ -18,6 +18,7 @@ limitations under the License.
1818
1919var React = require ( 'react' ) ;
2020var MatrixClientPeg = require ( 'matrix-react-sdk/lib/MatrixClientPeg' ) ;
21+ var sdk = require ( 'matrix-react-sdk' ) ;
2122
2223var RoomSettingsController = require ( 'matrix-react-sdk/lib/controllers/molecules/RoomSettings' )
2324
@@ -65,6 +66,8 @@ module.exports = React.createClass({
6566 } ,
6667
6768 render : function ( ) {
69+ var ChangeAvatar = sdk . getComponent ( 'molecules.ChangeAvatar' ) ;
70+
6871 var topic = this . props . room . currentState . getStateEvents ( 'm.room.topic' , '' ) ;
6972 if ( topic ) topic = topic . getContent ( ) . topic ;
7073
@@ -76,6 +79,8 @@ module.exports = React.createClass({
7679
7780 var power_levels = this . props . room . currentState . getStateEvents ( 'm.room.power_levels' , '' ) ;
7881
82+ var events_levels = power_levels . events || { } ;
83+
7984 if ( power_levels ) {
8085 power_levels = power_levels . getContent ( ) ;
8186
@@ -91,8 +96,7 @@ module.exports = React.createClass({
9196 if ( power_levels . kick == undefined ) kick_level = 50 ;
9297 if ( power_levels . redact == undefined ) redact_level = 50 ;
9398
94- var user_levels = power_levels . users || [ ] ;
95- var events_levels = power_levels . events || [ ] ;
99+ var user_levels = power_levels . users || { } ;
96100
97101 var user_id = MatrixClientPeg . get ( ) . credentials . userId ;
98102
@@ -124,6 +128,20 @@ module.exports = React.createClass({
124128 var can_change_levels = false ;
125129 }
126130
131+ var room_avatar_level = parseInt ( power_levels . state_default || 0 ) ;
132+ if ( events_levels [ 'm.room.avatar' ] !== undefined ) {
133+ room_avatar_level = events_levels [ 'm.room.avatar' ] ;
134+ }
135+ var can_set_room_avatar = current_user_level >= room_avatar_level ;
136+
137+ var change_avatar ;
138+ if ( can_set_room_avatar ) {
139+ change_avatar = < div >
140+ < h3 > Room Icon</ h3 >
141+ < ChangeAvatar room = { this . props . room } />
142+ </ div > ;
143+ }
144+
127145 var banned = this . props . room . getMembersWithMemership ( "ban" ) ;
128146
129147 return (
@@ -207,6 +225,7 @@ module.exports = React.createClass({
207225 ) ;
208226 } ) }
209227 </ div >
228+ { change_avatar }
210229 </ div >
211230 ) ;
212231 }
0 commit comments