Open chat when joining a channel with guests
(and close it when leaving a channel again)
This commit is contained in:
parent
f0d490c671
commit
50f3bbbc8b
4 changed files with 35 additions and 11 deletions
|
@ -442,10 +442,8 @@ impl ActiveCall {
|
|||
.location
|
||||
.as_ref()
|
||||
.and_then(|location| location.upgrade());
|
||||
let (channel_id, role) = room.update(cx, |room, _| {
|
||||
(room.channel_id(), room.local_participant().role)
|
||||
});
|
||||
cx.emit(Event::RoomJoined { channel_id, role });
|
||||
let channel_id = room.read(cx).channel_id();
|
||||
cx.emit(Event::RoomJoined { channel_id });
|
||||
room.update(cx, |room, cx| room.set_location(location.as_ref(), cx))
|
||||
}
|
||||
} else {
|
||||
|
|
|
@ -28,7 +28,6 @@ pub const RECONNECT_TIMEOUT: Duration = Duration::from_secs(30);
|
|||
pub enum Event {
|
||||
RoomJoined {
|
||||
channel_id: Option<u64>,
|
||||
role: proto::ChannelRole,
|
||||
},
|
||||
ParticipantLocationChanged {
|
||||
participant_id: proto::PeerId,
|
||||
|
@ -53,7 +52,9 @@ pub enum Event {
|
|||
RemoteProjectInvitationDiscarded {
|
||||
project_id: u64,
|
||||
},
|
||||
Left,
|
||||
Left {
|
||||
channel_id: Option<u64>,
|
||||
},
|
||||
}
|
||||
|
||||
pub struct Room {
|
||||
|
@ -361,7 +362,9 @@ impl Room {
|
|||
|
||||
pub(crate) fn leave(&mut self, cx: &mut ModelContext<Self>) -> Task<Result<()>> {
|
||||
cx.notify();
|
||||
cx.emit(Event::Left);
|
||||
cx.emit(Event::Left {
|
||||
channel_id: self.channel_id(),
|
||||
});
|
||||
self.leave_internal(cx)
|
||||
}
|
||||
|
||||
|
@ -602,6 +605,14 @@ impl Room {
|
|||
.map(|participant| participant.role)
|
||||
}
|
||||
|
||||
pub fn contains_guests(&self) -> bool {
|
||||
self.local_participant.role == proto::ChannelRole::Guest
|
||||
|| self
|
||||
.remote_participants
|
||||
.values()
|
||||
.any(|p| p.role == proto::ChannelRole::Guest)
|
||||
}
|
||||
|
||||
pub fn local_participant_is_admin(&self) -> bool {
|
||||
self.local_participant.role == proto::ChannelRole::Admin
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue