create new ctor for TagList
This commit is contained in:
parent
7748212878
commit
30f3050c6c
@ -3,5 +3,5 @@ mod ui;
|
|||||||
mod widget;
|
mod widget;
|
||||||
|
|
||||||
fn main() {
|
fn main() {
|
||||||
ui::Ui::run();
|
ui::Ui::run("rocketchat/rocket.chat");
|
||||||
}
|
}
|
||||||
|
18
src/ui.rs
18
src/ui.rs
@ -11,7 +11,6 @@ use tui::Terminal;
|
|||||||
use crate::tags;
|
use crate::tags;
|
||||||
use crate::widget::repo_entry;
|
use crate::widget::repo_entry;
|
||||||
use crate::widget::tag_list;
|
use crate::widget::tag_list;
|
||||||
// use crate::widget::Widget;
|
|
||||||
|
|
||||||
pub struct Ui {
|
pub struct Ui {
|
||||||
state: State,
|
state: State,
|
||||||
@ -26,12 +25,13 @@ pub enum State {
|
|||||||
}
|
}
|
||||||
|
|
||||||
impl Ui {
|
impl Ui {
|
||||||
pub fn run() {
|
pub fn run(repo_id: &str) {
|
||||||
let mut ui = Ui {
|
let mut ui = Ui {
|
||||||
state: State::EditRepo,
|
state: State::EditRepo,
|
||||||
repo: repo_entry::RepoEntry::new("This is a text"),
|
repo: repo_entry::RepoEntry::new(repo_id),
|
||||||
tags: tag_list::TagList::new(vec![String::from("editing Repository")]),
|
tags: tag_list::TagList::new(vec![String::from("Fetching Tags")]),
|
||||||
};
|
};
|
||||||
|
ui.tags = tag_list::TagList::new_with_result(tags::Tags::get_tags(ui.repo.get()));
|
||||||
|
|
||||||
//setup tui
|
//setup tui
|
||||||
let stdout = io::stdout().into_raw_mode().unwrap();
|
let stdout = io::stdout().into_raw_mode().unwrap();
|
||||||
@ -74,14 +74,8 @@ impl Ui {
|
|||||||
Ok(Key::Char('\n')) => {
|
Ok(Key::Char('\n')) => {
|
||||||
if ui.state == State::EditRepo {
|
if ui.state == State::EditRepo {
|
||||||
ui.repo.confirm();
|
ui.repo.confirm();
|
||||||
match tags::Tags::get_tags(ui.repo.get()) {
|
ui.tags =
|
||||||
Ok(lines) => ui.tags = tag_list::TagList::new(lines),
|
tag_list::TagList::new_with_result(tags::Tags::get_tags(ui.repo.get()));
|
||||||
Err(_) => {
|
|
||||||
ui.tags = tag_list::TagList::new_line(
|
|
||||||
"Error fetich tags. Is there a typo in the Repository?",
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Ok(Key::Char(key)) => {
|
Ok(Key::Char(key)) => {
|
||||||
|
@ -2,6 +2,7 @@ use termion::event::Key;
|
|||||||
use tui::style::{Color, Style};
|
use tui::style::{Color, Style};
|
||||||
use tui::widgets::{Block, Borders, List, ListState};
|
use tui::widgets::{Block, Borders, List, ListState};
|
||||||
|
|
||||||
|
use crate::tags::Error;
|
||||||
use crate::ui::State;
|
use crate::ui::State;
|
||||||
|
|
||||||
pub struct TagList {
|
pub struct TagList {
|
||||||
@ -24,6 +25,13 @@ impl TagList {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn new_with_result(result: Result<Vec<String>, Error>) -> Self {
|
||||||
|
match result {
|
||||||
|
Ok(lines) => Self::new(lines),
|
||||||
|
Err(_) => Self::new_line("Error fetching tags. Is there a typo in the Repository?"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
pub fn render(&mut self, state: &State) -> (List, &mut ListState) {
|
pub fn render(&mut self, state: &State) -> (List, &mut ListState) {
|
||||||
let border_style = if state == &State::SelectTag {
|
let border_style = if state == &State::SelectTag {
|
||||||
Style::default().fg(Color::Green)
|
Style::default().fg(Color::Green)
|
||||||
|
Loading…
Reference in New Issue
Block a user