diff --git a/frontend/src/components/Header/ProfileImage.jsx b/frontend/src/components/Header/ProfileImage.jsx index 2fc2819..8b74525 100644 --- a/frontend/src/components/Header/ProfileImage.jsx +++ b/frontend/src/components/Header/ProfileImage.jsx @@ -4,26 +4,11 @@ import useUserStore from '../../store/useStore'; import { useMutation } from 'react-query'; import logoutService from '../../services/logoutService'; import { toast } from 'react-toastify'; +import useLogout from '../../hooks/useLogout'; function ProfileImage({userData}) { - const {setUser} = useUserStore(); - - const mutation = useMutation(logoutService, { - onSuccess: (data) => { - setUser({}); - toast.success(data?.message); - }, - onError: (error) => { - toast.error("Something went wrong"); - console.log(error); - }, - }); - - const handleLogout = () => { - mutation.mutate(); - } - + const {handleLogout} = useLogout(); return (
diff --git a/frontend/src/hooks/useLogout.js b/frontend/src/hooks/useLogout.js new file mode 100644 index 0000000..36ff5ed --- /dev/null +++ b/frontend/src/hooks/useLogout.js @@ -0,0 +1,29 @@ +import React from 'react' +import { toast } from 'react-toastify'; +import useUserStore from '../store/useStore'; +import { useMutation } from 'react-query'; +import logoutService from '../services/logoutService'; + +function useLogout() { + const {setUser} = useUserStore(); + + const mutation = useMutation(logoutService, { + onSuccess: (data) => { + setUser({}); + toast.success(data?.message); + }, + onError: (error) => { + toast.error("Something went wrong"); + console.log(error); + }, + }); + + const handleLogout = () => { + mutation.mutate(); + } + + return { handleLogout }; + +} + +export default useLogout diff --git a/frontend/src/pages/Dashboard.jsx b/frontend/src/pages/Dashboard.jsx index 55ca7c5..d305be0 100644 --- a/frontend/src/pages/Dashboard.jsx +++ b/frontend/src/pages/Dashboard.jsx @@ -3,10 +3,13 @@ import React, { useState } from "react"; import { FaPlus } from "react-icons/fa"; import PollTableRow from "../components/PollTableRow/PollTableRow"; import { useNavigate } from "react-router-dom"; +import useUserStore from "../store/useStore"; +import useLogout from "../hooks/useLogout"; function Dashboard() { const navigator = useNavigate(); + const {handleLogout} = useLogout(); const pollData = [ { _id: "1", title: "Poll 1", description: "Description of Poll 1", totalVotes: 120, published: true }, @@ -14,19 +17,21 @@ function Dashboard() { // Add more poll data as needed ]; + const {user} = useUserStore(); + return (
{/* User Profile Sidebar */} {/* Dashboard Main Content */}