@@ -14,27 +14,23 @@ See the License for the specific language governing permissions and
1414limitations under the License.
1515*/
1616
17- import { getHttpUriForMxc } from "matrix-js-sdk/src/content-repo" ;
1817import { RoomMember } from "matrix-js-sdk/src/models/room-member" ;
1918import { User } from "matrix-js-sdk/src/models/user" ;
2019import { Room } from "matrix-js-sdk/src/models/room" ;
2120
22- import { MatrixClientPeg } from './MatrixClientPeg' ;
2321import DMRoomMap from './utils/DMRoomMap' ;
22+ import { mediaFromMxc } from "./customisations/Media" ;
2423
2524export type ResizeMethod = "crop" | "scale" ;
2625
2726// Not to be used for BaseAvatar urls as that has similar default avatar fallback already
2827export function avatarUrlForMember ( member : RoomMember , width : number , height : number , resizeMethod : ResizeMethod ) {
2928 let url : string ;
30- if ( member && member . getAvatarUrl ) {
31- url = member . getAvatarUrl (
32- MatrixClientPeg . get ( ) . getHomeserverUrl ( ) ,
29+ if ( member ?. getMxcAvatarUrl ( ) ) {
30+ url = mediaFromMxc ( member . getMxcAvatarUrl ( ) ) . getThumbnailOfSourceHttp (
3331 Math . floor ( width * window . devicePixelRatio ) ,
3432 Math . floor ( height * window . devicePixelRatio ) ,
3533 resizeMethod ,
36- false ,
37- false ,
3834 ) ;
3935 }
4036 if ( ! url ) {
@@ -47,16 +43,12 @@ export function avatarUrlForMember(member: RoomMember, width: number, height: nu
4743}
4844
4945export function avatarUrlForUser ( user : User , width : number , height : number , resizeMethod ?: ResizeMethod ) {
50- const url = getHttpUriForMxc (
51- MatrixClientPeg . get ( ) . getHomeserverUrl ( ) , user . avatarUrl ,
46+ if ( ! user . avatarUrl ) return null ;
47+ return mediaFromMxc ( user . avatarUrl ) . getThumbnailOfSourceHttp (
5248 Math . floor ( width * window . devicePixelRatio ) ,
5349 Math . floor ( height * window . devicePixelRatio ) ,
5450 resizeMethod ,
5551 ) ;
56- if ( ! url || url . length === 0 ) {
57- return null ;
58- }
59- return url ;
6052}
6153
6254function isValidHexColor ( color : string ) : boolean {
@@ -154,15 +146,8 @@ export function getInitialLetter(name: string): string {
154146export function avatarUrlForRoom ( room : Room , width : number , height : number , resizeMethod ?: ResizeMethod ) {
155147 if ( ! room ) return null ; // null-guard
156148
157- const explicitRoomAvatar = room . getAvatarUrl (
158- MatrixClientPeg . get ( ) . getHomeserverUrl ( ) ,
159- width ,
160- height ,
161- resizeMethod ,
162- false ,
163- ) ;
164- if ( explicitRoomAvatar ) {
165- return explicitRoomAvatar ;
149+ if ( room . getMxcAvatarUrl ( ) ) {
150+ return mediaFromMxc ( room . getMxcAvatarUrl ( ) ) . getThumbnailOfSourceHttp ( width , height , resizeMethod ) ;
166151 }
167152
168153 // space rooms cannot be DMs so skip the rest
@@ -177,14 +162,8 @@ export function avatarUrlForRoom(room: Room, width: number, height: number, resi
177162 // then still try to show any avatar (pref. other member)
178163 otherMember = room . getAvatarFallbackMember ( ) ;
179164 }
180- if ( otherMember ) {
181- return otherMember . getAvatarUrl (
182- MatrixClientPeg . get ( ) . getHomeserverUrl ( ) ,
183- width ,
184- height ,
185- resizeMethod ,
186- false ,
187- ) ;
165+ if ( otherMember ?. getMxcAvatarUrl ( ) ) {
166+ return mediaFromMxc ( otherMember . getMxcAvatarUrl ( ) ) . getThumbnailOfSourceHttp ( width , height , resizeMethod ) ;
188167 }
189168 return null ;
190169}
0 commit comments