diff --git a/src/app/organisms/profile-viewer/ProfileViewer.jsx b/src/app/organisms/profile-viewer/ProfileViewer.jsx index 41a43fc5..c8191ffa 100644 --- a/src/app/organisms/profile-viewer/ProfileViewer.jsx +++ b/src/app/organisms/profile-viewer/ProfileViewer.jsx @@ -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); }; }, []);