diff --git a/src/commit.rs b/src/commit.rs index 44616b7d..3b1b24c7 100644 --- a/src/commit.rs +++ b/src/commit.rs @@ -1,9 +1,9 @@ -use crate::{clear::Clear, git_utils}; +use crate::{clear::Clear, git_utils, tui_utils}; use crossterm::event::{Event, KeyCode}; use std::borrow::Cow; -use tui::backend::Backend; -use tui::layout::{Alignment, Rect}; use tui::{ + backend::Backend, + layout::{Alignment, Rect}, style::{Color, Style}, widgets::{Block, Borders, Paragraph, Text, Widget}, Frame, @@ -55,7 +55,7 @@ impl UIElement for UICommit { .block(Block::default().title("Commit").borders(Borders::ALL)) .alignment(Alignment::Left), ) - .render(f, git_utils::centered_rect(60, 20, f.size())); + .render(f, tui_utils::centered_rect(60, 20, f.size())); } } diff --git a/src/git_utils.rs b/src/git_utils.rs index d146f565..ecfc4298 100644 --- a/src/git_utils.rs +++ b/src/git_utils.rs @@ -1,6 +1,5 @@ use git2::{DiffFormat, DiffOptions, Repository, StatusOptions, StatusShow}; use std::path::Path; -use tui::layout::{Constraint, Direction, Layout, Rect}; /// #[derive(Copy, Clone, PartialEq)] @@ -105,34 +104,6 @@ pub fn commit(msg: &String) { .unwrap(); } -/// use layouts to create a rects that -/// centers inside `r` and sizes `percent_x`/`percent_x` of `r` -pub fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect { - let popup_layout = Layout::default() - .direction(Direction::Vertical) - .constraints( - [ - Constraint::Percentage((100 - percent_y) / 2), - Constraint::Percentage(percent_y), - Constraint::Percentage((100 - percent_y) / 2), - ] - .as_ref(), - ) - .split(r); - - Layout::default() - .direction(Direction::Horizontal) - .constraints( - [ - Constraint::Percentage((100 - percent_x) / 2), - Constraint::Percentage(percent_x), - Constraint::Percentage((100 - percent_x) / 2), - ] - .as_ref(), - ) - .split(popup_layout[1])[1] -} - /// pub fn index_empty() -> bool { let repo = repo(); diff --git a/src/main.rs b/src/main.rs index dc572747..d658f2a0 100644 --- a/src/main.rs +++ b/src/main.rs @@ -4,6 +4,7 @@ mod commit; mod git_status; mod git_utils; mod poll; +mod tui_utils; use app::App; use crossterm::{ diff --git a/src/tui_utils.rs b/src/tui_utils.rs new file mode 100644 index 00000000..2b557946 --- /dev/null +++ b/src/tui_utils.rs @@ -0,0 +1,29 @@ +use tui::layout::{Constraint, Direction, Layout, Rect}; + +/// use layouts to create a rects that +/// centers inside `r` and sizes `percent_x`/`percent_x` of `r` +pub fn centered_rect(percent_x: u16, percent_y: u16, r: Rect) -> Rect { + let popup_layout = Layout::default() + .direction(Direction::Vertical) + .constraints( + [ + Constraint::Percentage((100 - percent_y) / 2), + Constraint::Percentage(percent_y), + Constraint::Percentage((100 - percent_y) / 2), + ] + .as_ref(), + ) + .split(r); + + Layout::default() + .direction(Direction::Horizontal) + .constraints( + [ + Constraint::Percentage((100 - percent_x) / 2), + Constraint::Percentage(percent_x), + Constraint::Percentage((100 - percent_x) / 2), + ] + .as_ref(), + ) + .split(popup_layout[1])[1] +}