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;
std::thread::spawn(move || {
let _ = api::comment::delete_comment(comment_id);
let _ = sender.output(PostInput::PassAppMessage(
sender.output_sender().emit(PostInput::PassAppMessage(
crate::AppMsg::StartFetchPosts(None, true),
));
});

View File

@ -133,7 +133,9 @@ impl SimpleComponent for CommunitiesPage {
sender.input(CommunitiesPageInput::DoneFetchCommunities(communities));
}
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 {
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 || {
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()),
};
let _ = sender.output(message);
sender.output_sender().emit(message);
});
}
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 => {
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 => {
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 => {
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;
std::thread::spawn(move || {
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 => {
@ -361,7 +367,7 @@ impl SimpleComponent for PostPage {
self.info.post_view = post;
}
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;
std::thread::spawn(move || {
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_),
false => EditorOutput::EditRequest(post, self.type_),
};
let _ = sender.output(message);
sender.output_sender().emit(message);
self.visible = false;
}
DialogMsg::UpdateType(type_, is_new) => {