diff --git a/client/src/functions/modes/edit/auth_e.rs b/client/src/functions/modes/edit/auth_e.rs index 24d3e57..f977a79 100644 --- a/client/src/functions/modes/edit/auth_e.rs +++ b/client/src/functions/modes/edit/auth_e.rs @@ -173,11 +173,7 @@ pub async fn execute_edit_action( let num_fields = state.fields().len(); if num_fields > 0 { let current_field = state.current_field(); - let new_field = if current_field == 0 { - num_fields - 1 - } else { - current_field - 1 - }; + let new_field = current_field.saturating_sub(1); state.set_current_field(new_field); let current_input = state.get_current_input(); let max_pos = current_input.len(); @@ -191,7 +187,7 @@ pub async fn execute_edit_action( "move_down" => { let num_fields = state.fields().len(); if num_fields > 0 { - let new_field = (state.current_field() + 1) % num_fields; + let new_field = (state.current_field() + 1).min(num_fields - 1); state.set_current_field(new_field); let current_input = state.get_current_input(); let max_pos = current_input.len(); diff --git a/client/src/functions/modes/edit/form_e.rs b/client/src/functions/modes/edit/form_e.rs index 33dfb5c..62c57a6 100644 --- a/client/src/functions/modes/edit/form_e.rs +++ b/client/src/functions/modes/edit/form_e.rs @@ -173,11 +173,7 @@ pub async fn execute_edit_action( let num_fields = state.fields().len(); if num_fields > 0 { let current_field = state.current_field(); - let new_field = if current_field == 0 { - num_fields - 1 - } else { - current_field - 1 - }; + let new_field = current_field.saturating_sub(1); state.set_current_field(new_field); let current_input = state.get_current_input(); let max_pos = current_input.len(); @@ -191,7 +187,7 @@ pub async fn execute_edit_action( "move_down" => { let num_fields = state.fields().len(); if num_fields > 0 { - let new_field = (state.current_field() + 1) % num_fields; + let new_field = (state.current_field() + 1).min(num_fields - 1); state.set_current_field(new_field); let current_input = state.get_current_input(); let max_pos = current_input.len(); diff --git a/client/src/functions/modes/read_only/auth_ro.rs b/client/src/functions/modes/read_only/auth_ro.rs index 9879557..fd9d7a5 100644 --- a/client/src/functions/modes/read_only/auth_ro.rs +++ b/client/src/functions/modes/read_only/auth_ro.rs @@ -33,11 +33,7 @@ pub async fn execute_action( return Ok("No fields to navigate.".to_string()); } let current_field = state.current_field(); - let new_field = if current_field == 0 { - num_fields - 1 - } else { - current_field - 1 - }; + let new_field = current_field.saturating_sub(1); state.set_current_field(new_field); let current_input = state.get_current_input(); let max_cursor_pos = if current_input.is_empty() { @@ -57,7 +53,7 @@ pub async fn execute_action( return Ok("No fields to navigate.".to_string()); } let current_field = state.current_field(); - let new_field = (current_field + 1) % num_fields; + let new_field = (state.current_field() + 1).min(num_fields - 1); state.set_current_field(new_field); let current_input = state.get_current_input(); let max_cursor_pos = if current_input.is_empty() { diff --git a/client/src/functions/modes/read_only/form_ro.rs b/client/src/functions/modes/read_only/form_ro.rs index 86d2a48..1a9b217 100644 --- a/client/src/functions/modes/read_only/form_ro.rs +++ b/client/src/functions/modes/read_only/form_ro.rs @@ -33,11 +33,7 @@ pub async fn execute_action( return Ok("No fields to navigate.".to_string()); } let current_field = state.current_field(); - let new_field = if current_field == 0 { - num_fields - 1 - } else { - current_field - 1 - }; + let new_field = current_field.saturating_sub(1); state.set_current_field(new_field); let current_input = state.get_current_input(); let max_cursor_pos = if current_input.is_empty() { @@ -56,7 +52,7 @@ pub async fn execute_action( return Ok("No fields to navigate.".to_string()); } let current_field = state.current_field(); - let new_field = (current_field + 1) % num_fields; + let new_field = (current_field + 1).min(num_fields - 1); state.set_current_field(new_field); let current_input = state.get_current_input(); let max_cursor_pos = if current_input.is_empty() {