import { useState, useEffect } from 'react'; import BudgetPeriodTransTable from './BudgetPeriodTransTable'; import Lock from '../resources/Lock.svg'; import OpenLock from '../resources/OpenLock.svg'; import './BudgetPeriodCard.scss'; const BudgetPeriodCard = ({periodData}) => { const [bankBalance, setBankBalance] = useState(0), [projectedLeftover, setProjectedLeftover] = useState(0), [bills, setBills] = useState(periodData.bills), [paidBills, setPaidBills] = useState([]), [unpaidBills, setUnpaidBills] = useState([]), [incomes, setIncomes] = useState(periodData.income), [paidIncomes, setPaidIncomes] = useState([]), [unpaidIncomes, setUnpaidIncomes] = useState([]); useEffect(() => { setPaidBills(bills.filter((bill) => bill.paid)); }, [bills]); useEffect(() => { setUnpaidBills(bills.filter((bill) => !bill.paid)); }, [bills]); useEffect(() => { setPaidIncomes(incomes.filter((income) => income.paid)); }, [incomes]); useEffect(() => { setUnpaidIncomes(incomes.filter((income) => !income.paid)); }, [incomes]); useEffect(() => { setBankBalance( periodData.startingAmount - paidBills.reduce((prev, bill) => { return prev + bill.amount; }, 0.0) + paidIncomes.reduce((prev, income) => { return prev + income.amount; }, 0.0) ); }, [paidBills, paidIncomes]); useEffect(() => { setProjectedLeftover( bankBalance - unpaidBills.reduce((prev, bill) => { return prev + bill.amount; }, 0.0) + unpaidIncomes.reduce((prev, income) => { return prev + income.amount; }, 0.0) ); }, [bankBalance, unpaidBills, unpaidIncomes]); return (