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?,
},
})
}

View File

@@ -4,7 +4,6 @@ use futures::StreamExt;
use ruma::{
OwnedRoomId, OwnedUserId, RoomId, UserId,
api::federation::transactions::edu::{Edu, TypingContent},
events::SyncEphemeralRoomEvent,
};
use tokio::sync::{RwLock, broadcast};
use tuwunel_core::{
@@ -223,20 +222,6 @@ impl Service {
Ok(user_ids)
}
pub async fn typings_event_for_user(
&self,
room_id: &RoomId,
sender_user: &UserId,
) -> Result<SyncEphemeralRoomEvent<ruma::events::typing::TypingEventContent>> {
Ok(SyncEphemeralRoomEvent {
content: ruma::events::typing::TypingEventContent {
user_ids: self
.typing_users_for_user(room_id, sender_user)
.await?,
},
})
}
async fn federation_send(&self, room_id: &RoomId, user_id: &UserId, typing: bool) -> Result {
debug_assert!(
self.services.globals.user_is_local(user_id),