use super::super::state::{EmojiMode, StudioState};
pub fn set_preset(state: &mut StudioState, preset: String) {
state.modes.commit.preset = preset;
state.mark_dirty();
}
pub fn toggle_gitmoji(state: &mut StudioState) {
state.modes.commit.use_gitmoji = !state.modes.commit.use_gitmoji;
state.modes.commit.emoji_mode = if state.modes.commit.use_gitmoji {
EmojiMode::Auto
} else {
EmojiMode::None
};
state.mark_dirty();
}
pub fn set_emoji(state: &mut StudioState, emoji: String) {
state.modes.commit.emoji_mode = if emoji.is_empty() {
EmojiMode::None
} else {
EmojiMode::Custom(emoji)
};
state.mark_dirty();
}
pub fn toggle_amend_mode(state: &mut StudioState) {
state.modes.commit.amend_mode = !state.modes.commit.amend_mode;
if state.modes.commit.amend_mode {
if let Some(repo) = &state.repo
&& let Ok(msg) = repo.get_head_commit_message()
{
state.modes.commit.original_message = Some(msg);
}
} else {
state.modes.commit.original_message = None;
}
state.modes.commit.messages.clear();
state.modes.commit.message_editor.clear();
state.mark_dirty();
}