added a message when fetching next page of tags

This commit is contained in:
Thomas Eppers 2023-02-17 17:00:20 +01:00
parent 70cf17f1c7
commit 7fb519e70b
2 changed files with 22 additions and 4 deletions

View File

@ -69,21 +69,32 @@ impl Ui {
Ok(UiEvent::NewRepo(name)) => { Ok(UiEvent::NewRepo(name)) => {
{ {
let mut ui = ui.lock().unwrap(); let mut ui = ui.lock().unwrap();
ui.tags = TagList::with_status("fetching new tags..."); ui.tags = TagList::with_status("Fetching new tags...");
} }
let list = TagList::with_repo_name(name).await; let list = TagList::with_repo_name(name).await;
let mut ui = ui.lock().unwrap(); let mut ui = ui.lock().unwrap();
ui.tags = list; ui.tags = list;
} }
Ok(UiEvent::TagInput(key)) => { Ok(UiEvent::TagInput(key)) => {
let mut tags = { let (fetch_new, mut tags) = {
let ui_data = ui.lock().unwrap(); let mut ui_data = ui.lock().unwrap();
ui_data.tags.clone() let fetch_new = if (key == Key::Down || key == Key::Char('j'))
&& ui_data.tags.at_end_of_list()
{
ui_data.info.set_text("Fetching more tags...");
true
} else {
false
};
(fetch_new, ui_data.tags.clone())
}; };
tags.handle_input(key).await; tags.handle_input(key).await;
let mut ui = ui.lock().unwrap(); let mut ui = ui.lock().unwrap();
ui.tags = tags; ui.tags = tags;
ui.details = ui.tags.create_detail_widget(); ui.details = ui.tags.create_detail_widget();
if fetch_new {
ui.info.set_text("Fetching tags done");
}
} }
Err(e) => { Err(e) => {
let mut ui = ui.lock().unwrap(); let mut ui = ui.lock().unwrap();

View File

@ -87,6 +87,13 @@ impl TagList {
} }
} }
pub fn at_end_of_list(&self) -> bool {
if let Some(i) = self.state.selected() {
return i == self.lines.len() - 2;
}
false
}
pub fn render(&mut self, colored: bool) -> (List, &mut ListState) { pub fn render(&mut self, colored: bool) -> (List, &mut ListState) {
let border_style = if colored { let border_style = if colored {
Style::default().fg(Color::Green) Style::default().fg(Color::Green)