From 9452a3cc099666d1423245c24838ec9d6fb3277f Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 9 Dec 2021 09:28:12 +0000 Subject: [PATCH] Iterate room context menus for DMs (#7308) --- .../views/context_menus/RoomContextMenu.tsx | 75 +++++++++++-------- src/components/views/rooms/RoomTile.tsx | 8 +- 2 files changed, 47 insertions(+), 36 deletions(-) diff --git a/src/components/views/context_menus/RoomContextMenu.tsx b/src/components/views/context_menus/RoomContextMenu.tsx index 38cbdd69e4..f5081c4a7a 100644 --- a/src/components/views/context_menus/RoomContextMenu.tsx +++ b/src/components/views/context_menus/RoomContextMenu.tsx @@ -44,6 +44,7 @@ import { Action } from "../../../dispatcher/actions"; import { RightPanelPhases } from "../../../stores/RightPanelStorePhases"; import { ROOM_NOTIFICATIONS_TAB } from "../dialogs/RoomSettingsDialog"; import { useEventEmitterState } from "../../../hooks/useEventEmitter"; +import DMRoomMap from "../../../utils/DMRoomMap"; interface IProps extends IContextMenuProps { room: Room; @@ -96,8 +97,10 @@ const RoomContextMenu = ({ room, onFinished, ...props }: IProps) => { />; } + const isDm = DMRoomMap.shared().getUserIdForRoomId(room.roomId); + let inviteOption: JSX.Element; - if (room.canInvite(cli.getUserId())) { + if (room.canInvite(cli.getUserId()) && !isDm) { const onInviteClick = (ev: ButtonEvent) => { ev.preventDefault(); ev.stopPropagation(); @@ -179,6 +182,42 @@ const RoomContextMenu = ({ room, onFinished, ...props }: IProps) => { ; } + let peopleOption: JSX.Element; + let copyLinkOption: JSX.Element; + if (!isDm) { + peopleOption = { + ev.preventDefault(); + ev.stopPropagation(); + + ensureViewingRoom(); + onRoomMembersClick(false); + onFinished(); + }} + label={_t("People")} + iconClassName="mx_RoomTile_iconPeople" + > + + { room.getJoinedMemberCount() } + + ; + + copyLinkOption = { + ev.preventDefault(); + ev.stopPropagation(); + + dis.dispatch({ + action: "copy_room", + room_id: room.roomId, + }); + onFinished(); + }} + label={_t("Copy link")} + iconClassName="mx_RoomTile_iconCopyLink" + />; + } + const onTagRoom = (ev: ButtonEvent, tagId: TagID) => { ev.preventDefault(); ev.stopPropagation(); @@ -212,23 +251,7 @@ const RoomContextMenu = ({ room, onFinished, ...props }: IProps) => { { inviteOption } { notificationOption } { favouriteOption } - - { - ev.preventDefault(); - ev.stopPropagation(); - - ensureViewingRoom(); - onRoomMembersClick(false); - onFinished(); - }} - label={_t("People")} - iconClassName="mx_RoomTile_iconPeople" - > - - { room.getJoinedMemberCount() } - - + { peopleOption } { @@ -261,21 +284,7 @@ const RoomContextMenu = ({ room, onFinished, ...props }: IProps) => { /> { lowPriorityOption } - - { - ev.preventDefault(); - ev.stopPropagation(); - - dis.dispatch({ - action: "copy_room", - room_id: room.roomId, - }); - onFinished(); - }} - label={_t("Copy link")} - iconClassName="mx_RoomTile_iconCopyLink" - /> + { copyLinkOption } { diff --git a/src/components/views/rooms/RoomTile.tsx b/src/components/views/rooms/RoomTile.tsx index e413a55276..8d989ee209 100644 --- a/src/components/views/rooms/RoomTile.tsx +++ b/src/components/views/rooms/RoomTile.tsx @@ -485,8 +485,10 @@ export default class RoomTile extends React.PureComponent { const isLowPriority = roomTags.includes(DefaultTagID.LowPriority); const lowPriorityLabel = _t("Low Priority"); + const isDm = roomTags.includes(DefaultTagID.DM); + const userId = MatrixClientPeg.get().getUserId(); - const canInvite = this.props.room.canInvite(userId); + const canInvite = this.props.room.canInvite(userId) && !isDm; // hide invite in DMs from this quick menu contextMenu = { iconClassName="mx_RoomTile_iconInvite" /> ) : null } - + /> : null }