import React from "react"; import Modal from "../../globals/Modal"; import ModalChild from "../../globals/ModalChild"; import { useDispatch, useSelector } from "react-redux"; import { authActions } from "../../../store/authSlice"; import useSocket from "../../../hooks/useSocket"; import { userActions } from "../../../store/userSlice"; import { chatActions } from "../../../store/chatSlice"; import { chatListActions } from "../../../store/chatListSlice"; import { userProfileActions } from "../../../store/userProfileSlice"; import { sidebarActions } from "../../../store/sidebarSlice"; import { contactsActions } from "../../../store/contactsSlice"; function LogoutModal() { const dispatch = useDispatch(); const { socketEmit, socket } = useSocket(); const userId = useSelector((state) => state.userReducer.user._id); const logoutHandler = () => { socketEmit("user:offline", userId); socket.disconnect(); // Reset states dispatch(authActions.logout()); dispatch(userActions.setUser({ user: {} })); dispatch(chatActions.resetChat()); dispatch(chatActions.setChatUnactive()); dispatch(chatListActions.setChatList({ chatList: [] })); dispatch(userProfileActions.hideProfile()); dispatch(userProfileActions.setProfile({})); dispatch(sidebarActions.changeActivePage({ newActivePage: "chatList" })); dispatch(contactsActions.setContacts([])); }; return ( userId && ( Logout ) ); } export default LogoutModal;