Skip to content

Commit

Permalink
[FIX] fixed deco reco problem duplicate message
Browse files Browse the repository at this point in the history
  • Loading branch information
dsaada42 committed May 17, 2023
1 parent 19af274 commit 4906536
Show file tree
Hide file tree
Showing 3 changed files with 30 additions and 18 deletions.
10 changes: 6 additions & 4 deletions frontend/srcs/src/components/SideBar/BottomBar/BottomBar.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { useAtom } from "jotai";
import {
conversationAtom,
notifAtom,
resetAtoms,
useResetAtoms,
userAtom,
} from "../../../services/store";
import Popup from "reactjs-popup";
Expand All @@ -33,22 +33,24 @@ function BottomBar() {
const axios = useAxiosPrivate();
const [notifs, setNotif] = useAtom(notifAtom);
const socket = useContext(SocketContext);
const [user, setUser] = useAtom(userAtom);
const [open, setOpen] = useState(false);
const [conversation, setConversation] = useAtom(conversationAtom);
const gameSocket = useContext(LobbySocketContext);
const resetAtom = useResetAtoms();

function logout() {
axios
.get("/auth/logout")
.then((response: AxiosResponse) => {
resetAtoms();
socket?.emit("logout", response.data);
resetAtom();
socket?.removeAllListeners();
socket?.disconnect();
gameSocket?.removeAllListeners();
gameSocket?.disconnect();
navigate("/login", { replace: true });
})
.catch((error: AxiosError) => {
console.log("ya erreur frere");
if (!error?.response) {
setErrMsg("No server response");
} else if (error.response?.status === 401) {
Expand Down
26 changes: 15 additions & 11 deletions frontend/srcs/src/services/store.ts
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ export const endGameDefaultValue: TEndGame = {

export const endGameAtom = atom<TEndGame>(endGameDefaultValue);

export function resetAtoms() {
export function useResetAtoms() {
const [user, setUser] = useAtom(userAtom);
const [searchUser, setSearchUser] = useAtom(searchUserAtom);
const [userPreferences, setUserPreferences] = useAtom(userPreferencesAtom);
Expand All @@ -77,14 +77,18 @@ export function resetAtoms() {
const [sideBar, setSideBar] = useAtom(sideBarAtom);
const [endGame, setEndGame] = useAtom(endGameAtom);

setUser(userDefaultValue);
setSearchUser("");
setUserPreferences(userPreferencesDefaultValue);
setLobby(lobbyDefaultValue);
setFriends([]);
setConversations([]);
setMatches([]);
setNotifs([]);
setSideBar(false);
setEndGame(endGameDefaultValue);
const resetAtom = () => {
setUser(userDefaultValue);
setSearchUser("");
setUserPreferences(userPreferencesDefaultValue);
setLobby(lobbyDefaultValue);
setFriends([]);
setConversations([]);
setMatches([]);
setNotifs([]);
setSideBar(false);
setEndGame(endGameDefaultValue);
};

return resetAtom;
}
12 changes: 9 additions & 3 deletions frontend/srcs/src/views/MainPage/UserProvider.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,9 @@ import { useAtom } from "jotai";
import React, { ReactNode, useContext, useEffect, useState } from "react";
import { useLocation, useNavigate } from "react-router";
import useAxiosPrivate from "../../hooks/useAxiosPrivate";
import { resetAtoms, userAtom, userDefaultValue } from "../../services/store";
import { useResetAtoms, userAtom } from "../../services/store";
import { SocketContext } from "../../services/Auth/SocketContext";
import { LobbySocketContext } from "../../services/Lobby/LobbySocketContext";

function UserProvider({ children }: { children: ReactNode }) {
const [user, setUser] = useAtom(userAtom);
Expand All @@ -13,6 +14,8 @@ function UserProvider({ children }: { children: ReactNode }) {
const navigate = useNavigate();
const location = useLocation();
const socket = useContext(SocketContext);
const gameSocket = useContext(LobbySocketContext);
const resetAtom = useResetAtoms();

useEffect(() => {
axiosPrivate
Expand All @@ -34,8 +37,11 @@ function UserProvider({ children }: { children: ReactNode }) {
socket?.on("on-self-status-update", (newStatus) => {
setUser((prev) => ({ ...prev, status: newStatus }));
if (newStatus === "DISCONNECTED") {
setUser(userDefaultValue);
resetAtoms();
resetAtom();
socket?.removeAllListeners();
gameSocket?.removeAllListeners();
socket?.disconnect();
gameSocket?.disconnect();
navigate("/login", { state: { from: location }, replace: true });
}
});
Expand Down

0 comments on commit 4906536

Please sign in to comment.