Film modal now obtains data from DataManager

This commit is contained in:
Reinout Meliesie 2025-02-18 17:40:37 +01:00
commit 20326fde8f
Signed by: zedfrigg
GPG key ID: 3AFCC06481308BC6
3 changed files with 51 additions and 36 deletions

View file

@ -15,6 +15,7 @@ use crate :: data_manager :: * ;
use crate :: error :: * ;
use crate :: error :: ZoodexError :: * ;
use crate :: ui :: * ;
use crate :: utility :: * ;
@ -38,13 +39,26 @@ fn add_style_provider ( _ : & Application ) {
}
fn show_window ( application : & Application ) {
let ui = UI :: new (application) ;
ui . show_window () ;
let window = leak (
ApplicationWindow :: builder ()
. application (application)
. title ("Zoödex")
. build ()
) ;
spawn_future_local ( async move {
async_result_context ! (
async {
let data_manager = DataManager :: new () . await ? ;
let data_manager = leak ( DataManager :: new () . await ? ) ;
let ui = UI :: new (
window ,
|film_uuid| Box :: pin ( async {
data_manager . get_film_details (film_uuid) . await . unwrap ()
} ) ,
) ;
window . set_visible (true) ;
let collection = data_manager . get_collection_overview () . await ? ;
ui . render_collection_overview (collection) . await ;
Ok (())
@ -53,7 +67,7 @@ fn show_window ( application : & Application ) {
match error {
CollectionFileReadError => eprintln ! ("Could not read collection file") ,
} ;
ui . close_window () ;
window . close () ;
} ,
) ;
} ) ;