From 61c9fc623df40f89241f6ab4e231066f535f3fd8 Mon Sep 17 00:00:00 2001 From: jay Date: Mon, 14 Feb 2022 17:44:06 +0800 Subject: [PATCH] [feat] add keys description --- src/main.rs | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/src/main.rs b/src/main.rs index 793880a..5a03454 100644 --- a/src/main.rs +++ b/src/main.rs @@ -70,11 +70,13 @@ impl StatefulList { } } +#[derive(PartialEq)] enum PageState { Images, Tags, } +#[derive(PartialEq)] enum LoadingState { Init, Loading, @@ -356,6 +358,46 @@ fn show_info(f: &mut Frame, app: &mut App, area: Rect) { let paragraph = Paragraph::new(texts).block(Block::default().borders(Borders::NONE)); f.render_widget(paragraph, chunks[0]); + + { + // show keys + let chunks = Layout::default() + .direction(Direction::Horizontal) + .constraints( + [ + Constraint::Percentage(30), + Constraint::Percentage(30), + Constraint::Percentage(20), + ] + .as_ref(), + ) + .split(chunks[1]); + + let mut global_keys = vec![Spans::from(vec![ + Span::styled("q", Style::default().fg(Color::Yellow)), + Span::raw(" quit"), + ])]; + + let mut tags_keys: Vec = vec![]; + + if app.page_state == PageState::Tags { + global_keys.push(Spans::from(vec![ + Span::styled("esc", Style::default().fg(Color::Yellow)), + Span::raw(" back to images"), + ])); + + tags_keys.push(Spans::from(vec![ + Span::styled("c", Style::default().fg(Color::Yellow)), + Span::raw(" copy docker image uri"), + ])); + } + + let paragraph = Paragraph::new(global_keys).block(Block::default().borders(Borders::NONE)); + f.render_widget(paragraph, chunks[0]); + + let paragraph = Paragraph::new(tags_keys).block(Block::default().borders(Borders::NONE)); + f.render_widget(paragraph, chunks[1]); + } } fn page_images(f: &mut Frame, app: &mut App, area: Rect) {