Refactor FilmGridItem::update to use Connector::forward

This commit is contained in:
Reinout Meliesie 2026-01-29 13:50:37 +01:00
commit 6dc4c4359a
Signed by: zedfrigg
GPG key ID: 3AFCC06481308BC6

View file

@ -184,21 +184,17 @@ impl FactoryComponent for FilmGridItem {
fn update(&mut self, message: FilmGridItemInput, sender: FactorySender<FilmGridItem>) { fn update(&mut self, message: FilmGridItemInput, sender: FactorySender<FilmGridItem>) {
match message { match message {
FilmGridItemInput::ItemClicked => { FilmGridItemInput::ItemClicked => {
let details_controller = FilmDetails::builder() let details_controller = FilmDetails::builder().launch(self.film.clone()).forward(
.launch(self.film.clone()) sender.input_sender(),
// TODO: Replace this with Connector::forward. |film_details_output| match film_details_output {
.connect_receiver(clone!( FilmDetailsOutput::WatchedStatusChanged(watched) => {
#[strong] FilmGridItemInput::WatchedStatusChanged(watched)
sender,
move |_, details_output| match details_output {
FilmDetailsOutput::WatchedStatusChanged(watched) => {
sender.input(FilmGridItemInput::WatchedStatusChanged(watched));
}
FilmDetailsOutput::DownloadedStatusChanged(downloaded) => {
sender.input(FilmGridItemInput::DownloadedStatusChanged(downloaded));
}
} }
)); FilmDetailsOutput::DownloadedStatusChanged(downloaded) => {
FilmGridItemInput::DownloadedStatusChanged(downloaded)
}
},
);
self.details = Some(details_controller); self.details = Some(details_controller);
} }
FilmGridItemInput::DetailsClosed => { FilmGridItemInput::DetailsClosed => {