Feat: ability to rename steps

This commit is contained in:
2026-01-30 11:58:16 +01:00
parent d25b1317fc
commit 77a6aa9eb7
9 changed files with 149 additions and 12 deletions

View File

@@ -324,6 +324,34 @@ fn handle_modal_input(ctx: &mut InputContext, key: KeyEvent) -> InputResult {
KeyCode::Char(c) => name.push(c),
_ => {}
},
Modal::RenameStep {
bank,
pattern,
step,
name,
} => match key.code {
KeyCode::Enter => {
let (bank_idx, pattern_idx, step_idx) = (*bank, *pattern, *step);
let new_name = if name.trim().is_empty() {
None
} else {
Some(name.clone())
};
ctx.dispatch(AppCommand::RenameStep {
bank: bank_idx,
pattern: pattern_idx,
step: step_idx,
name: new_name,
});
ctx.dispatch(AppCommand::CloseModal);
}
KeyCode::Esc => ctx.dispatch(AppCommand::CloseModal),
KeyCode::Backspace => {
name.pop();
}
KeyCode::Char(c) => name.push(c),
_ => {}
},
Modal::SetPattern { field, input } => match key.code {
KeyCode::Enter => {
let field = *field;
@@ -871,6 +899,23 @@ fn handle_main_page(ctx: &mut InputContext, key: KeyEvent, ctrl: bool) -> InputR
}));
}
}
KeyCode::Char('r') => {
let (bank, pattern, step) = (
ctx.app.editor_ctx.bank,
ctx.app.editor_ctx.pattern,
ctx.app.editor_ctx.step,
);
let current_name = ctx.app.current_edit_pattern()
.step(step)
.and_then(|s| s.name.clone())
.unwrap_or_default();
ctx.dispatch(AppCommand::OpenModal(Modal::RenameStep {
bank,
pattern,
step,
name: current_name,
}));
}
KeyCode::Char('?') => {
ctx.dispatch(AppCommand::OpenModal(Modal::KeybindingsHelp { scroll: 0 }));
}