refactor: statefulList next/previous

This commit is contained in:
Jack Wills
2024-11-16 13:38:41 +00:00
parent 2860426d57
commit 7bb2bef28d
+13 -15
View File
@@ -172,27 +172,25 @@ impl<T> StatefulList<T> {
pub fn next(&mut self) { pub fn next(&mut self) {
if !self.items.is_empty() { if !self.items.is_empty() {
let i = match self.state.selected() { self.state.select(Some(self.state.selected().map_or(0, |i| {
Some(i) => { if i < self.items.len() - 1 {
if i < self.items.len() - 1 { i + 1
i + 1 } else {
} else { i
i
}
} }
None => 0, })));
};
self.state.select(Some(i));
} }
} }
pub fn previous(&mut self) { pub fn previous(&mut self) {
if !self.items.is_empty() { if !self.items.is_empty() {
let i = self self.state.select(Some(self.state.selected().map_or(0, |i| {
.state if i == 0 {
.selected() 0
.map_or(0, |i| if i == 0 { 0 } else { i - 1 }); } else {
self.state.select(Some(i)); i - 1
}
})));
} }
} }