use crate::git::pack::PackIndex;
use crate::tui::model::PackObject;
#[derive(Debug, Clone)]
pub enum Command {
LoadInitial,
LoadPackObjects { path: std::path::PathBuf },
}
#[derive(Debug, Clone)]
pub struct InitialGitData {
pub git_objects_list: Vec<crate::tui::model::GitObject>,
}
use ratatui::text::Text;
#[derive(Debug)]
pub enum Message {
Quit,
LoadGitObjects(Result<(), String>),
GitObjectsLoaded(InitialGitData),
LoadGitObjectInfo(Result<String, String>),
LoadEducationalContent(Result<Text<'static>, String>),
Refresh,
LoadPackObjects {
path: std::path::PathBuf,
result: Result<Vec<PackObject>, String>,
},
LoadPackIndexDetails(Box<Result<PackIndex, String>>),
MainNavigation(MainNavigation),
PackNavigation(PackNavigation),
LooseObjectNavigation(LooseObjectNavigation),
OpenMainView,
OpenPackView,
OpenLooseObjectView,
TimerTick,
TerminalResize(u16, u16), KeyEvent(crossterm::event::KeyEvent),
}
#[derive(Debug)]
pub enum MainNavigation {
ScrollEducationalUp,
ScrollEducationalDown,
ScrollEducationalToTop,
ScrollEducationalToBottom,
SelectPreviouwGitObject,
SelectNextGitObject,
SelectFirstGitObject,
SelectLastGitObject,
ToggleExpand,
JumpToParentCategory,
ScrollPreviewUp,
ScrollPreviewDown,
ScrollPreviewToTop,
ScrollPreviewToBottom,
SelectNextPackObject,
SelectPreviousPackObject,
SelectFirstPackObject,
SelectLastPackObject,
FocusGitObjects,
FocusPackObjectDetails,
FocusEducationalOrList,
FocusToggle,
}
#[derive(Debug)]
pub enum PackNavigation {
ScrollUp,
ScrollDown,
ScrollToTop,
ScrollToBottom,
}
#[derive(Debug)]
pub enum LooseObjectNavigation {
ScrollUp,
ScrollDown,
ScrollToTop,
ScrollToBottom,
}