From 93e88cebcc49ee9f8b57a427dbb61ac236fe8af3 Mon Sep 17 00:00:00 2001 From: Akshoy Date: Sun, 17 Nov 2024 17:31:24 +0530 Subject: [PATCH 1/2] 1,2,3,6 solve --- client/src/components/AppBar.jsx | 10 ++++++---- client/src/components/CategoryForm.jsx | 3 ++- client/src/components/TransactionChart.jsx | 2 +- client/src/components/TransactionForm.jsx | 8 +++++--- client/src/components/TransactionList.jsx | 2 +- server/routes/category.js | 4 ++-- server/routes/transactions.js | 4 ++-- 7 files changed, 19 insertions(+), 14 deletions(-) diff --git a/client/src/components/AppBar.jsx b/client/src/components/AppBar.jsx index 76134ac..a69dc16 100644 --- a/client/src/components/AppBar.jsx +++ b/client/src/components/AppBar.jsx @@ -3,10 +3,10 @@ import Box from '@mui/material/Box'; import Toolbar from '@mui/material/Toolbar'; import Typography from '@mui/material/Typography'; import Button from '@mui/material/Button'; -import { Link } from 'react-router-dom'; +import { Link, useNavigate } from 'react-router-dom'; import { useDispatch, useSelector } from 'react-redux'; import { setMessage } from '../reducers/messageReducer'; - +import { removeUser } from '../reducers/authReducer'; const linkStyle = { textDecoration: 'none', color: 'white', @@ -16,15 +16,17 @@ const linkStyle = { export default function ButtonAppBar() { const user = useSelector(state => state.auth.user) const dispatch = useDispatch() - + const nav=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..3614f83 100644 --- a/client/src/components/CategoryForm.jsx +++ b/client/src/components/CategoryForm.jsx @@ -22,7 +22,8 @@ const Content = () => { const handleSubmit = async (e) => { e.preventDefault() - const res = CategoryService.create({category: name}) + const res = await CategoryService.create({category: name}) + console.log(res); dispatch(setUser(res.data)) dispatch(setMessage([`Category '${name}' added successfully`,true])) setTimeout(()=>dispatch(setMessage(null)),5000) 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..953abe7 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,setTransactions } 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 abc=await TransactionService.create(form) + dispatch(addTransaction(abc)) setForm(initialForm) dispatch(setMessage(['Expense added successfully', true])) @@ -51,7 +52,8 @@ const Content = () => { const res = await TransactionService.update(form) dispatch(setEditTransaction(null)) setForm(initialForm) - transactions.map(trans => trans.id === res.id ? res : trans) + const abc=transactions.map(trans => trans.id === res.id ? res : trans) + dispatch(setTransactions(abc)) dispatch(setMessage(['Expense updated 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..501245c 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 aks=req.user.categories.filter(n=>n!==req.params.name) + const user = await User.findByIdAndUpdate(req.user.id,{categories:aks},{new:true}) res.status(200).json(user) }) diff --git a/server/routes/transactions.js b/server/routes/transactions.js index 9991b55..3c309c6 100644 --- a/server/routes/transactions.js +++ b/server/routes/transactions.js @@ -11,7 +11,7 @@ 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) }) @@ -31,7 +31,7 @@ router.delete('/:id', async (req, res) => { } if (String(trans.user) === req.user.id) { - await Transaction.findByIdAndDelete(id) + const abc=await Transaction.findByIdAndDelete(id) res.sendStatus(204).end() } else { res.sendStatus(401).json("not authorized to update someone else's transaction") From 6977ca160266d7c644d204f8f583933d084edcb3 Mon Sep 17 00:00:00 2001 From: Akshoy Date: Sun, 17 Nov 2024 17:34:04 +0530 Subject: [PATCH 2/2] 5 --- client/src/components/CategoryForm.jsx | 1 - server/routes/transactions.js | 4 +++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/client/src/components/CategoryForm.jsx b/client/src/components/CategoryForm.jsx index 3614f83..4850d94 100644 --- a/client/src/components/CategoryForm.jsx +++ b/client/src/components/CategoryForm.jsx @@ -23,7 +23,6 @@ const Content = () => { const handleSubmit = async (e) => { e.preventDefault() const res = await CategoryService.create({category: name}) - console.log(res); dispatch(setUser(res.data)) dispatch(setMessage([`Category '${name}' added successfully`,true])) setTimeout(()=>dispatch(setMessage(null)),5000) diff --git a/server/routes/transactions.js b/server/routes/transactions.js index 3c309c6..12cd5f9 100644 --- a/server/routes/transactions.js +++ b/server/routes/transactions.js @@ -18,7 +18,9 @@ router.post('/', async (req, res) => { 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) })