From 5519b81af9b57f24fefe62bd94b4ec06eaf03e65 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Tue, 6 Aug 2024 15:55:48 +0100 Subject: [PATCH] Disable jump to read receipt button instead of hiding when nothing to jump to (#12863) * Disable User Info jump to read receipt button instead of hiding it when no RR Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update tests Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Update snapshot Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * Remove non-functional code Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> * delint Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --------- Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- .../user-view.spec.ts/user-info-linux.png | Bin 17196 -> 18977 bytes src/components/views/right_panel/UserInfo.tsx | 55 ++++++------- .../views/right_panel/UserInfo-test.tsx | 8 +- .../__snapshots__/UserInfo-test.tsx.snap | 76 ++++++++++++++++++ 4 files changed, 108 insertions(+), 31 deletions(-) diff --git a/playwright/snapshots/user-view/user-view.spec.ts/user-info-linux.png b/playwright/snapshots/user-view/user-view.spec.ts/user-info-linux.png index 45af5ac44be079417d5f7e22765d5fc11aee63b3..b6883c218e6dea5fc0e4f41c089300c8f9f03838 100644 GIT binary patch literal 18977 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 Rz_WlrWTg}(i{P){|37F-=C%L; literal 17196 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 B7%%_; diff --git a/src/components/views/right_panel/UserInfo.tsx b/src/components/views/right_panel/UserInfo.tsx index 159bc9dbf12..9cc50fa9287 100644 --- a/src/components/views/right_panel/UserInfo.tsx +++ b/src/components/views/right_panel/UserInfo.tsx @@ -442,19 +442,35 @@ export const UserOptionsSection: React.FC<{ // Only allow the user to ignore the user if its not ourselves // same goes for jumping to read receipt if (!isMe) { - if (member instanceof RoomMember && member.roomId && !isSpace) { - const onReadReceiptButton = function (): void { - const room = cli.getRoom(member.roomId); - dis.dispatch({ - action: Action.ViewRoom, - highlighted: true, - // this could return null, the default prevents a type error - event_id: room?.getEventReadUpTo(member.userId) || undefined, - room_id: member.roomId, - metricsTrigger: undefined, // room doesn't change - }); - }; + const onReadReceiptButton = function (room: Room): void { + dis.dispatch({ + action: Action.ViewRoom, + highlighted: true, + // this could return null, the default prevents a type error + event_id: room.getEventReadUpTo(member.userId) || undefined, + room_id: room.roomId, + metricsTrigger: undefined, // room doesn't change + }); + }; + + const room = member instanceof RoomMember ? cli.getRoom(member.roomId) : null; + const readReceiptButtonDisabled = isSpace || !room?.getEventReadUpTo(member.userId); + readReceiptButton = ( + { + ev.preventDefault(); + if (room && !readReceiptButtonDisabled) { + onReadReceiptButton(room); + } + }} + label={_t("user_info|jump_to_rr_button")} + disabled={readReceiptButtonDisabled} + Icon={CheckIcon} + /> + ); + if (member instanceof RoomMember && member.roomId && !isSpace) { const onInsertPillButton = function (): void { dis.dispatch({ action: Action.ComposerInsert, @@ -463,21 +479,6 @@ export const UserOptionsSection: React.FC<{ }); }; - const room = member instanceof RoomMember ? cli.getRoom(member.roomId) : undefined; - if (room?.getEventReadUpTo(member.userId)) { - readReceiptButton = ( - { - ev.preventDefault(); - onReadReceiptButton(); - }} - label={_t("user_info|jump_to_rr_button")} - Icon={CheckIcon} - /> - ); - } - insertPillButton = ( ", () => { }); }); - it("when call to client.getRoom is null, does not show read receipt button", () => { + it("when call to client.getRoom is null, shows disabled read receipt button", () => { mockClient.getRoom.mockReturnValueOnce(null); renderComponent(); - expect(screen.queryByRole("button", { name: "Jump to read receipt" })).not.toBeInTheDocument(); + expect(screen.queryByRole("button", { name: "Jump to read receipt" })).toBeDisabled(); }); - it("when call to client.getRoom is non-null and room.getEventReadUpTo is null, does not show read receipt button", () => { + it("when call to client.getRoom is non-null and room.getEventReadUpTo is null, shows disabled read receipt button", () => { mockRoom.getEventReadUpTo.mockReturnValueOnce(null); mockClient.getRoom.mockReturnValueOnce(mockRoom); renderComponent(); - expect(screen.queryByRole("button", { name: "Jump to read receipt" })).not.toBeInTheDocument(); + expect(screen.queryByRole("button", { name: "Jump to read receipt" })).toBeDisabled(); }); it("when calls to client.getRoom and room.getEventReadUpTo are non-null, shows read receipt button", () => { 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 e7bd262ab06..22794e9d8b8 100644 --- a/test/components/views/right_panel/__snapshots__/UserInfo-test.tsx.snap +++ b/test/components/views/right_panel/__snapshots__/UserInfo-test.tsx.snap @@ -255,6 +255,44 @@ exports[` with crypto enabled renders 1`] = ` /> + +