mirror of
https://github.com/chshersh/github-tui.git
synced 2024-10-05 14:57:53 +03:00
Move tab widgets into a separate file
This commit is contained in:
parent
dfcca199c3
commit
20bf532497
@ -10,10 +10,10 @@ val str : string -> doc
|
||||
(** Create a single chunk of string with formatting. *)
|
||||
val fmt : styles -> string -> doc
|
||||
|
||||
(** Put all documents in a list vertically after each other with a line separator. *)
|
||||
(** Put all documents in a list horizontally, automatically adding required padding. *)
|
||||
val row : doc list -> doc
|
||||
|
||||
(** Put all documents in a list horizontally, automatically adding required padding. *)
|
||||
(** Put all documents in a list vertically after each other with a line separator. *)
|
||||
val col : doc list -> doc
|
||||
|
||||
(** Render the resulting document. *)
|
||||
|
@ -4,32 +4,14 @@ let style_directory = ANSITerminal.[ Bold; magenta ]
|
||||
|
||||
let tabs_section cur_tab =
|
||||
let open Pretty in
|
||||
let p_tab tab txt =
|
||||
if cur_tab = tab then fmt style_selected txt else str txt
|
||||
in
|
||||
let sep = col [ str " "; str " "; str "─" ] in
|
||||
row
|
||||
[
|
||||
col
|
||||
[
|
||||
p_tab Model.Code "╭──────╮";
|
||||
p_tab Model.Code "│ Code │";
|
||||
p_tab Model.Code "└──────┴";
|
||||
];
|
||||
Widget.code_tab ~is_selected:(cur_tab = Model.Code);
|
||||
sep;
|
||||
col
|
||||
[
|
||||
p_tab Model.Issues "╭────────╮";
|
||||
p_tab Model.Issues "│ Issues │";
|
||||
p_tab Model.Issues "┴────────┴";
|
||||
];
|
||||
Widget.issues_tab ~is_selected:(cur_tab = Model.Issues);
|
||||
sep;
|
||||
col
|
||||
[
|
||||
p_tab Model.PullRequests "╭───────────────╮";
|
||||
p_tab Model.PullRequests "│ Pull Requests │";
|
||||
p_tab Model.PullRequests "┴───────────────┘";
|
||||
];
|
||||
Widget.pull_requests_tab ~is_selected:(cur_tab = Model.PullRequests);
|
||||
]
|
||||
|
||||
let current_path_to_doc root_path parents =
|
||||
|
29
lib/tui/widget.ml
Normal file
29
lib/tui/widget.ml
Normal file
@ -0,0 +1,29 @@
|
||||
let style_selected = ANSITerminal.[ Bold; green ]
|
||||
|
||||
(* let style_directory = ANSITerminal.[ Bold; magenta ] *)
|
||||
|
||||
let tab_doc ~is_selected tab_lines =
|
||||
let open Pretty in
|
||||
let format = if is_selected then fmt style_selected else str in
|
||||
tab_lines |> List.map format |> col
|
||||
|
||||
let code_tab ~is_selected =
|
||||
tab_doc ~is_selected
|
||||
[ "╭──────╮";
|
||||
"│ Code │";
|
||||
"└──────┴";
|
||||
] [@@ocamlformat "disable"]
|
||||
|
||||
let issues_tab ~is_selected =
|
||||
tab_doc ~is_selected
|
||||
[ "╭────────╮";
|
||||
"│ Issues │";
|
||||
"┴────────┴";
|
||||
] [@@ocamlformat "disable"]
|
||||
|
||||
let pull_requests_tab ~is_selected =
|
||||
tab_doc ~is_selected
|
||||
[ "╭───────────────╮";
|
||||
"│ Pull Requests │";
|
||||
"┴───────────────┘";
|
||||
] [@@ocamlformat "disable"]
|
Loading…
Reference in New Issue
Block a user