diff --git a/src/python/events/rooms.py b/src/python/events/rooms.py index 3fb9d4d1..48f909c3 100644 --- a/src/python/events/rooms.py +++ b/src/python/events/rooms.py @@ -1,6 +1,6 @@ from datetime import datetime from enum import auto -from typing import List, Sequence, Type, Union +from typing import Any, Dict, List, Sequence, Type, Union from dataclasses import dataclass, field @@ -12,14 +12,15 @@ from .event import AutoStrEnum, Event @dataclass class RoomUpdated(Event): - user_id: str = field() - category: str = field() - room_id: str = field() - display_name: str = "" - avatar_url: str = "" - topic: str = "" - typing_members: Sequence[str] = () - inviter_id: str = "" + user_id: str = field() + category: str = field() + room_id: str = field() + display_name: str = "" + avatar_url: str = "" + topic: str = "" + members: Sequence[Dict[str, Any]] = () + typing_members: Sequence[str] = () + inviter_id: str = "" @classmethod @@ -42,6 +43,9 @@ class RoomUpdated(Event): name = room.group_name() name = "" if name == "Empty room?" else name + members = [{"userId": m.user_id, "powerLevel": m.power_level} + for m in room.users.values()] + return cls( user_id = user_id, category = category, @@ -50,6 +54,7 @@ class RoomUpdated(Event): avatar_url = room.gen_avatar_url or "", topic = room.topic or "", inviter_id = getattr(room, "inviter", "") or "", + members = members, typing_members = typing, ) diff --git a/src/qml/EventHandlers/rooms.js b/src/qml/EventHandlers/rooms.js index 1b0dc10b..9f969830 100644 --- a/src/qml/EventHandlers/rooms.js +++ b/src/qml/EventHandlers/rooms.js @@ -35,7 +35,7 @@ function typingTextFor(members, our_user_id) { function onRoomUpdated( user_id, category, room_id, display_name, avatar_url, topic, - typing_members, inviter_id + members, typing_members, inviter_id ) { roomCategories.upsert({"userId": user_id, "name": category}, { "userId": user_id, @@ -61,6 +61,7 @@ function onRoomUpdated( "displayName": display_name, "avatarUrl": avatar_url, "topic": topic, + "members": members, "typingText": typingTextFor(typing_members, user_id), "inviterId": inviter_id }