forked from kemitix/git-next
feat(tui): add time and version in border
This commit is contained in:
parent
8359d0d7ca
commit
978205b823
4 changed files with 22 additions and 4 deletions
1
Cargo.lock
generated
1
Cargo.lock
generated
|
@ -1100,6 +1100,7 @@ dependencies = [
|
|||
"assert2",
|
||||
"bon",
|
||||
"bytes",
|
||||
"chrono",
|
||||
"clap",
|
||||
"color-eyre",
|
||||
"derive-with",
|
||||
|
|
|
@ -33,6 +33,7 @@ lazy_static = "1.5"
|
|||
color-eyre = "0.6"
|
||||
tui-scrollview = "0.4"
|
||||
regex = "1.10"
|
||||
chrono = "0.4"
|
||||
|
||||
# CLI parsing
|
||||
clap = { version = "4.5", features = ["cargo", "derive"] }
|
||||
|
|
|
@ -16,7 +16,7 @@ categories = { workspace = true }
|
|||
default = ["forgejo", "github", "tui"]
|
||||
forgejo = ["git-next-forge-forgejo"]
|
||||
github = ["git-next-forge-github"]
|
||||
tui = ["ratatui", "directories", "lazy_static", "tui-scrollview", "regex"]
|
||||
tui = ["ratatui", "directories", "lazy_static", "tui-scrollview", "regex", "chrono"]
|
||||
|
||||
[dependencies]
|
||||
git-next-core = { workspace = true }
|
||||
|
@ -30,6 +30,7 @@ lazy_static = { workspace = true, optional = true }
|
|||
color-eyre = { workspace = true }
|
||||
tui-scrollview = { workspace = true, optional = true }
|
||||
regex = { workspace = true, optional = true }
|
||||
chrono = { workspace = true, optional = true }
|
||||
|
||||
# CLI parsing
|
||||
clap = { workspace = true }
|
||||
|
|
|
@ -5,7 +5,10 @@ use ratatui::{
|
|||
style::{Color, Style, Stylize as _},
|
||||
symbols::border,
|
||||
text::{Line, Span},
|
||||
widgets::{block::Title, Block, Paragraph, StatefulWidget, Widget},
|
||||
widgets::{
|
||||
block::{Position, Title},
|
||||
Block, Paragraph, StatefulWidget, Widget,
|
||||
},
|
||||
};
|
||||
|
||||
use git_next_core::{
|
||||
|
@ -51,6 +54,10 @@ impl State {
|
|||
}
|
||||
}
|
||||
|
||||
fn time() -> String {
|
||||
chrono::Local::now().format("%H:%M").to_string()
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, PartialEq, Eq)]
|
||||
pub enum ServerState {
|
||||
/// UI has started but has no information on the state of the server
|
||||
|
@ -356,7 +363,10 @@ impl StatefulWidget for &State {
|
|||
Self: Sized,
|
||||
{
|
||||
let block = Block::bordered()
|
||||
.title(Title::from(" Git-Next ".bold()).alignment(Alignment::Center))
|
||||
.title(
|
||||
Title::from(format!(" Git-Next v{} ", clap::crate_version!()).bold())
|
||||
.alignment(Alignment::Center),
|
||||
)
|
||||
.title(
|
||||
Title::from(Line::from(vec![
|
||||
" [q]uit ".into(),
|
||||
|
@ -364,7 +374,12 @@ impl StatefulWidget for &State {
|
|||
" ".into(),
|
||||
]))
|
||||
.alignment(Alignment::Center)
|
||||
.position(ratatui::widgets::block::Position::Bottom),
|
||||
.position(Position::Bottom),
|
||||
)
|
||||
.title(
|
||||
Title::from(format!(" {} ", time()))
|
||||
.alignment(Alignment::Right)
|
||||
.position(Position::Bottom),
|
||||
)
|
||||
.border_set(border::THICK);
|
||||
let interior = block.inner(area);
|
||||
|
|
Loading…
Reference in a new issue