diff --git a/client/src/components/AppBar.jsx b/client/src/components/AppBar.jsx index 76134ac..e5234c8 100644 --- a/client/src/components/AppBar.jsx +++ b/client/src/components/AppBar.jsx @@ -6,7 +6,8 @@ import Button from '@mui/material/Button'; import { Link } from 'react-router-dom'; import { useDispatch, useSelector } from 'react-redux'; import { setMessage } from '../reducers/messageReducer'; - +import { useNavigate } from 'react-router-dom'; +import { removeUser } from '../reducers/authReducer'; const linkStyle = { textDecoration: 'none', color: 'white', @@ -16,15 +17,17 @@ const linkStyle = { export default function ButtonAppBar() { const user = useSelector(state => state.auth.user) const dispatch = useDispatch() - +const navigate = useNavigate(); const logout = () => { localStorage.removeItem('expenseTrackerToken') + dispatch(removeUser()); + navigate('/login') dispatch(setMessage(['User logged out', true])) setTimeout(() => dispatch(setMessage(null)), 5000) } return ( - + diff --git a/client/src/components/CategoryForm.jsx b/client/src/components/CategoryForm.jsx index 3f664aa..56c9403 100644 --- a/client/src/components/CategoryForm.jsx +++ b/client/src/components/CategoryForm.jsx @@ -22,7 +22,7 @@ const Content = () => { const handleSubmit = async (e) => { e.preventDefault() - const res = CategoryService.create({category: name}) + const res = await CategoryService.create(name) dispatch(setUser(res.data)) dispatch(setMessage([`Category '${name}' added successfully`,true])) setTimeout(()=>dispatch(setMessage(null)),5000) @@ -36,7 +36,7 @@ const Content = () => { - + diff --git a/client/src/components/TransactionChart.jsx b/client/src/components/TransactionChart.jsx index 6166305..46127aa 100644 --- a/client/src/components/TransactionChart.jsx +++ b/client/src/components/TransactionChart.jsx @@ -23,7 +23,7 @@ const TransactionChart = ({chartData}) => { } return ( - + diff --git a/client/src/components/TransactionForm.jsx b/client/src/components/TransactionForm.jsx index 6b053ac..814a526 100644 --- a/client/src/components/TransactionForm.jsx +++ b/client/src/components/TransactionForm.jsx @@ -11,7 +11,7 @@ import dayjs from 'dayjs'; import { useDispatch, useSelector } from 'react-redux'; import { setEditTransaction } from '../reducers/editTransactionReducer' import { setMessage } from '../reducers/messageReducer' - +import { addTransaction } from '../reducers/transactionReducer'; const Content = () => { const categories = useSelector(state => state.auth.user.categories) @@ -43,7 +43,8 @@ const Content = () => { e.preventDefault() if (!editTransaction) { - await TransactionService.create(form) + const fix=await TransactionService.create(form) + dispatch(addTransaction(fix)); setForm(initialForm) dispatch(setMessage(['Expense added successfully', true])) diff --git a/client/src/components/TransactionList.jsx b/client/src/components/TransactionList.jsx index 669e06c..8bca772 100644 --- a/client/src/components/TransactionList.jsx +++ b/client/src/components/TransactionList.jsx @@ -80,7 +80,7 @@ export default function BasicTable() { handleEdit()} + onClick={()=>handleEdit(row)} > diff --git a/server/routes/category.js b/server/routes/category.js index 0186b6e..09b9dc9 100644 --- a/server/routes/category.js +++ b/server/routes/category.js @@ -3,8 +3,8 @@ const router = Router() import User from '../models/User.js' router.delete('/:name',async (req,res)=>{ - req.user.categories.filter(n=>n!==req.params.name) - const user = await User.findByIdAndUpdate(req.user.id,{categories:req.user.categories},{new:true}) + const fix=req.user.categories.filter(n=>n!==req.params.name) + const user = await User.findByIdAndUpdate(req.user.id,{categories:fix},{new:true}) res.status(200).json(user) }) diff --git a/server/routes/transactions.js b/server/routes/transactions.js index 9991b55..14c3a74 100644 --- a/server/routes/transactions.js +++ b/server/routes/transactions.js @@ -11,14 +11,14 @@ router.get('/', async (req, res) => { router.post('/', async (req, res) => { const newTrans = Transaction({ ...req.body, user: req.user.id }) - const newT = newTrans.save() + const newT = await newTrans.save() return res.json(newT) }) router.put('/:id', async (req, res) => { const id = req.params.id const trans = await Transaction.findById(id) - const updatedTrans = await Transaction.findByIdAndUpdate(id, req.body) + const updatedTrans = await Transaction.findByIdAndUpdate(id, req.body,{new:true}) res.json(updatedTrans) })