Change summary
crates/collab/src/rpc.rs | 7 +++++++
crates/collab/src/rpc/store.rs | 2 ++
2 files changed, 9 insertions(+)
Detailed changes
@@ -634,6 +634,7 @@ impl Server {
{
let mut state = self.store_mut().await;
project = state.leave_project(sender_id, project_id)?;
+ let unshare = project.connection_ids.len() <= 1;
broadcast(sender_id, project.connection_ids, |conn_id| {
self.peer.send(
conn_id,
@@ -643,6 +644,12 @@ impl Server {
},
)
});
+ if unshare {
+ self.peer.send(
+ project.host_connection_id,
+ proto::ProjectUnshared { project_id },
+ )?;
+ }
}
self.update_user_contacts(project.host_user_id).await?;
Ok(())
@@ -58,6 +58,7 @@ pub struct RemovedConnectionState {
pub struct LeftProject {
pub connection_ids: Vec<ConnectionId>,
pub host_user_id: UserId,
+ pub host_connection_id: ConnectionId,
}
#[derive(Copy, Clone)]
@@ -504,6 +505,7 @@ impl Store {
Ok(LeftProject {
connection_ids: project.connection_ids(),
+ host_connection_id: project.host_connection_id,
host_user_id: project.host_user_id,
})
}