Skip to content

Commit 6b97fd5

Browse files
authored
Merge pull request #676 from kevinaboos/invite_modal
2 parents 97ad990 + 0b62dad commit 6b97fd5

7 files changed

Lines changed: 441 additions & 41 deletions

File tree

src/app.rs

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ use serde::{Deserialize, Serialize};
99
use crate::{
1010
avatar_cache::clear_avatar_cache,
1111
home::{
12+
invite_modal::{InviteModalAction, InviteModalWidgetRefExt},
1213
main_desktop_ui::MainDesktopUiAction, navigation_tab_bar::{NavigationBarAction, SelectedTab}, new_message_context_menu::NewMessageContextMenuWidgetRefExt, room_screen::{InviteAction, MessageAction, clear_timeline_states}, rooms_list::{RoomsListAction, RoomsListRef, RoomsListUpdate, clear_all_invited_rooms, enqueue_rooms_list_update}, room_context_menu::RoomContextMenuWidgetRefExt
1314
},
1415
join_leave_room_modal::{
@@ -43,6 +44,7 @@ live_design! {
4344
use crate::shared::popup_list::*;
4445
use crate::home::new_message_context_menu::*;
4546
use crate::home::room_context_menu::*;
47+
use crate::home::invite_modal::InviteModal;
4648
use crate::shared::callout_tooltip::CalloutTooltip;
4749
use crate::shared::image_viewer::ImageViewer;
4850
use link::tsp_link::TspVerificationModal;
@@ -128,6 +130,13 @@ live_design! {
128130
}
129131
}
130132

133+
// A modal to invite a user to a room.
134+
invite_modal = <Modal> {
135+
content: {
136+
invite_modal_inner = <InviteModal> {}
137+
}
138+
}
139+
131140
// Show the logout confirmation modal.
132141
logout_confirm_modal = <Modal> {
133142
content: {
@@ -488,14 +497,28 @@ impl MatchEvent for App {
488497
}
489498

490499
// Handle a request to show the invite confirmation modal.
491-
if let Some(InviteAction::ShowConfirmationModal(content_opt)) = action.downcast_ref() {
500+
if let Some(InviteAction::ShowInviteConfirmationModal(content_opt)) = action.downcast_ref() {
492501
if let Some(content) = content_opt.borrow_mut().take() {
493502
invite_confirmation_modal_inner.show(cx, content);
494503
self.ui.modal(ids!(invite_confirmation_modal)).open(cx);
495504
}
496505
continue;
497506
}
498507

508+
// Handle InviteModalAction to open/close the invite modal.
509+
match action.downcast_ref() {
510+
Some(InviteModalAction::Open(room_name_id)) => {
511+
self.ui.invite_modal(ids!(invite_modal_inner)).show(cx, room_name_id.clone());
512+
self.ui.modal(ids!(invite_modal)).open(cx);
513+
continue;
514+
}
515+
Some(InviteModalAction::Close) => {
516+
self.ui.modal(ids!(invite_modal)).close(cx);
517+
continue;
518+
}
519+
_ => {}
520+
}
521+
499522
// // message source modal handling.
500523
// match action.as_widget_action().cast() {
501524
// MessageAction::MessageSourceModalOpen { room_id: _, event_id: _, original_json: _ } => {

0 commit comments

Comments
 (0)