diff --git a/client/src/functions/modes/edit/add_table_e.rs b/client/src/functions/modes/edit/add_table_e.rs index 855e6aa..50838dd 100644 --- a/client/src/functions/modes/edit/add_table_e.rs +++ b/client/src/functions/modes/edit/add_table_e.rs @@ -186,8 +186,11 @@ pub async fn execute_edit_action( let num_fields = AddTableState::INPUT_FIELD_COUNT; if num_fields > 0 { let current_field = state.current_field(); - let new_field = (current_field + 1) % num_fields; - state.set_current_field(new_field); + let last_field_index = num_fields - 1; + // Prevent cycling forward + if current_field < last_field_index { + state.set_current_field(current_field + 1); + } let current_input = state.get_current_input(); let max_pos = current_input.len(); state.set_current_cursor_pos((*ideal_cursor_column).min(max_pos)); @@ -198,12 +201,9 @@ pub async fn execute_edit_action( let num_fields = AddTableState::INPUT_FIELD_COUNT; if num_fields > 0 { let current_field = state.current_field(); - let new_field = if current_field == 0 { - num_fields - 1 - } else { - current_field - 1 - }; - state.set_current_field(new_field); + if current_field > 0 { + state.set_current_field(current_field - 1); + } let current_input = state.get_current_input(); let max_pos = current_input.len(); state.set_current_cursor_pos((*ideal_cursor_column).min(max_pos)); @@ -227,18 +227,16 @@ pub async fn execute_edit_action( Ok("".to_string()) } "move_up" => { - let num_fields = AddTableState::INPUT_FIELD_COUNT; - if num_fields > 0 { - let current_field = state.current_field(); - if current_field > 0 { - let new_field = current_field - 1; - state.set_current_field(new_field); - let current_input = state.get_current_input(); - let max_pos = current_input.len(); - state.set_current_cursor_pos((*ideal_cursor_column).min(max_pos)); - } + let current_field = state.current_field(); + // Prevent moving up from the first field + if current_field > 0 { + let new_field = current_field - 1; + state.set_current_field(new_field); + let current_input = state.get_current_input(); + let max_pos = current_input.len(); + state.set_current_cursor_pos((*ideal_cursor_column).min(max_pos)); } - Ok("".to_string()) + Ok("ahoj".to_string()) } "move_down" => { let num_fields = AddTableState::INPUT_FIELD_COUNT;