mirror of
https://github.com/zed-industries/zed.git
synced 2024-12-31 01:24:31 +03:00
Update chat panel with current channel
This commit is contained in:
parent
bc09ce6ffc
commit
dc158f708f
@ -442,6 +442,8 @@ impl ActiveCall {
|
||||
.location
|
||||
.as_ref()
|
||||
.and_then(|location| location.upgrade());
|
||||
let channel_id = room.update(cx, |room, cx| room.channel_id());
|
||||
cx.emit(Event::RoomJoined { channel_id });
|
||||
room.update(cx, |room, cx| room.set_location(location.as_ref(), cx))
|
||||
}
|
||||
} else {
|
||||
|
@ -26,6 +26,9 @@ pub const RECONNECT_TIMEOUT: Duration = Duration::from_secs(30);
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||
pub enum Event {
|
||||
RoomJoined {
|
||||
channel_id: Option<u64>,
|
||||
},
|
||||
ParticipantLocationChanged {
|
||||
participant_id: proto::PeerId,
|
||||
},
|
||||
|
@ -1,6 +1,6 @@
|
||||
use crate::{channel_view::ChannelView, is_channels_feature_enabled, ChatPanelSettings};
|
||||
use anyhow::Result;
|
||||
use call::ActiveCall;
|
||||
use call::{room, ActiveCall};
|
||||
use channel::{ChannelChat, ChannelChatEvent, ChannelMessageId, ChannelStore};
|
||||
use client::Client;
|
||||
use collections::HashMap;
|
||||
@ -140,6 +140,18 @@ impl ChatPanel {
|
||||
cx.notify();
|
||||
},
|
||||
));
|
||||
this.subscriptions.push(cx.subscribe(
|
||||
&ActiveCall::global(cx),
|
||||
move |this: &mut Self, _, event: &room::Event, cx| match event {
|
||||
room::Event::RoomJoined { channel_id } => {
|
||||
if let Some(channel_id) = channel_id {
|
||||
this.select_channel(*channel_id, None, cx)
|
||||
.detach_and_log_err(cx)
|
||||
}
|
||||
}
|
||||
_ => {}
|
||||
},
|
||||
));
|
||||
|
||||
this
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user