Improve useRoomPowerLevels hook
parent
fdecba2fe5
commit
856a5682b9
|
@ -502,19 +502,15 @@ const isMuted = (member: RoomMember, powerLevelContent: IPowerLevelsContent) =>
|
||||||
return member.powerLevel < levelToSend;
|
return member.powerLevel < levelToSend;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const getPowerLevels = room => room.currentState.getStateEvents(EventType.RoomPowerLevels, "")?.getContent() || {};
|
||||||
|
|
||||||
export const useRoomPowerLevels = (cli: MatrixClient, room: Room) => {
|
export const useRoomPowerLevels = (cli: MatrixClient, room: Room) => {
|
||||||
const [powerLevels, setPowerLevels] = useState<IPowerLevelsContent>({});
|
const [powerLevels, setPowerLevels] = useState<IPowerLevelsContent>(getPowerLevels(room));
|
||||||
|
|
||||||
const update = useCallback((ev?: MatrixEvent) => {
|
const update = useCallback((ev?: MatrixEvent) => {
|
||||||
if (!room) return;
|
if (!room) return;
|
||||||
if (ev && ev.getType() !== EventType.RoomPowerLevels) return;
|
if (ev && ev.getType() !== EventType.RoomPowerLevels) return;
|
||||||
|
setPowerLevels(getPowerLevels(room));
|
||||||
const event = room.currentState.getStateEvents(EventType.RoomPowerLevels, "");
|
|
||||||
if (event) {
|
|
||||||
setPowerLevels(event.getContent());
|
|
||||||
} else {
|
|
||||||
setPowerLevels({});
|
|
||||||
}
|
|
||||||
}, [room]);
|
}, [room]);
|
||||||
|
|
||||||
useEventEmitter(cli, "RoomState.events", update);
|
useEventEmitter(cli, "RoomState.events", update);
|
||||||
|
|
Loading…
Reference in New Issue