Merge pull request #3738 from matrix-org/t3chguy/null-guard-useIsEncrypted
Fix UserInfo exploding without a room being passed to it
This commit is contained in:
commit
0c89ab9fb5
2 changed files with 5 additions and 2 deletions
|
@ -109,14 +109,14 @@ function openDMForUser(matrixClient, userId) {
|
|||
}
|
||||
|
||||
function useIsEncrypted(cli, room) {
|
||||
const [isEncrypted, setIsEncrypted] = useState(cli.isRoomEncrypted(room.roomId));
|
||||
const [isEncrypted, setIsEncrypted] = useState(room ? cli.isRoomEncrypted(room.roomId) : undefined);
|
||||
|
||||
const update = useCallback((event) => {
|
||||
if (event.getType() === "m.room.encryption") {
|
||||
setIsEncrypted(cli.isRoomEncrypted(room.roomId));
|
||||
}
|
||||
}, [cli, room]);
|
||||
useEventEmitter(room.currentState, "RoomState.events", update);
|
||||
useEventEmitter(room ? room.currentState : undefined, "RoomState.events", update);
|
||||
return isEncrypted;
|
||||
}
|
||||
|
||||
|
|
|
@ -28,6 +28,9 @@ export const useEventEmitter = (emitter, eventName, handler) => {
|
|||
|
||||
useEffect(
|
||||
() => {
|
||||
// allow disabling this hook by passing a falsy emitter
|
||||
if (!emitter) return;
|
||||
|
||||
// Create event listener that calls handler function stored in ref
|
||||
const eventListener = event => savedHandler.current(event);
|
||||
|
||||
|
|
Loading…
Reference in a new issue