consolidation & handling of data from backend pt 2

This commit is contained in:
2026-03-08 23:04:49 +08:00
parent 2aa1d5f92f
commit 2dcc202540
13 changed files with 217 additions and 102 deletions

View File

@@ -75,13 +75,15 @@ pub fn on_friend_cursor_position(payload: Payload, _socket: RawClient) {
},
};
scene_friends::set_friend_cursor_position(
let scene_friends_changed = scene_friends::set_friend_cursor_position(
outgoing_payload.user_id.clone(),
outgoing_payload.position.clone(),
);
emitter::emit_to_frontend_typed(&FriendCursorPositionUpdated(outgoing_payload));
scene_friends::emit_scene_friends_updated();
if scene_friends_changed {
scene_friends::emit_scene_friends_updated();
}
}
}
@@ -90,11 +92,15 @@ pub fn on_friend_disconnected(payload: Payload, _socket: RawClient) {
if let Ok(data) =
utils::extract_and_parse::<FriendDisconnectedPayload>(payload, "friend-disconnected")
{
scene_friends::remove_friend(&data.user_id);
presence_state::remove_friend_presence(&data.user_id);
let scene_friends_changed = scene_friends::remove_friend(&data.user_id);
let presence_changed = presence_state::remove_friend_presence(&data.user_id);
emitter::emit_to_frontend_typed(&FriendDisconnected(data));
scene_friends::emit_scene_friends_updated();
presence_state::emit_presence_state_updated();
if scene_friends_changed {
scene_friends::emit_scene_friends_updated();
}
if presence_changed {
presence_state::emit_presence_state_updated();
}
}
}
@@ -129,7 +135,6 @@ pub fn on_friend_active_doll_changed(payload: Payload, _socket: RawClient) {
) {
scene_friends::set_friend_active_doll(data.friend_id.clone(), data.doll.clone());
emitter::emit_to_frontend_typed(&FriendActiveDollChanged(data));
scene_friends::emit_scene_friends_updated();
refresh::refresh_app_data(AppDataRefreshScope::Friends);
}
}
@@ -139,8 +144,11 @@ pub fn on_friend_user_status(payload: Payload, _socket: RawClient) {
if let Ok(data) =
utils::extract_and_parse::<FriendUserStatusPayload>(payload, "friend-user-status")
{
presence_state::set_friend_presence(data.user_id.clone(), data.status.clone());
let presence_changed =
presence_state::set_friend_presence(data.user_id.clone(), data.status.clone());
emitter::emit_to_frontend_typed(&FriendUserStatusChanged(data));
presence_state::emit_presence_state_updated();
if presence_changed {
presence_state::emit_presence_state_updated();
}
}
}