From 78e2b99ef20236b9fbbc767ddac2bfa446749f34 Mon Sep 17 00:00:00 2001 From: jveebs <83558932+jveebs@users.noreply.github.com> Date: Tue, 18 Apr 2023 02:11:52 -0400 Subject: [PATCH] Expenses by Category and Add Transaction Widgets --- src/components/AddExpenseForm.js | 68 ++++++++++++++--------------- src/components/CategorizedBudget.js | 31 +++++++------ src/pages/Dashboard.jsx | 2 +- src/utils/utils.js | 4 ++ 4 files changed, 52 insertions(+), 53 deletions(-) diff --git a/src/components/AddExpenseForm.js b/src/components/AddExpenseForm.js index 760f27d..e4240c0 100644 --- a/src/components/AddExpenseForm.js +++ b/src/components/AddExpenseForm.js @@ -11,6 +11,7 @@ const AddExpenseForm = (props) => { const [cost, setCost] = useState(''); const [category, setCategory] = useState(''); const [categoryList, setCategoryList] = useState([]); + const [isExpense, setIsExpense] = useState(true); useEffect(() => { try { @@ -25,13 +26,35 @@ const AddExpenseForm = (props) => { if (data.status != 200) { console.log(data.error); } else { - setCategoryList(data.categories); + isExpense + ? setCategoryList(Object.keys(data.expenses)) + : setCategoryList(Object.keys(data.income)); } }) } catch(error) { console.error(error); } }, []) + + const toggleTransactionType = () => { + setIsExpense(!isExpense); + fetch('https://api.bb.gabefarrell.com/w/budget', { + method: 'GET', + headers: { + 'x-session-key' : getSessionKey(), + } + }) + .then(response => response.json()) + .then(data => { + if (data.status != 200) { + console.log(data.error); + } else { + isExpense + ? setCategoryList(Object.keys(data.expenses)) + : setCategoryList(Object.keys(data.income)); + } + }) + }; const onSubmit = (event) => { event.preventDefault(); @@ -41,7 +64,7 @@ const AddExpenseForm = (props) => { let currency = "USD" let whole = 0; let decimal = 0; - let type = 'expenses'; + let type = isExpense ? 'expenses' : 'income'; if (cost.includes(".")) { @@ -76,19 +99,6 @@ const AddExpenseForm = (props) => { console.error(error); } - /* - const expense = { - id: uuidv4(), - name, - cost: parseInt(cost), - }; - - dispatch({ - type: 'ADD_EXPENSE', - payload: expense, - }); - */ - setName(''); setCost(''); }; @@ -106,23 +116,7 @@ const AddExpenseForm = (props) => { return (