import React, { useState, useEffect } from 'react' import { useDispatch, useSelector } from 'react-redux' import { accountsSelectors, editAccount } from '../../redux/slices/Accounts' import TextField from '@mui/material/TextField' import { FromAPI, getBalanceColor, intlFormat } from '../../utils/Currency' import Button from '@mui/material/Button' import Popover from '@mui/material/Popover' import { usePopupState, bindTrigger, bindPopover } from 'material-ui-popup-state/hooks' import Stack from '@mui/material/Stack' import Box from '@mui/material/Box' import Typography from '@mui/material/Typography' import { useTheme } from '@mui/styles' import ReconcileForm from '../../components/ReconcileForm' import { createSelector } from '@reduxjs/toolkit' export default function BudgetTableHeader({ accountId, name }) { const theme = useTheme() const dispatch = useDispatch() const selectAccount = createSelector( [(state, accountId) => accountsSelectors.selectById(state, accountId)], account => FromAPI.transformAccount(account), ) const account = useSelector(state => selectAccount(state, accountId)) const [accountName, setAccountName] = useState(name) useEffect(() => { setAccountName(name) }, [name]) const editAccountPopupState = usePopupState({ variant: 'popover', popupId: 'editAccount', }) const reconcilePopupState = usePopupState({ variant: 'popover', popupId: 'reconcile-popup', }) const editAccountName = event => { editAccountPopupState.close() dispatch(editAccount({ id: account.id, name: accountName })) } return (

{account.name}

setAccountName(e.target.value)} />
{intlFormat(account.cleared)} Cleared
+
{intlFormat(account.uncleared)} Uncleared
=
{intlFormat(account.balance)} Working Balance
) }