use crossterm::event::{MouseEvent, MouseEventKind};
use crate::tui::app::state::App;
use super::overlay_scroll::{scroll_overlay_down, scroll_overlay_up};
use super::scroll_down::scroll_down_by_mode;
use super::scroll_up::scroll_up_by_mode;
const AMOUNT: usize = 3;
pub(super) fn scroll_mouse_up(app: &mut App) {
if app.state.show_help {
app.state.help_scroll.scroll_up(AMOUNT);
return;
}
if scroll_overlay_up(app, AMOUNT) {
return;
}
scroll_up_by_mode(app, AMOUNT);
}
pub(super) fn scroll_mouse_down(app: &mut App) {
if app.state.show_help {
app.state.help_scroll.scroll_down(AMOUNT, 200);
return;
}
if scroll_overlay_down(app, AMOUNT) {
return;
}
scroll_down_by_mode(app, AMOUNT);
}
pub fn handle_mouse_event(app: &mut App, mouse: MouseEvent) {
match mouse.kind {
MouseEventKind::ScrollUp => scroll_mouse_up(app),
MouseEventKind::ScrollDown => scroll_mouse_down(app),
_ => {}
}
}