refactor: statefulList next/previous
This commit is contained in:
@@ -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
|
||||||
|
}
|
||||||
|
})));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user