mirror of
https://github.com/atuinsh/atuin.git
synced 2025-06-20 01:47:59 +02:00
fix(client): no panic on empty inspector (#1768)
* fix(client): no panic on empty inspector * fix: clippy warning Although I am not that happy with this clippy rule. I am old school and we learned to put the most likely path first. Back then compiler optimizations were not too great and cache prediction was better handled this way. * Update atuin/src/command/client/search/interactive.rs --------- Co-authored-by: Ellie Huxtable <ellie@elliehuxtable.com>
This commit is contained in:
parent
cf09464d4d
commit
91ddcd60ca
@ -39,7 +39,7 @@ use ratatui::{
|
||||
prelude::*,
|
||||
style::{Color, Modifier, Style},
|
||||
text::{Line, Span, Text},
|
||||
widgets::{Block, BorderType, Borders, Paragraph, Tabs},
|
||||
widgets::{block::Title, Block, BorderType, Borders, Padding, Paragraph, Tabs},
|
||||
Frame, Terminal, TerminalOptions, Viewport,
|
||||
};
|
||||
|
||||
@ -580,12 +580,26 @@ impl State {
|
||||
}
|
||||
|
||||
1 => {
|
||||
super::inspector::draw(
|
||||
f,
|
||||
results_list_chunk,
|
||||
&results[self.results_state.selected()],
|
||||
&stats.expect("Drawing inspector, but no stats"),
|
||||
);
|
||||
if results.is_empty() {
|
||||
let message = Paragraph::new("Nothing to inspect")
|
||||
.block(
|
||||
Block::new()
|
||||
.title(
|
||||
Title::from(" Info ".to_string()).alignment(Alignment::Center),
|
||||
)
|
||||
.borders(Borders::ALL)
|
||||
.padding(Padding::vertical(2)),
|
||||
)
|
||||
.alignment(Alignment::Center);
|
||||
f.render_widget(message, results_list_chunk);
|
||||
} else {
|
||||
super::inspector::draw(
|
||||
f,
|
||||
results_list_chunk,
|
||||
&results[self.results_state.selected()],
|
||||
&stats.expect("Drawing inspector, but no stats"),
|
||||
);
|
||||
}
|
||||
|
||||
// HACK: I'm following up with abstracting this into the UI container, with a
|
||||
// sub-widget for search + for inspector
|
||||
@ -988,9 +1002,11 @@ pub async fn history(
|
||||
|
||||
stats = if app.tab_index == 0 {
|
||||
None
|
||||
} else {
|
||||
} else if !results.is_empty() {
|
||||
let selected = results[app.results_state.selected()].clone();
|
||||
Some(db.stats(&selected).await?)
|
||||
} else {
|
||||
None
|
||||
};
|
||||
};
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user