1
1
/*
2
2
Copyright 2017 Vector Creations Ltd
3
+ Copyright 2019 Michael Telatynski <[email protected] >
3
4
4
5
Licensed under the Apache License, Version 2.0 (the "License");
5
6
you may not use this file except in compliance with the License.
@@ -17,7 +18,6 @@ limitations under the License.
17
18
import React from 'react' ;
18
19
import PropTypes from 'prop-types' ;
19
20
import MatrixClientPeg from '../../../MatrixClientPeg' ;
20
- import { ContentRepo } from 'matrix-js-sdk' ;
21
21
import { _t } from '../../../languageHandler' ;
22
22
import sdk from '../../../index' ;
23
23
import Modal from '../../../Modal' ;
@@ -31,42 +31,44 @@ module.exports = React.createClass({
31
31
mxEvent : PropTypes . object . isRequired ,
32
32
} ,
33
33
34
- onAvatarClick : function ( name ) {
35
- const httpUrl = MatrixClientPeg . get ( ) . mxcUrlToHttp ( this . props . mxEvent . getContent ( ) . url ) ;
34
+ onAvatarClick : function ( ) {
35
+ const cli = MatrixClientPeg . get ( ) ;
36
+ const ev = this . props . mxEvent ;
37
+ const httpUrl = cli . mxcUrlToHttp ( ev . getContent ( ) . url ) ;
38
+
39
+ const room = cli . getRoom ( this . props . mxEvent . getRoomId ( ) ) ;
40
+ const text = _t ( '%(senderDisplayName)s changed the avatar for %(roomName)s' , {
41
+ senderDisplayName : ev . sender && ev . sender . name ? ev . sender . name : ev . getSender ( ) ,
42
+ roomName : room ? room . name : '' ,
43
+ } ) ;
44
+
36
45
const ImageView = sdk . getComponent ( "elements.ImageView" ) ;
37
46
const params = {
38
47
src : httpUrl ,
39
- name : name ,
48
+ name : text ,
40
49
} ;
41
50
Modal . createDialog ( ImageView , params , "mx_Dialog_lightbox" ) ;
42
51
} ,
43
52
44
53
render : function ( ) {
45
54
const ev = this . props . mxEvent ;
46
55
const senderDisplayName = ev . sender && ev . sender . name ? ev . sender . name : ev . getSender ( ) ;
47
- const BaseAvatar = sdk . getComponent ( "avatars.BaseAvatar" ) ;
48
-
49
- const room = MatrixClientPeg . get ( ) . getRoom ( this . props . mxEvent . getRoomId ( ) ) ;
50
- const name = _t ( '%(senderDisplayName)s changed the avatar for %(roomName)s' , {
51
- senderDisplayName : senderDisplayName ,
52
- roomName : room ? room . name : '' ,
53
- } ) ;
56
+ const RoomAvatar = sdk . getComponent ( "avatars.RoomAvatar" ) ;
54
57
55
58
if ( ! ev . getContent ( ) . url || ev . getContent ( ) . url . trim ( ) . length === 0 ) {
56
59
return (
57
60
< div className = "mx_TextualEvent" >
58
- { _t ( '%(senderDisplayName)s removed the room avatar.' , { senderDisplayName : senderDisplayName } ) }
61
+ { _t ( '%(senderDisplayName)s removed the room avatar.' , { senderDisplayName} ) }
59
62
</ div >
60
63
) ;
61
64
}
62
65
63
- const url = ContentRepo . getHttpUriForMxc (
64
- MatrixClientPeg . get ( ) . getHomeserverUrl ( ) ,
65
- ev . getContent ( ) . url ,
66
- Math . ceil ( 14 * window . devicePixelRatio ) ,
67
- Math . ceil ( 14 * window . devicePixelRatio ) ,
68
- 'crop' ,
69
- ) ;
66
+ const room = MatrixClientPeg . get ( ) . getRoom ( ev . getRoomId ( ) ) ;
67
+ // Provide all arguments to RoomAvatar via oobData because the avatar is historic
68
+ const oobData = {
69
+ avatarUrl : ev . getContent ( ) . url ,
70
+ name : room ? room . name : "" ,
71
+ } ;
70
72
71
73
return (
72
74
< div className = "mx_RoomAvatarEvent" >
@@ -75,8 +77,8 @@ module.exports = React.createClass({
75
77
{
76
78
'img' : ( ) =>
77
79
< AccessibleButton key = "avatar" className = "mx_RoomAvatarEvent_avatar"
78
- onClick = { this . onAvatarClick . bind ( this , name ) } >
79
- < BaseAvatar width = { 14 } height = { 14 } url = { url } name = { name } />
80
+ onClick = { this . onAvatarClick } >
81
+ < RoomAvatar width = { 14 } height = { 14 } oobData = { oobData } />
80
82
</ AccessibleButton > ,
81
83
} )
82
84
}
0 commit comments