@@ -551,24 +551,26 @@ impl MentionableTextInput {
551
551
// Special case for @room mention
552
552
let mut room_avatar_shown = false ;
553
553
554
- if let Some ( room_id) = & self . room_id {
555
- if let Some ( known_room) = get_client ( ) . and_then ( |c| c. get_room ( room_id) ) {
556
- if let Some ( mxc_uri) = known_room. avatar_url ( ) {
557
- let owned_mxc = mxc_uri. to_owned ( ) ;
558
- if let AvatarCacheEntry :: Loaded ( avatar_data) = get_or_fetch_avatar ( cx, owned_mxc) {
559
- let _ = avatar. show_image ( cx, None , |cx, img| {
560
- utils:: load_png_or_jpg ( & img, cx, & avatar_data)
561
- } ) ;
562
- room_avatar_shown = true ;
563
- }
564
- }
565
- }
554
+ if let Some ( avatar_data) = self . room_id
555
+ . as_ref ( )
556
+ . and_then ( |room_id| get_client ( ) . and_then ( |c| c. get_room ( room_id) ) )
557
+ . and_then ( |known_room| known_room. avatar_url ( ) )
558
+ . map ( |mxc_uri| mxc_uri. to_owned ( ) )
559
+ . and_then ( |owned_mxc| match get_or_fetch_avatar ( cx, owned_mxc) {
560
+ AvatarCacheEntry :: Loaded ( data) => Some ( data) ,
561
+ _ => None ,
562
+ } ) {
563
+ // show room avatar
564
+ let _ = avatar. show_image ( cx, None , |cx, img| {
565
+ utils:: load_png_or_jpg ( & img, cx, & avatar_data)
566
+ } ) ;
567
+ room_avatar_shown = true ;
566
568
}
567
569
568
570
// If room avatar couldn't be shown, display the text avatar with red background
569
571
if !room_avatar_shown {
570
572
avatar. show_text ( cx, None , "Room" ) ;
571
- // Set avatar background to red for @room mentions
573
+ // Set the text view's background color to red
572
574
avatar. view ( id ! ( text_view) ) . apply_over ( cx, live ! {
573
575
draw_bg: {
574
576
background_color: #e24d4d
0 commit comments