use crate::common::{env_var::env_var, print_formatted_error::print_formatted_error};
use dialoguer::{console::style, theme::ColorfulTheme, Sort};
pub fn pagination_list(items: Vec<String>, prompt: String, error_message: &str) {
let theme = ColorfulTheme {
prompt_prefix: style("".to_string()),
..ColorfulTheme::default()
};
let items_per_page: usize = match env_var("ITEMS_PER_PAGE").parse() {
Ok(items_per_page) => items_per_page,
Err(_) => {
print_formatted_error("Fail parsing the number of items per page.");
std::process::exit(1);
}
};
match Sort::with_theme(&theme)
.with_prompt(prompt)
.max_length(items_per_page)
.items(&items)
.clear(false)
.report(false)
.interact_opt()
{
Ok(_) => {
std::process::exit(0);
}
Err(_) => {
print_formatted_error(error_message);
std::process::exit(1);
}
};
}