Enhanced invite list UX
authorAjay Bura <ajbura@gmail.com>
Wed, 27 Oct 2021 11:18:31 +0000 (16:48 +0530)
committerAjay Bura <ajbura@gmail.com>
Wed, 27 Oct 2021 11:18:31 +0000 (16:48 +0530)
Signed-off-by: Ajay Bura <ajbura@gmail.com>
src/app/organisms/invite-list/InviteList.jsx

index 2fee05085cb3f74895b1cb736b861a3cce01ac51..376cdb9b2a306d6e106a9a925567358bab3e7217 100644 (file)
@@ -5,6 +5,7 @@ import './InviteList.scss';
 import initMatrix from '../../../client/initMatrix';
 import cons from '../../../client/state/cons';
 import * as roomActions from '../../../client/action/room';
+import { selectRoom, selectSpace } from '../../../client/action/navigation';
 
 import Text from '../../atoms/text/Text';
 import Button from '../../atoms/button/Button';
@@ -29,13 +30,18 @@ function InviteList({ isOpen, onRequestClose }) {
     roomActions.leave(roomId, isDM);
   }
   function updateInviteList(roomId) {
-    if (procInvite.has(roomId)) {
-      procInvite.delete(roomId);
-      changeProcInvite(new Set(Array.from(procInvite)));
-    } else changeProcInvite(new Set(Array.from(procInvite)));
+    if (procInvite.has(roomId)) procInvite.delete(roomId);
+    changeProcInvite(new Set(Array.from(procInvite)));
 
     const rl = initMatrix.roomList;
-    const totalInvites = rl.inviteDirects.size + rl.inviteRooms.size;
+    const totalInvites = rl.inviteDirects.size + rl.inviteRooms.size + rl.inviteSpaces.size;
+    const room = initMatrix.matrixClient.getRoom(roomId);
+    const isRejected = room === null || room?.getMyMembership() !== 'join';
+    if (!isRejected) {
+      if (room.isSpaceRoom()) selectSpace(roomId);
+      else selectRoom(roomId);
+      onRequestClose();
+    }
     if (totalInvites === 0) onRequestClose();
   }