summaryrefslogtreecommitdiffstats
path: root/src/preview/preview_dir.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/preview/preview_dir.rs')
-rw-r--r--src/preview/preview_dir.rs20
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);
})
}
}