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:
Michael Telatynski 2019-12-17 15:13:59 +00:00 committed by GitHub
commit 0c89ab9fb5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 2 deletions

View file

@ -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;
}

View file

@ -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);