Fix bug in creating dm
authorAjay Bura <ajbura@gmail.com>
Wed, 24 Nov 2021 04:38:51 +0000 (10:08 +0530)
committerAjay Bura <ajbura@gmail.com>
Wed, 24 Nov 2021 04:38:51 +0000 (10:08 +0530)
Signed-off-by: Ajay Bura <ajbura@gmail.com>
src/app/organisms/profile-viewer/ProfileViewer.jsx

index 41a43fc58e04b132c3c26db0d4f9c29d22b40188..c8191ffa4786a627a25dcec937826fa872801248 100644 (file)
@@ -95,7 +95,8 @@ function ProfileFooter({ roomId, userId, onRequestClose }) {
   const [isInvited, setIsInvited] = useState(member?.membership === 'invite');
 
   const myPowerlevel = room.getMember(mx.getUserId()).powerLevel;
-  const canIKick = room.currentState.hasSufficientPowerLevelFor('kick', myPowerlevel);
+  const userPL = room.getMember(userId).powerLevel || 0;
+  const canIKick = room.currentState.hasSufficientPowerLevelFor('kick', myPowerlevel) && userPL < myPowerlevel;
 
   const onCreated = (dmRoomId) => {
     if (isMountedRef.current === false) return;
@@ -104,11 +105,11 @@ function ProfileFooter({ roomId, userId, onRequestClose }) {
     onRequestClose();
   };
 
-  useEffect(() => () => {
-    isMountedRef.current = false;
+  useEffect(() => {
     const { roomList } = initMatrix;
     roomList.on(cons.events.roomList.ROOM_CREATED, onCreated);
     return () => {
+      isMountedRef.current = false;
       roomList.removeListener(cons.events.roomList.ROOM_CREATED, onCreated);
     };
   }, []);