Move syncv3 typings event for user.

Signed-off-by: Jason Volk <jason@zemos.net>
This commit is contained in:
Jason Volk
2025-07-27 01:43:59 +00:00
parent 6b7bf80de5
commit 66334bdd53
2 changed files with 19 additions and 20 deletions

View File

@@ -26,9 +26,11 @@ use ruma::{
},
events::{
AnyRawAccountDataEvent, AnySyncEphemeralRoomEvent, StateEventType,
SyncEphemeralRoomEvent,
TimelineEventType::*,
presence::{PresenceEvent, PresenceEventContent},
room::member::{MembershipState, RoomMemberEventContent},
typing::TypingEventContent,
},
serde::Raw,
uint,
@@ -854,11 +856,7 @@ async fn load_joined_room(
return Ok(Vec::<Raw<AnySyncEphemeralRoomEvent>>::new());
}
let typings = services
.rooms
.typing
.typings_event_for_user(room_id, sender_user)
.await?;
let typings = typings_event_for_user(services, room_id, sender_user).await?;
Ok(vec![serde_json::from_str(&serde_json::to_string(&typings)?)?])
})
@@ -1203,3 +1201,19 @@ async fn fold_hero(
heroes.push(user_id.to_owned());
heroes
}
async fn typings_event_for_user(
services: &Services,
room_id: &RoomId,
sender_user: &UserId,
) -> Result<SyncEphemeralRoomEvent<TypingEventContent>> {
Ok(SyncEphemeralRoomEvent {
content: TypingEventContent {
user_ids: services
.rooms
.typing
.typing_users_for_user(room_id, sender_user)
.await?,
},
})
}