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