collab_ui: Show the chat panel icon when the chat panel is active (#22593)
Marshall Bowers
created 1 year ago
This PR is a follow-up to #22200 that makes it so the chat panel icon is
visible when the chat panel is active, even if not in a call (when using
the `when_in_call` setting).
Release Notes:
- N/A
Change summary
crates/collab_ui/src/chat_panel.rs | 23 ++++++++++++++---------
1 file changed, 14 insertions(+), 9 deletions(-)
Detailed changes
@@ -1135,15 +1135,20 @@ impl Panel for ChatPanel {
}
fn icon(&self, cx: &WindowContext) -> Option<ui::IconName> {
- match ChatPanelSettings::get_global(cx).button {
- ChatPanelButton::Never => None,
- ChatPanelButton::Always => Some(ui::IconName::MessageBubbles),
- ChatPanelButton::WhenInCall => ActiveCall::global(cx)
- .read(cx)
- .room()
- .filter(|room| room.read(cx).contains_guests())
- .map(|_| ui::IconName::MessageBubbles),
- }
+ let show_icon = match ChatPanelSettings::get_global(cx).button {
+ ChatPanelButton::Never => false,
+ ChatPanelButton::Always => true,
+ ChatPanelButton::WhenInCall => {
+ let is_in_call = ActiveCall::global(cx)
+ .read(cx)
+ .room()
+ .map_or(false, |room| room.read(cx).contains_guests());
+
+ self.active || is_in_call
+ }
+ };
+
+ show_icon.then(|| ui::IconName::MessageBubbles)
}
fn icon_tooltip(&self, _cx: &WindowContext) -> Option<&'static str> {