diff --git a/src/components/views/right_panel/UserInfo.tsx b/src/components/views/right_panel/UserInfo.tsx index 42a88f8d968..d3f99fba060 100644 --- a/src/components/views/right_panel/UserInfo.tsx +++ b/src/components/views/right_panel/UserInfo.tsx @@ -879,6 +879,7 @@ interface IBaseRoomProps extends IBaseProps { children?: ReactNode; } +// We do not show a Mute button for ourselves so it doesn't need to handle warning self demotion const MuteToggleButton: React.FC = ({ member, room, @@ -900,20 +901,6 @@ const MuteToggleButton: React.FC = ({ const roomId = member.roomId; const target = member.userId; - // if muting self, warn as it may be irreversible - if (target === cli.getUserId()) { - try { - if (!(await warnSelfDemote(room?.isSpaceRoom()))) { - stopUpdating(); - return; - } - } catch (e) { - logger.error("Failed to warn about self demotion: ", e); - stopUpdating(); - return; - } - } - const powerLevelEvent = room.currentState.getStateEvents("m.room.power_levels", ""); if (!powerLevelEvent) { stopUpdating(); diff --git a/test/components/views/right_panel/UserInfo-test.tsx b/test/components/views/right_panel/UserInfo-test.tsx index 4a4ac6ca4fe..2062e9d92fb 100644 --- a/test/components/views/right_panel/UserInfo-test.tsx +++ b/test/components/views/right_panel/UserInfo-test.tsx @@ -61,7 +61,6 @@ import { E2EStatus } from "../../../../src/utils/ShieldUtils"; import { DirectoryMember, startDmOnFirstMessage } from "../../../../src/utils/direct-messages"; import { clearAllModals, flushPromises } from "../../../test-utils"; import ErrorDialog from "../../../../src/components/views/dialogs/ErrorDialog"; -import QuestionDialog from "../../../../src/components/views/dialogs/QuestionDialog"; jest.mock("../../../../src/utils/direct-messages", () => ({ ...jest.requireActual("../../../../src/utils/direct-messages"), @@ -1231,29 +1230,18 @@ describe("", () => { expect(button).toHaveAttribute("aria-disabled", "true"); }); - it("should warn when muting self", () => { - const spy = jest.spyOn(Modal, "createDialog").mockImplementation(() => ({ - finished: Promise.resolve([false]), - close: jest.fn(), - })); - + it("should not show mute button for one's own member", () => { const mockMeMember = new RoomMember(mockRoom.roomId, mockClient.getSafeUserId()); mockMeMember.powerLevel = 51; // defaults to 50 mockRoom.getMember.mockReturnValueOnce(mockMeMember); renderComponent({ member: mockMeMember, - powerLevels: { events: { "m.room.power_levels": 1 } }, + powerLevels: { events: { "m.room.power_levels": 100 } }, }); - const button = screen.getByText(/mute/i); - fireEvent.click(button); - expect(spy).toHaveBeenCalledWith( - QuestionDialog, - expect.objectContaining({ - title: "Demote yourself?", - }), - ); + const button = screen.queryByText(/mute/i); + expect(button).not.toBeInTheDocument(); }); });