Finish Month Expenses Widget

main
Gabe Farrell 3 years ago
parent 384f15bc83
commit a65f6f09b1

@ -1,19 +1,31 @@
import React, { useContext } from 'react'; import React, { useState, useEffect } from 'react';
import { AppContext } from '../context/AppContext'; import { getSessionKey } from "../utils/utils";
import logo from './widget_logos/expenses_logo.png'; import logo from './widget_logos/expenses_logo.png';
import './css/ExpenseTotal.css' import './css/ExpenseTotal.css'
const ExpenseTotal = () => { const ExpenseTotal = () => {
const { expenses } = useContext(AppContext); const [expense, setExpense] = useState(0.0);
const total = expenses.reduce((total, item) => { useEffect(() => {
return (total += item.cost); fetch('https://api.bb.gabefarrell.com/w/expenses/month', {
}, 0); method: 'GET',
headers: {
'x-session-key': getSessionKey(),
},
})
.then(data => data.json())
.then((data) => {
let monthExpense = data.whole
monthExpense += (data.decimal / 100)
setExpense(monthExpense)
})
.catch(console.log)
}, [])
return ( return (
<div className='widget p-4'> <div className='widget p-4'>
<img src={logo}></img> <img src={logo} className='expenseTotalIcon'></img>
<span>This Month's Expenses: ${total}</span> <span className='widgetText'>This Month's Expenses: ${expense}</span>
</div> </div>
); );
}; };

@ -0,0 +1,4 @@
.widgetText {
padding-left: 1em;
color: #333;
}
Loading…
Cancel
Save