From 23ee8211c7f44dcab15c2f3b39a5260547fcdea9 Mon Sep 17 00:00:00 2001 From: Mikayla Date: Tue, 3 Oct 2023 19:30:05 -0700 Subject: [PATCH] Lower frequency of popup warning when leaving a call co-authored-by: conrad --- crates/call/src/room.rs | 4 ++++ crates/collab_ui/src/collab_panel.rs | 11 +++++++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/crates/call/src/room.rs b/crates/call/src/room.rs index f24a8e9a9c..ce01099576 100644 --- a/crates/call/src/room.rs +++ b/crates/call/src/room.rs @@ -104,6 +104,10 @@ impl Room { self.channel_id } + pub fn is_sharing_project(&self) -> bool { + !self.shared_projects.is_empty() + } + #[cfg(any(test, feature = "test-support"))] pub fn is_connected(&self) -> bool { if let Some(live_kit) = self.live_kit.as_ref() { diff --git a/crates/collab_ui/src/collab_panel.rs b/crates/collab_ui/src/collab_panel.rs index 4a0b37b262..7a81b49868 100644 --- a/crates/collab_ui/src/collab_panel.rs +++ b/crates/collab_ui/src/collab_panel.rs @@ -3165,10 +3165,17 @@ impl CollabPanel { let window = cx.window(); let active_call = ActiveCall::global(cx); cx.spawn(|_, mut cx| async move { - if active_call.read_with(&mut cx, |active_call, _| active_call.room().is_some()) { + if active_call.read_with(&mut cx, |active_call, cx| { + if let Some(room) = active_call.room() { + let room = room.read(cx); + room.is_sharing_project() && room.remote_participants().len() > 0 + } else { + false + } + }) { let answer = window.prompt( PromptLevel::Warning, - "Do you want to leave the current call?", + "Leaving this call will unshare your current project.\nDo you want to switch channels?", &["Yes, Join Channel", "Cancel"], &mut cx, );