-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.js
125 lines (103 loc) · 3.82 KB
/
index.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
// inputs
const inputBudgetEl = document.querySelector(".budget-input");
const inputExpenseEl = document.querySelector(".expense-type-input");
const inputExpenseAmount = document.querySelector(".expense-amont-input");
// Buttons
const budgetBtn = document.querySelector(".add-budget");
const expenseBtn = document.querySelector(".add-expense");
const clearDataBtn = document.querySelector(".clear-data");
// Budget section
const budgetAmountEl = document.querySelector(".budget-amount");
const expensesTotalAmountEl = document.querySelector(".expenses-total-amount");
const balanceEl = document.querySelector(".budget-end-balance");
const budgetContainer = document.querySelector(".budget-container-div");
const budgetExpensesContainer = document.querySelector(".budget-expenses-div");
budgetBtn.addEventListener("click", () => {
if (inputBudgetEl.value != "") {
depositToBudget(inputBudgetEl.value);
getdepositBudget();
addExpensesToUI();
} else {
alert("Please enter a valid budget number");
}
inputBudgetEl.value = "";
});
expenseBtn.addEventListener("click", () => {
if (inputExpenseEl.value != "" && inputExpenseAmount.value != "") {
updateBudget();
}
});
function updateBudget() {
const expenseLabel = document.createElement("p");
expenseLabel.classList.add("expense-label");
budgetContainer.appendChild(expenseLabel);
expenseLabel.innerText = inputExpenseEl.value;
inputExpenseEl.value = "";
const expenseAmount = document.createElement("p");
expenseAmount.classList.add("expense-value");
budgetExpensesContainer.appendChild(expenseAmount);
expenseAmount.innerText = "$" + inputExpenseAmount.value;
inputExpenseAmount.value = "";
const objEl = {
expenseLabel: expenseLabel.innerText,
expenseMoney: expenseAmount.innerText,
};
const expensesArr =
JSON.parse(localStorage.getItem("expenses-deposit")) || [];
expensesArr.push(objEl);
depositToExpenses(expensesArr);
addExpensesToUI();
}
function depositToBudget(budget) {
localStorage.setItem("budget-deposit", JSON.stringify(budget));
}
function getdepositBudget() {
const budget = JSON.parse(localStorage.getItem("budget-deposit"));
budgetAmountEl.innerText = "$" + (budget ? budget : 0);
}
window.addEventListener("load", () => {
addExpensesToUI();
getdepositBudget();
});
function depositToExpenses(expenses) {
localStorage.setItem("expenses-deposit", JSON.stringify(expenses));
}
function addExpensesToUI() {
const itemsToDeleteV = document.querySelectorAll(".expense-value");
itemsToDeleteV.forEach((item) => {
item.remove();
});
const itemsToDeleteL = document.querySelectorAll(".expense-label");
itemsToDeleteL.forEach((item) => {
item.remove();
});
const expenses = JSON.parse(localStorage.getItem("expenses-deposit"));
let expensesTotal = 0;
expenses?.forEach((expense) => {
expensesTotal += parseFloat(expense.expenseMoney.replace("$", ""));
const expenseLabel = document.createElement("p");
expenseLabel.classList.add("expense-label");
expenseLabel.innerText = expense.expenseLabel;
budgetContainer.appendChild(expenseLabel);
const expenseAmount = document.createElement("p");
expenseAmount.classList.add("expense-value");
expenseAmount.innerText = expense.expenseMoney;
budgetExpensesContainer.appendChild(expenseAmount);
});
expensesTotalAmountEl.innerText = "$" + expensesTotal.toFixed(2);
let balanceAmount =
JSON.parse(localStorage.getItem("budget-deposit")) - expensesTotal;
balanceEl.innerText = "$" + balanceAmount.toFixed(2);
if (balanceAmount < 0) {
balanceEl.style.color = "red";
} else if (balanceAmount >= 0) {
balanceEl.style.color = "green";
}
}
clearDataBtn.addEventListener("click", () => {
localStorage.clear();
localStorage.removeItem("expenses-deposit");
addExpensesToUI();
getdepositBudget();
// updateBudget();
});