use crate::palette::command::{CommandCategory, CommandDef, CommandId};
use crate::app::Action;
pub fn reset_commands() -> Vec<CommandDef> {
vec![
CommandDef {
id: CommandId::ResetSoft,
name: "Reset soft HEAD~1",
key: "rs",
category: CommandCategory::Reset,
description: "Reset soft to HEAD~1",
action_factory: |state| {
if state.reset_pending.as_deref() == Some("--soft") {
Some(Action::ResetSoft)
} else {
Some(Action::RequestResetSoft)
}
},
is_enabled: |_| true,
keywords: &["reset", "soft", "head"],
},
CommandDef {
id: CommandId::ResetMixed,
name: "Reset mixed HEAD~1",
key: "rm",
category: CommandCategory::Reset,
description: "Reset mixed to HEAD~1",
action_factory: |state| {
if state.reset_pending.as_deref() == Some("--mixed") {
Some(Action::ResetMixed)
} else {
Some(Action::RequestResetMixed)
}
},
is_enabled: |_| true,
keywords: &["reset", "mixed", "head"],
},
CommandDef {
id: CommandId::ResetHard,
name: "Reset hard HEAD~1",
key: "rh",
category: CommandCategory::Reset,
description: "Reset hard to HEAD~1 (destructive)",
action_factory: |state| {
if state.reset_pending.as_deref() == Some("--hard") {
Some(Action::ResetHard)
} else {
Some(Action::RequestResetHard)
}
},
is_enabled: |_| true,
keywords: &["reset", "hard", "head", "destructive"],
},
]
}