Use ComponentSender#Emit when talking to parent components

This commit is contained in:
Bnyro 2023-07-01 12:04:23 +02:00
parent 7aa4936b0a
commit 19fa49ecf7
6 changed files with 25 additions and 11 deletions

View File

@ -169,7 +169,7 @@ impl FactoryComponent for CommentRow {
let comment_id = self.comment.comment.id; let comment_id = self.comment.comment.id;
std::thread::spawn(move || { std::thread::spawn(move || {
let _ = api::comment::delete_comment(comment_id); let _ = api::comment::delete_comment(comment_id);
let _ = sender.output(PostInput::PassAppMessage( sender.output_sender().emit(PostInput::PassAppMessage(
crate::AppMsg::StartFetchPosts(None, true), crate::AppMsg::StartFetchPosts(None, true),
)); ));
}); });

View File

@ -133,7 +133,9 @@ impl SimpleComponent for CommunitiesPage {
sender.input(CommunitiesPageInput::DoneFetchCommunities(communities)); sender.input(CommunitiesPageInput::DoneFetchCommunities(communities));
} }
Err(err) => { Err(err) => {
let _ = sender.output(crate::AppMsg::ShowMessage(err.to_string())); sender
.output_sender()
.emit(crate::AppMsg::ShowMessage(err.to_string()));
} }
}; };
}); });

View File

@ -91,7 +91,9 @@ impl SimpleComponent for LoginPage {
} else { } else {
Some(totp_token) Some(totp_token)
}; };
let _ = sender.output(crate::AppMsg::UpdateState(crate::AppState::Loading)); sender
.output_sender()
.emit(crate::AppMsg::UpdateState(crate::AppState::Loading));
std::thread::spawn(move || { std::thread::spawn(move || {
let message = match api::auth::login(username, password, token) { let message = match api::auth::login(username, password, token) {
@ -113,11 +115,13 @@ impl SimpleComponent for LoginPage {
} }
Err(err) => crate::AppMsg::ShowMessage(err.to_string()), Err(err) => crate::AppMsg::ShowMessage(err.to_string()),
}; };
let _ = sender.output(message); sender.output_sender().emit(message);
}); });
} }
LoginPageInput::Cancel => { LoginPageInput::Cancel => {
let _ = sender.output(crate::AppMsg::StartFetchPosts(None, true)); sender
.output_sender()
.emit(crate::AppMsg::StartFetchPosts(None, true));
} }
} }
} }

View File

@ -270,11 +270,15 @@ impl SimpleComponent for PostPage {
} }
PostInput::OpenPerson => { PostInput::OpenPerson => {
let person_id = self.info.post_view.creator.id.clone(); let person_id = self.info.post_view.creator.id.clone();
let _ = sender.output(crate::AppMsg::OpenPerson(person_id)); sender
.output_sender()
.emit(crate::AppMsg::OpenPerson(person_id));
} }
PostInput::OpenCommunity => { PostInput::OpenCommunity => {
let community_id = self.info.community_view.community.id.clone(); let community_id = self.info.community_view.community.id.clone();
let _ = sender.output(crate::AppMsg::OpenCommunity(community_id)); sender
.output_sender()
.emit(crate::AppMsg::OpenCommunity(community_id));
} }
PostInput::OpenLink => { PostInput::OpenLink => {
let post = self.info.post_view.post.clone(); let post = self.info.post_view.post.clone();
@ -317,7 +321,9 @@ impl SimpleComponent for PostPage {
let post_id = self.info.post_view.post.id; let post_id = self.info.post_view.post.id;
std::thread::spawn(move || { std::thread::spawn(move || {
let _ = api::post::delete_post(post_id); let _ = api::post::delete_post(post_id);
let _ = sender.output(crate::AppMsg::StartFetchPosts(None, true)); sender
.output_sender()
.emit(crate::AppMsg::StartFetchPosts(None, true));
}); });
} }
PostInput::OpenEditPostDialog => { PostInput::OpenEditPostDialog => {
@ -361,7 +367,7 @@ impl SimpleComponent for PostPage {
self.info.post_view = post; self.info.post_view = post;
} }
PostInput::PassAppMessage(message) => { PostInput::PassAppMessage(message) => {
let _ = sender.output(message); sender.output_sender().emit(message);
} }
} }
} }

View File

@ -175,7 +175,9 @@ impl FactoryComponent for PostRow {
let post_id = self.post.post.id; let post_id = self.post.post.id;
std::thread::spawn(move || { std::thread::spawn(move || {
let _ = api::post::delete_post(post_id); let _ = api::post::delete_post(post_id);
let _ = sender.output(crate::AppMsg::StartFetchPosts(None, true)); sender
.output_sender()
.emit(crate::AppMsg::StartFetchPosts(None, true));
}); });
} }
} }

View File

@ -204,7 +204,7 @@ impl SimpleComponent for EditorDialog {
true => EditorOutput::CreateRequest(post, self.type_), true => EditorOutput::CreateRequest(post, self.type_),
false => EditorOutput::EditRequest(post, self.type_), false => EditorOutput::EditRequest(post, self.type_),
}; };
let _ = sender.output(message); sender.output_sender().emit(message);
self.visible = false; self.visible = false;
} }
DialogMsg::UpdateType(type_, is_new) => { DialogMsg::UpdateType(type_, is_new) => {