diff options
Diffstat (limited to 'src/preview/preview_dir.rs')
-rw-r--r-- | src/preview/preview_dir.rs | 20 |
1 files changed, 17 insertions, 3 deletions
diff --git a/src/preview/preview_dir.rs b/src/preview/preview_dir.rs index cf592a9..ab0931b 100644 --- a/src/preview/preview_dir.rs +++ b/src/preview/preview_dir.rs @@ -4,6 +4,7 @@ use std::thread; use crate::context::AppContext; use crate::event::AppEvent; use crate::fs::JoshutoDirList; +use crate::preview::preview_default::PreviewState; pub struct Background {} @@ -16,11 +17,24 @@ impl Background { .curr_tab_ref() .option_ref() .clone(); + let tab_id = context.tab_context_ref().curr_tab_id(); + + // add to loading state + context + .tab_context_mut() + .curr_tab_mut() + .history_metadata_mut() + .insert(p.clone(), PreviewState::Loading); thread::spawn(move || { - if let Ok(dirlist) = JoshutoDirList::from_path(p, &options, &tab_options) { - let _ = event_tx.send(AppEvent::PreviewDir(Ok(Box::new(dirlist)))); - } + let path_clone = p.clone(); + let dir_res = JoshutoDirList::from_path(p, &options, &tab_options); + let res = AppEvent::PreviewDir { + id: tab_id, + path: path_clone, + res: Box::new(dir_res), + }; + let _ = event_tx.send(res); }) } } |