From 2cee8a4b01548ead46420434d8e5fa0e2a5c8503 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 11 May 2023 19:29:48 +0100 Subject: [PATCH] Specify lazy loading for avatars (#10866) * Specify lazy loading for avatars so browser doesn't fetch eagerly if off-screen * Update snapshots --- src/components/views/avatars/BaseAvatar.tsx | 2 ++ .../structures/__snapshots__/MessagePanel-test.tsx.snap | 1 + .../structures/__snapshots__/RoomView-test.tsx.snap | 7 +++++++ .../structures/__snapshots__/SpaceHierarchy-test.tsx.snap | 2 ++ .../structures/__snapshots__/UserMenu-test.tsx.snap | 1 + .../views/avatars/__snapshots__/RoomAvatar-test.tsx.snap | 3 +++ .../views/beacon/__snapshots__/BeaconMarker-test.tsx.snap | 1 + .../beacon/__snapshots__/BeaconViewDialog-test.tsx.snap | 1 + .../beacon/__snapshots__/DialogSidebar-test.tsx.snap | 1 + .../views/elements/__snapshots__/Pill-test.tsx.snap | 8 ++++++++ test/components/views/messages/TextualBody-test.tsx | 2 +- .../messages/__snapshots__/MLocationBody-test.tsx.snap | 1 + .../messages/__snapshots__/TextualBody-test.tsx.snap | 6 ++++++ .../__snapshots__/RoomSummaryCard-test.tsx.snap | 1 + .../right_panel/__snapshots__/UserInfo-test.tsx.snap | 1 + .../rooms/__snapshots__/RoomPreviewBar-test.tsx.snap | 2 ++ .../views/rooms/__snapshots__/RoomTile-test.tsx.snap | 1 + .../__snapshots__/AddExistingToSpaceDialog-test.tsx.snap | 1 + .../exportUtils/__snapshots__/HTMLExport-test.ts.snap | 6 +++--- 19 files changed, 44 insertions(+), 4 deletions(-) diff --git a/src/components/views/avatars/BaseAvatar.tsx b/src/components/views/avatars/BaseAvatar.tsx index 8728673b589..5e9356d09ed 100644 --- a/src/components/views/avatars/BaseAvatar.tsx +++ b/src/components/views/avatars/BaseAvatar.tsx @@ -135,6 +135,7 @@ const BaseAvatar: React.FC = (props) => { ); const imgNode = ( = (props) => { } else { return ( @@ -124,6 +125,7 @@ exports[`RoomView for a local room in state ERROR should match the snapshot 1`] aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 24px; height: 24px;" /> @@ -213,6 +215,7 @@ exports[`RoomView for a local room in state ERROR should match the snapshot 1`] aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 52px; height: 52px;" /> @@ -311,6 +314,7 @@ exports[`RoomView for a local room in state NEW should match the snapshot 1`] = aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 24px; height: 24px;" /> @@ -400,6 +404,7 @@ exports[`RoomView for a local room in state NEW should match the snapshot 1`] = aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 52px; height: 52px;" /> @@ -572,6 +577,7 @@ exports[`RoomView for a local room in state NEW that is encrypted should match t aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 24px; height: 24px;" /> @@ -660,6 +666,7 @@ exports[`RoomView for a local room in state NEW that is encrypted should match t aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 52px; height: 52px;" /> diff --git a/test/components/structures/__snapshots__/SpaceHierarchy-test.tsx.snap b/test/components/structures/__snapshots__/SpaceHierarchy-test.tsx.snap index 25340face14..83c347affe8 100644 --- a/test/components/structures/__snapshots__/SpaceHierarchy-test.tsx.snap +++ b/test/components/structures/__snapshots__/SpaceHierarchy-test.tsx.snap @@ -21,6 +21,7 @@ exports[`SpaceHierarchy renders 1`] = ` alt="" class="mx_BaseAvatar mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="http://this.is.a.url/avatar.url/room.png" style="width: 20px; height: 20px;" /> @@ -97,6 +98,7 @@ exports[`SpaceHierarchy renders 1`] = ` alt="" class="mx_BaseAvatar mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="http://this.is.a.url/avatar.url/room.png" style="width: 20px; height: 20px;" /> diff --git a/test/components/structures/__snapshots__/UserMenu-test.tsx.snap b/test/components/structures/__snapshots__/UserMenu-test.tsx.snap index 769711434a8..96a04321815 100644 --- a/test/components/structures/__snapshots__/UserMenu-test.tsx.snap +++ b/test/components/structures/__snapshots__/UserMenu-test.tsx.snap @@ -33,6 +33,7 @@ exports[` when rendered should render as expected 1`] = ` aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 32px; height: 32px;" /> diff --git a/test/components/views/avatars/__snapshots__/RoomAvatar-test.tsx.snap b/test/components/views/avatars/__snapshots__/RoomAvatar-test.tsx.snap index 6bffa157b63..030d2112057 100644 --- a/test/components/views/avatars/__snapshots__/RoomAvatar-test.tsx.snap +++ b/test/components/views/avatars/__snapshots__/RoomAvatar-test.tsx.snap @@ -18,6 +18,7 @@ exports[`RoomAvatar should render as expected for a DM room 1`] = ` aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 36px; height: 36px;" /> @@ -43,6 +44,7 @@ exports[`RoomAvatar should render as expected for a LocalRoom 1`] = ` aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 36px; height: 36px;" /> @@ -68,6 +70,7 @@ exports[`RoomAvatar should render as expected for a Room 1`] = ` aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 36px; height: 36px;" /> diff --git a/test/components/views/beacon/__snapshots__/BeaconMarker-test.tsx.snap b/test/components/views/beacon/__snapshots__/BeaconMarker-test.tsx.snap index b42ccb83ee3..b2803304146 100644 --- a/test/components/views/beacon/__snapshots__/BeaconMarker-test.tsx.snap +++ b/test/components/views/beacon/__snapshots__/BeaconMarker-test.tsx.snap @@ -26,6 +26,7 @@ exports[` renders marker when beacon has location 1`] = ` aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 36px; height: 36px;" title="@alice:server" diff --git a/test/components/views/beacon/__snapshots__/BeaconViewDialog-test.tsx.snap b/test/components/views/beacon/__snapshots__/BeaconViewDialog-test.tsx.snap index f369aed66a8..e1ff6bf7970 100644 --- a/test/components/views/beacon/__snapshots__/BeaconViewDialog-test.tsx.snap +++ b/test/components/views/beacon/__snapshots__/BeaconViewDialog-test.tsx.snap @@ -47,6 +47,7 @@ exports[` renders own beacon status when user is live sharin aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 32px; height: 32px;" title="@alice:server" diff --git a/test/components/views/beacon/__snapshots__/DialogSidebar-test.tsx.snap b/test/components/views/beacon/__snapshots__/DialogSidebar-test.tsx.snap index 9770bfc61b2..bc4233df675 100644 --- a/test/components/views/beacon/__snapshots__/DialogSidebar-test.tsx.snap +++ b/test/components/views/beacon/__snapshots__/DialogSidebar-test.tsx.snap @@ -35,6 +35,7 @@ exports[` renders sidebar correctly with beacons 1`] = ` alt="" class="mx_BaseAvatar mx_BaseAvatar_image mx_BeaconListItem_avatar" data-testid="avatar-img" + loading="lazy" style="width: 32px; height: 32px;" />
should render the expected pill for @room 1`] = ` aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 16px; height: 16px;" /> @@ -91,6 +92,7 @@ exports[` should render the expected pill for a known user not in the room aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 16px; height: 16px;" /> @@ -132,6 +134,7 @@ exports[` should render the expected pill for a message in another room 1` aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 16px; height: 16px;" /> @@ -173,6 +176,7 @@ exports[` should render the expected pill for a message in the same room 1 aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 16px; height: 16px;" /> @@ -214,6 +218,7 @@ exports[` should render the expected pill for a room alias 1`] = ` aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 16px; height: 16px;" /> @@ -255,6 +260,7 @@ exports[` should render the expected pill for a space 1`] = ` aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 16px; height: 16px;" /> @@ -319,6 +325,7 @@ exports[` when rendering a pill for a room should render the expected pill aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 16px; height: 16px;" /> @@ -360,6 +367,7 @@ exports[` when rendering a pill for a user in the room should render as ex aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 16px; height: 16px;" /> diff --git a/test/components/views/messages/TextualBody-test.tsx b/test/components/views/messages/TextualBody-test.tsx index 659cc4ef0eb..027b4e18756 100644 --- a/test/components/views/messages/TextualBody-test.tsx +++ b/test/components/views/messages/TextualBody-test.tsx @@ -199,7 +199,7 @@ describe("", () => { const { container } = getComponent({ mxEvent: ev }); const content = container.querySelector(".mx_EventTile_body"); expect(content.innerHTML).toMatchInlineSnapshot( - `"Chat with Member"`, + `"Chat with Member"`, ); }); diff --git a/test/components/views/messages/__snapshots__/MLocationBody-test.tsx.snap b/test/components/views/messages/__snapshots__/MLocationBody-test.tsx.snap index 5be01d8e635..297f36836c6 100644 --- a/test/components/views/messages/__snapshots__/MLocationBody-test.tsx.snap +++ b/test/components/views/messages/__snapshots__/MLocationBody-test.tsx.snap @@ -96,6 +96,7 @@ exports[`MLocationBody without error renders marker correctly fo aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 36px; height: 36px;" title="@user:server" diff --git a/test/components/views/messages/__snapshots__/TextualBody-test.tsx.snap b/test/components/views/messages/__snapshots__/TextualBody-test.tsx.snap index acb4cfeb8b2..c56fc2a5758 100644 --- a/test/components/views/messages/__snapshots__/TextualBody-test.tsx.snap +++ b/test/components/views/messages/__snapshots__/TextualBody-test.tsx.snap @@ -59,6 +59,7 @@ exports[` renders formatted m.text correctly pills appear for an aria-hidden="true" class="mx_BaseAvatar mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="mxc://avatar.url/image.png" style="width: 16px; height: 16px;" /> @@ -95,6 +96,7 @@ exports[` renders formatted m.text correctly pills appear for eve aria-hidden="true" class="mx_BaseAvatar mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="mxc://avatar.url/room.png" style="width: 16px; height: 16px;" /> @@ -133,6 +135,7 @@ exports[` renders formatted m.text correctly pills appear for roo aria-hidden="true" class="mx_BaseAvatar mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="mxc://avatar.url/room.png" style="width: 16px; height: 16px;" /> @@ -230,6 +233,7 @@ exports[` renders formatted m.text correctly pills get injected c aria-hidden="true" class="mx_BaseAvatar mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="mxc://avatar.url/image.png" style="width: 16px; height: 16px;" /> @@ -253,6 +257,7 @@ exports[` renders plain-text m.text correctly should pillify a pe href="https://matrix.to/#/!room1:example.com/%event_id%" aria-describedby="mx_Pill_0.123456" > renders plain-text m.text correctly should pillify a pe href="https://matrix.to/#/!room2:example.com/%event_id%" aria-describedby="mx_Pill_0.123456" > renders the room summary 1`] = ` aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 54px; height: 54px;" /> diff --git a/test/components/views/right_panel/__snapshots__/UserInfo-test.tsx.snap b/test/components/views/right_panel/__snapshots__/UserInfo-test.tsx.snap index 3d56287ebbb..2d9f24e9fc9 100644 --- a/test/components/views/right_panel/__snapshots__/UserInfo-test.tsx.snap +++ b/test/components/views/right_panel/__snapshots__/UserInfo-test.tsx.snap @@ -112,6 +112,7 @@ exports[` with crypto enabled renders 1`] = ` aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 460.79999999999995px; height: 460.79999999999995px;" /> diff --git a/test/components/views/rooms/__snapshots__/RoomPreviewBar-test.tsx.snap b/test/components/views/rooms/__snapshots__/RoomPreviewBar-test.tsx.snap index f35467e1efd..d9631c7a0ca 100644 --- a/test/components/views/rooms/__snapshots__/RoomPreviewBar-test.tsx.snap +++ b/test/components/views/rooms/__snapshots__/RoomPreviewBar-test.tsx.snap @@ -174,6 +174,7 @@ exports[` with an invite without an invited email for a dm roo aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 36px; height: 36px;" /> @@ -249,6 +250,7 @@ exports[` with an invite without an invited email for a non-dm aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 36px; height: 36px;" /> diff --git a/test/components/views/rooms/__snapshots__/RoomTile-test.tsx.snap b/test/components/views/rooms/__snapshots__/RoomTile-test.tsx.snap index bcbb7932c69..157ed4cac83 100644 --- a/test/components/views/rooms/__snapshots__/RoomTile-test.tsx.snap +++ b/test/components/views/rooms/__snapshots__/RoomTile-test.tsx.snap @@ -28,6 +28,7 @@ exports[`RoomTile should render the room 1`] = ` aria-hidden="true" class="mx_BaseAvatar_image" data-testid="avatar-img" + loading="lazy" src="data:image/png;base64,00" style="width: 32px; height: 32px;" /> diff --git a/test/components/views/spaces/__snapshots__/AddExistingToSpaceDialog-test.tsx.snap b/test/components/views/spaces/__snapshots__/AddExistingToSpaceDialog-test.tsx.snap index 6fd8c23640b..82d1aca6771 100644 --- a/test/components/views/spaces/__snapshots__/AddExistingToSpaceDialog-test.tsx.snap +++ b/test/components/views/spaces/__snapshots__/AddExistingToSpaceDialog-test.tsx.snap @@ -28,6 +28,7 @@ exports[` looks as expected 1`] = ` alt="" class="mx_BaseAvatar mx_BaseAvatar_image mx_RoomAvatar_isSpaceRoom" data-testid="avatar-img" + loading="lazy" src="http://this.is.a.url/avatar.url/room.png" style="width: 40px; height: 40px;" /> diff --git a/test/utils/exportUtils/__snapshots__/HTMLExport-test.ts.snap b/test/utils/exportUtils/__snapshots__/HTMLExport-test.ts.snap index 6ebf8957b08..582447ebfe8 100644 --- a/test/utils/exportUtils/__snapshots__/HTMLExport-test.ts.snap +++ b/test/utils/exportUtils/__snapshots__/HTMLExport-test.ts.snap @@ -25,7 +25,7 @@ exports[`HTMLExport should export 1`] = `
- +
@@ -60,13 +60,13 @@ exports[`HTMLExport should export 1`] = ` role="list" >
- +

!myroom:example.org

created this room.

This is the start of export of !myroom:example.org. Exported by @userId:matrix.org at 2022/11/17.


-
  • @user49:example.com
    Message #49
  • @user48:example.com
    Message #48
  • @user47:example.com
    Message #47
  • @user46:example.com
    Message #46
  • @user45:example.com
    Message #45
  • @user44:example.com
    Message #44
  • @user43:example.com
    Message #43
  • @user42:example.com
    Message #42
  • @user41:example.com
    Message #41
  • @user40:example.com
    Message #40
  • @user39:example.com
    Message #39
  • @user38:example.com
    Message #38
  • @user37:example.com
    Message #37
  • @user36:example.com
    Message #36
  • @user35:example.com
    Message #35
  • @user34:example.com
    Message #34
  • @user33:example.com
    Message #33
  • @user32:example.com
    Message #32
  • @user31:example.com
    Message #31
  • @user30:example.com
    Message #30
  • @user29:example.com
    Message #29
  • @user28:example.com
    Message #28
  • @user27:example.com
    Message #27
  • @user26:example.com
    Message #26
  • @user25:example.com
    Message #25
  • @user24:example.com
    Message #24
  • @user23:example.com
    Message #23
  • @user22:example.com
    Message #22
  • @user21:example.com
    Message #21
  • @user20:example.com
    Message #20
  • @user19:example.com
    Message #19
  • @user18:example.com
    Message #18
  • @user17:example.com
    Message #17
  • @user16:example.com
    Message #16
  • @user15:example.com
    Message #15
  • @user14:example.com
    Message #14
  • @user13:example.com
    Message #13
  • @user12:example.com
    Message #12
  • @user11:example.com
    Message #11
  • @user10:example.com
    Message #10
  • @user9:example.com
    Message #9
  • @user8:example.com
    Message #8
  • @user7:example.com
    Message #7
  • @user6:example.com
    Message #6
  • @user5:example.com
    Message #5
  • @user4:example.com
    Message #4
  • @user3:example.com
    Message #3
  • @user2:example.com
    Message #2
  • @user1:example.com
    Message #1
  • @user0:example.com
    Message #0
  • +
  • @user49:example.com
    Message #49
  • @user48:example.com
    Message #48
  • @user47:example.com
    Message #47
  • @user46:example.com
    Message #46
  • @user45:example.com
    Message #45
  • @user44:example.com
    Message #44
  • @user43:example.com
    Message #43
  • @user42:example.com
    Message #42
  • @user41:example.com
    Message #41
  • @user40:example.com
    Message #40
  • @user39:example.com
    Message #39
  • @user38:example.com
    Message #38
  • @user37:example.com
    Message #37
  • @user36:example.com
    Message #36
  • @user35:example.com
    Message #35
  • @user34:example.com
    Message #34
  • @user33:example.com
    Message #33
  • @user32:example.com
    Message #32
  • @user31:example.com
    Message #31
  • @user30:example.com
    Message #30
  • @user29:example.com
    Message #29
  • @user28:example.com
    Message #28
  • @user27:example.com
    Message #27
  • @user26:example.com
    Message #26
  • @user25:example.com
    Message #25
  • @user24:example.com
    Message #24
  • @user23:example.com
    Message #23
  • @user22:example.com
    Message #22
  • @user21:example.com
    Message #21
  • @user20:example.com
    Message #20
  • @user19:example.com
    Message #19
  • @user18:example.com
    Message #18
  • @user17:example.com
    Message #17
  • @user16:example.com
    Message #16
  • @user15:example.com
    Message #15
  • @user14:example.com
    Message #14
  • @user13:example.com
    Message #13
  • @user12:example.com
    Message #12
  • @user11:example.com
    Message #11
  • @user10:example.com
    Message #10
  • @user9:example.com
    Message #9
  • @user8:example.com
    Message #8
  • @user7:example.com
    Message #7
  • @user6:example.com
    Message #6
  • @user5:example.com
    Message #5
  • @user4:example.com
    Message #4
  • @user3:example.com
    Message #3
  • @user2:example.com
    Message #2
  • @user1:example.com
    Message #1
  • @user0:example.com
    Message #0