Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

10 changes: 5 additions & 5 deletions Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
[package]
name = "rex-tui"
version = "0.1.19"
edition = "2021"
version = "0.1.20"
edition = "2024"
authors = ["TheRustyPickle <rusty.pickle94@gmail.com>"]
readme = "README.md"
description = """
Expand All @@ -22,18 +22,18 @@ bench = false

[dependencies]
crossterm = "0.29.0"
rusqlite = { version = "0.36.0", features = ["bundled"] }
rusqlite = { version = "0.37.0", features = ["bundled"] }
chrono = "0.4.41"
open = "5.3.2"
atty = "0.2.14"
reqwest = { version = "0.12.19", features = ["blocking", "json"] }
reqwest = { version = "0.12.22", features = ["blocking", "json"] }
serde = { version = "1.0.219", features = ["derive"] }
dirs = "6.0.0"
thousands = "0.2.0"
semver = "1.0.26"
ratatui = "0.29.0"
strsim = "0.11.1"
serde_json = "1.0.140"
serde_json = "1.0.142"

[lints.rust]
unsafe_code = "forbid"
Expand Down
6 changes: 3 additions & 3 deletions src/activity_page/activity_ui.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
use ratatui::Frame;
use ratatui::layout::{Constraint, Direction, Layout};
use ratatui::style::{Modifier, Style};
use ratatui::widgets::{Cell, Row, Table};
use ratatui::Frame;
use thousands::Separable;

use crate::activity_page::ActivityData;
use crate::page_handler::{
ActivityTab, IndexedData, TableData, BACKGROUND, HEADER, SELECTED, TEXT,
ActivityTab, BACKGROUND, HEADER, IndexedData, SELECTED, TEXT, TableData,
};
use crate::utility::{create_tab, main_block, styled_block, LerpState};
use crate::utility::{LerpState, create_tab, main_block, styled_block};

#[cfg(not(tarpaulin_include))]
pub fn activity_ui(
Expand Down
6 changes: 3 additions & 3 deletions src/add_tx_page/add_tx_ui.rs
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
use ratatui::Frame;
use ratatui::layout::{Alignment, Constraint, Direction, Layout, Position};
use ratatui::style::{Modifier, Style};
use ratatui::text::{Line, Span};
use ratatui::widgets::{Cell, Paragraph, Row, Table};
use ratatui::Frame;
use rusqlite::Connection;
use thousands::Separable;

use crate::home_page::BALANCE_BOLD;
use crate::outputs::TxType;
use crate::page_handler::{HomeRow, TxTab, BACKGROUND, BLUE, BOX, GRAY, RED, TEXT};
use crate::page_handler::{BACKGROUND, BLUE, BOX, GRAY, HomeRow, RED, TEXT, TxTab};
use crate::tx_handler::TxData;
use crate::utility::{get_all_tx_methods, main_block, styled_block, LerpState};
use crate::utility::{LerpState, get_all_tx_methods, main_block, styled_block};

/// The function draws the Add Transaction page of the interface.
#[cfg(not(tarpaulin_include))]
Expand Down
12 changes: 6 additions & 6 deletions src/chart_page/chart_ui.rs
Original file line number Diff line number Diff line change
@@ -1,18 +1,18 @@
use chrono::{naive::NaiveDate, Duration};
use chrono::{Duration, naive::NaiveDate};
use ratatui::Frame;
use ratatui::layout::{Constraint, Direction, Layout};
use ratatui::style::{Color, Modifier, Style};
use ratatui::symbols::Marker;
use ratatui::text::Span;
use ratatui::widgets::{Axis, Block, Chart, Dataset, GraphType};
use ratatui::Frame;
use rusqlite::Connection;
use std::collections::HashMap;

use crate::chart_page::ChartData;
use crate::page_handler::{ChartTab, IndexedData, BACKGROUND, BOX, SELECTED};
use crate::page_handler::{BACKGROUND, BOX, ChartTab, IndexedData, SELECTED};
use crate::utility::{
create_tab, create_tab_activation, get_all_tx_methods, get_all_tx_methods_cumulative,
main_block, LerpState,
LerpState, create_tab, create_tab_activation, get_all_tx_methods,
get_all_tx_methods_cumulative, main_block,
};

/// Creates the balance chart from the transactions
Expand Down Expand Up @@ -235,7 +235,7 @@ pub fn chart_ui<S: ::std::hash::BuildHasher>(

if !to_add_again {
// Break the loop if total day amount is reached
if to_loop - 1.0 <= 0.0 {
if to_loop <= 0.0 {
date_labels.pop().unwrap();
date_labels.push(checking_date.to_string());
break;
Expand Down
6 changes: 3 additions & 3 deletions src/home_page/home_ui.rs
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
use ratatui::Frame;
use ratatui::layout::{Constraint, Direction, Layout};
use ratatui::style::{Modifier, Style};
use ratatui::widgets::{Cell, Row, Table};
use ratatui::Frame;
use rusqlite::Connection;
use thousands::Separable;

use crate::page_handler::{
HomeRow, HomeTab, IndexedData, TableData, BACKGROUND, BLUE, BOX, HEADER, RED, SELECTED, TEXT,
BACKGROUND, BLUE, BOX, HEADER, HomeRow, HomeTab, IndexedData, RED, SELECTED, TEXT, TableData,
};
use crate::utility::{create_tab, get_all_tx_methods, main_block, styled_block, LerpState};
use crate::utility::{LerpState, create_tab, get_all_tx_methods, main_block, styled_block};

pub const BALANCE_BOLD: [&str; 7] = [
"Balance",
Expand Down
2 changes: 1 addition & 1 deletion src/home_page/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,4 @@ mod home_data;
mod home_ui;

pub use home_data::TransactionData;
pub use home_ui::{home_ui, BALANCE_BOLD};
pub use home_ui::{BALANCE_BOLD, home_ui};
2 changes: 1 addition & 1 deletion src/initial_page/initial_ui.rs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
use ratatui::Frame;
use ratatui::layout::{Alignment, Constraint, Direction, Layout};
use ratatui::style::{Modifier, Style};
use ratatui::widgets::{Paragraph, Wrap};
use ratatui::Frame;

use crate::page_handler::{BACKGROUND, RED, TEXT};
use crate::popup_page::{A, F, H, Q, R, V, W, Y, Z};
Expand Down
1 change: 1 addition & 0 deletions src/initial_page/version_checker.rs
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ pub fn check_version() -> Result<Option<Vec<String>>, Error> {

let client = reqwest::blocking::Client::builder()
.user_agent("Rex")
.connect_timeout(Duration::from_secs(1))
.timeout(Duration::from_secs(2))
.build()?;

Expand Down
4 changes: 2 additions & 2 deletions src/key_checker/key_handler.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,8 @@ use crate::page_handler::{
use crate::summary_page::SummaryData;
use crate::tx_handler::TxData;
use crate::utility::{
add_new_activity, add_new_activity_tx, get_all_tx_methods, get_all_tx_methods_cumulative,
get_empty_changes, sort_table_data, switch_tx_index, LerpState,
LerpState, add_new_activity, add_new_activity_tx, get_all_tx_methods,
get_all_tx_methods_cumulative, get_empty_changes, sort_table_data, switch_tx_index,
};

/// Stores all the data that is required to handle
Expand Down
10 changes: 8 additions & 2 deletions src/outputs/error.rs
Original file line number Diff line number Diff line change
Expand Up @@ -14,8 +14,14 @@ impl Display for TerminalExecutionError {
#[cfg(not(tarpaulin_include))]
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> Result {
match self {
TerminalExecutionError::NotFound(output) => write!(f, "Error while trying to run any console/terminal. Use a terminal/console to run the app. Output:\n\n{output:?}", ),
TerminalExecutionError::ExecutionFailed(error) => write!(f, "Error while processing commands. Use a terminal/console to run the app. Output: {error}", ),
TerminalExecutionError::NotFound(output) => write!(
f,
"Error while trying to run any console/terminal. Use a terminal/console to run the app. Output:\n\n{output:?}",
),
TerminalExecutionError::ExecutionFailed(error) => write!(
f,
"Error while processing commands. Use a terminal/console to run the app. Output: {error}",
),
}
}
}
Expand Down
68 changes: 37 additions & 31 deletions src/page_handler/initializer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ use std::process;
use crate::db::{add_new_tx_methods, rename_column, reposition_column};
use crate::initial_page::check_version;
use crate::outputs::HandlingOutput;
use crate::page_handler::{start_app, ResetType, UserInputType};
use crate::page_handler::{ResetType, UserInputType, start_app};
use crate::utility::{
check_n_create_db, check_old_sql, create_backup_location_file, create_change_location_file,
delete_backup_db, delete_location_change, enter_tui_interface, exit_tui_interface,
Expand Down Expand Up @@ -72,8 +72,11 @@ pub fn initialize_app(
match status {
Ok(()) => start_timer("Added Transaction Methods Successfully."),
Err(e) => {
println!("Error while adding new Transaction Methods. Error: {e:?}.");
start_timer("");}
println!(
"Error while adding new Transaction Methods. Error: {e:?}."
);
start_timer("");
}
}
}
UserInputType::RenameTxMethod(rename_data) => {
Expand Down Expand Up @@ -112,7 +115,9 @@ pub fn initialize_app(

match file_copy_status {
Ok(_) => {
start_timer("New location set successfully. The app must be restarted for it to take effect. It will exit after this.");
start_timer(
"New location set successfully. The app must be restarted for it to take effect. It will exit after this.",
);
process::exit(0)
}
Err(e) => {
Expand All @@ -126,39 +131,40 @@ pub fn initialize_app(

start_timer("Backup DB path locations set successfully.");
}
UserInputType::ResetData(reset_type) => {

match reset_type {
ResetType::NewLocation => {
match delete_location_change(original_db_path) {
Ok(()) => {
start_timer("New location data removed successfully. The app must be restarted for it to take effect. It will exit after this.");
process::exit(0)
}
Err(e) => {
println!("Error while trying to delete saved location data. Error: {e:?}");
start_timer("");
}
}
UserInputType::ResetData(reset_type) => match reset_type {
ResetType::NewLocation => match delete_location_change(original_db_path) {
Ok(()) => {
start_timer(
"New location data removed successfully. The app must be restarted for it to take effect. It will exit after this.",
);
process::exit(0)
}
ResetType::BackupDB => {
match delete_backup_db(original_db_path) {
Ok(()) => start_timer("Backup DB Path removed successfully."),
Err(e) => {
println!("Error while trying to delete saved backup location data. Error: {e:?}");
start_timer("");
}
}
Err(e) => {
println!(
"Error while trying to delete saved location data. Error: {e:?}"
);
start_timer("");
}
}
}
UserInputType::InvalidInput => unreachable!()
},
ResetType::BackupDB => match delete_backup_db(original_db_path) {
Ok(()) => start_timer("Backup DB Path removed successfully."),
Err(e) => {
println!(
"Error while trying to delete saved backup location data. Error: {e:?}"
);
start_timer("");
}
},
},
UserInputType::InvalidInput => unreachable!(),
},
HandlingOutput::QuitUi => {
save_backup_db(&db_path, original_db_path);
break;
},
HandlingOutput::PrintNewUpdate => println!("Could not open browser.\n\nLatest Version Link: https://github.com/TheRustyPickle/Rex/releases/latest")
}
HandlingOutput::PrintNewUpdate => println!(
"Could not open browser.\n\nLatest Version Link: https://github.com/TheRustyPickle/Rex/releases/latest"
),
},
Err(error) => {
println!("{error}");
Expand Down
16 changes: 8 additions & 8 deletions src/page_handler/ui_handler.rs
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
use crossterm::event::poll;
use crossterm::event::{self, Event, KeyEventKind};
use ratatui::Terminal;
use ratatui::backend::Backend;
use ratatui::layout::Constraint;
use ratatui::style::Color;
use ratatui::Terminal;
use rusqlite::Connection;
use std::time::Duration;

use crate::activity_page::activity_ui;
use crate::activity_page::ActivityData;
use crate::activity_page::activity_ui;
use crate::add_tx_page::add_tx_ui;
use crate::chart_page::{chart_ui, ChartData};
use crate::home_page::home_ui;
use crate::chart_page::{ChartData, chart_ui};
use crate::home_page::TransactionData;
use crate::home_page::home_ui;
use crate::initial_page::initial_ui;
use crate::key_checker::{
activity_keys, add_tx_keys, chart_keys, home_keys, initial_keys, search_keys, summary_keys,
InputKeyHandler,
InputKeyHandler, activity_keys, add_tx_keys, chart_keys, home_keys, initial_keys, search_keys,
summary_keys,
};
use crate::outputs::{HandlingOutput, UiHandlingError};
use crate::page_handler::{
Expand All @@ -25,9 +25,9 @@ use crate::page_handler::{
};
use crate::popup_page::PopupData;
use crate::search_page::search_ui;
use crate::summary_page::{summary_ui, SummaryData};
use crate::summary_page::{SummaryData, summary_ui};
use crate::tx_handler::TxData;
use crate::utility::{get_all_tx_methods, get_all_tx_methods_cumulative, LerpState};
use crate::utility::{LerpState, get_all_tx_methods, get_all_tx_methods_cumulative};

pub const BACKGROUND: Color = Color::Rgb(245, 245, 255);
pub const TEXT: Color = Color::Rgb(153, 78, 236);
Expand Down
2 changes: 1 addition & 1 deletion src/page_handler/ui_state.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
use chrono::prelude::Local;
use chrono::Datelike;
use chrono::prelude::Local;
use ratatui::widgets::TableState;
use rusqlite::Connection;
use std::fmt::{self, Display, Result};
Expand Down
2 changes: 1 addition & 1 deletion src/popup_page/mod.rs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
mod popup_data;
mod popup_ui;

pub use popup_data::{PopupData, A, F, H, Q, R, V, W, Y, Z};
pub use popup_data::{A, F, H, PopupData, Q, R, V, W, Y, Z};
pub use popup_ui::{create_deletion_popup, create_popup};
4 changes: 2 additions & 2 deletions src/popup_page/popup_ui.rs
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
use ratatui::Frame;
use ratatui::layout::{Alignment, Constraint, Direction, Layout, Rect};
use ratatui::style::{Modifier, Style};
use ratatui::text::{Span, Text};
use ratatui::widgets::{
Block, Borders, Clear, Paragraph, Scrollbar, ScrollbarOrientation, ScrollbarState, Wrap,
};
use ratatui::Frame;

use crate::page_handler::{DeletionStatus, BACKGROUND, BLUE, BOX, HIGHLIGHTED, RED, TEXT};
use crate::page_handler::{BACKGROUND, BLUE, BOX, DeletionStatus, HIGHLIGHTED, RED, TEXT};
use crate::utility::create_bolded_text;

/// Creates a popup on top of a window with the given size, title, and text attributes
Expand Down
Loading
Loading