diff --git a/src/client/ui.rs b/src/client/ui.rs index 648880a..efb0ca3 100644 --- a/src/client/ui.rs +++ b/src/client/ui.rs @@ -471,25 +471,37 @@ impl UI { Some(i) => { assert!(self.ports.len() > 0, "We must have ports because we have a selection."); if i == 0 { - self.ports.len() - 1 + Some(self.ports.len() - 1) } else { - i - 1 + Some(i - 1) + } + } + None => { + if self.ports.len() > 0 { + Some(0) + } else { + None } } - None => 0, }; - self.selection.select(Some(index)); + self.selection.select(index); } KeyEvent { code: KeyCode::Down, .. } | KeyEvent { code: KeyCode::Char('j'), .. } => { let index = match self.selection.selected() { Some(i) => { assert!(self.ports.len() > 0, "We must have ports because we have a selection."); - (i + 1) % self.ports.len() + Some((i + 1) % self.ports.len()) + } + None => { + if self.ports.len() > 0 { + Some(0) + } else { + None + } } - None => 0, }; - self.selection.select(Some(index)); + self.selection.select(index); } KeyEvent { code: KeyCode::Enter, .. } => { if let Some(p) = self.get_selected_port() {