diff --git a/containers/api/src/app.controller.ts b/containers/api/src/app.controller.ts index 149f9483..e8523ca8 100644 --- a/containers/api/src/app.controller.ts +++ b/containers/api/src/app.controller.ts @@ -455,6 +455,8 @@ export class AppController { user.sessionNumber-- ; if (!user.sessionNumber) user.status = 0; + console.log("quit sessionNUmber :",user.sessionNumber); + await this.userService.save(user); console.log("User quit"); } @@ -465,6 +467,8 @@ export class AppController { const user = await this.userService.findOne(req.user.username); user.sessionNumber++ ; + console.log("addSession sessionNUmber :",user.sessionNumber); + await this.userService.save(user); } diff --git a/containers/api/src/auth/login42.ts b/containers/api/src/auth/login42.ts index a4aa5b53..5c9e3368 100644 --- a/containers/api/src/auth/login42.ts +++ b/containers/api/src/auth/login42.ts @@ -28,7 +28,7 @@ export class loginClass { code: code, redirect_uri: process.env.REDIRECT_URI || 'http://' + process.env.REACT_APP_BASE_URL + '/api/auth/login', }; - + try { const response = await axios.post('https://api.intra.42.fr/oauth/token', data); token = response.data.access_token; @@ -74,14 +74,14 @@ export class loginClass { friends: null, blocked: null, photo: null, - sessionNumber: 0, + sessionNumber: 1, }; await this.usersService.create(user); } - // if (user.status !== 2 || user.status === 0) //super + // if (user.status !== 2) //super // user.status = 1; // user.sessionNumber++; - // console.log(`in login42 user= ${user}`) + console.log(user.sessionNumber); const myJSON = JSON.stringify(user); console.log(`in login42 user= ${myJSON}`) diff --git a/containers/api/src/users/users.service.ts b/containers/api/src/users/users.service.ts index 958b2769..03db8367 100644 --- a/containers/api/src/users/users.service.ts +++ b/containers/api/src/users/users.service.ts @@ -58,7 +58,7 @@ export class UsersService { async getFriends(username: string) { const user = await this.findOne(username) - let friendsTab = user.friends + let friendsTab = user.friends || [] console.log(friendsTab) // friendsTab = ['apommier', 'syd'] const friends = await this.userRepository.query("SELECT * FROM \"User\" WHERE username = ANY ($1);", [friendsTab]); diff --git a/containers/react/interfaces.tsx b/containers/react/interfaces.tsx index 1faa97ec..71e376ca 100644 --- a/containers/react/interfaces.tsx +++ b/containers/react/interfaces.tsx @@ -16,6 +16,7 @@ export interface User { partyInvite: Record[]; friends: string[]; blocked: string[]; + sessionNumber: number; } export interface Conv { diff --git a/containers/react/src/components/App.tsx b/containers/react/src/components/App.tsx index ea84e6c9..6b0d74ad 100644 --- a/containers/react/src/components/App.tsx +++ b/containers/react/src/components/App.tsx @@ -1,5 +1,5 @@ import React, { useEffect } from "react"; -import {Routes, Route, Navigate} from 'react-router-dom'; +import { Routes, Route, Navigate } from 'react-router-dom'; import HomeLogin from "../pages/LoginButton.tsx"; import Home from "../pages/Home.tsx"; @@ -10,7 +10,7 @@ import Login42 from "../pages/Login42.tsx"; import Messages from "../pages/Messages.tsx"; import QrCode from '../pages/QrCode.tsx' import { useLocation } from "react-router-dom"; -import {AnimatePresence} from "framer-motion"; +import { AnimatePresence } from "framer-motion"; import SuccessToken from '../script/tokenSuccess.tsx' @@ -22,40 +22,59 @@ import Logout from "./Profile/Logout.tsx"; import api from "../script/axiosApi.tsx" -function AnimatedRoute () { +function AnimatedRoute() { // const location = useLocation(); useEffect(() => { const handleBeforeUnload = async (event: { preventDefault: () => void; returnValue: string; }) => { if (!localStorage.getItem('token')) - return ; + return; try { await api.post("/quit"); - } catch(err) { + } catch (err) { console.log(err); } }; - window.addEventListener('beforeunload', handleBeforeUnload); + window.addEventListener('beforeunload', handleBeforeUnload); return () => { - window.removeEventListener('beforeunload', handleBeforeUnload); + window.removeEventListener('beforeunload', handleBeforeUnload); }; - }, []); + }, []); + + useEffect(() => { + + const handleLoad = async () => { + console.log('Page loaded'); + console.log("je suis a addSession"); + if (!localStorage.getItem('token')) + return; + try { + await api.post("/addSession"); + } catch (err) { + console.log(err); + } + }; + + window.addEventListener('load', handleLoad); + return () => { + window.removeEventListener('load', handleLoad); + }; + }, []); const location = useLocation(); - if (!localStorage.getItem('token')) - { + if (!localStorage.getItem('token')) { return ( - - }/> - }/> + + } /> + } /> - {/* } /> */} - {/* } /> */} - - + {/* } /> */} + {/* } /> */} + + ) } @@ -64,26 +83,26 @@ function AnimatedRoute () { {/* }/> */} - }/> - }/> - }/> - }/> + } /> + } /> + } /> + } /> - }/> - }/> + } /> + } /> - }/> - }/> - }/> - }/> + } /> + } /> + } /> + } /> {/* }/> */} - }/> - }/> - }/> + } /> + } /> + } /> } /> - } /> + } /> ) diff --git a/containers/react/src/components/Messages/GameModal.tsx b/containers/react/src/components/Messages/GameModal.tsx index 00a4a542..c317139a 100644 --- a/containers/react/src/components/Messages/GameModal.tsx +++ b/containers/react/src/components/Messages/GameModal.tsx @@ -79,11 +79,7 @@ const GameModal = ({ handleClose }: ModalGame) => { path += 'superpower=true&'; } - const obstacleCheckbox = document.querySelector('input[value="obstacle"]'); - if (obstacleCheckbox && obstacleCheckbox.checked) { - path += 'obstacle=true&'; - } - + const speedCheckbox = document.querySelector('input[value="speed"]'); if (speedCheckbox && speedCheckbox.checked) { path += 'speed=true&'; @@ -132,10 +128,9 @@ const GameModal = ({ handleClose }: ModalGame) => { {/* */}

Super Power

-

Obstacle

Faster and Faster

- + {/* */} diff --git a/containers/react/src/components/Social/Friend.tsx b/containers/react/src/components/Social/Friend.tsx index ae282f65..8774b814 100644 --- a/containers/react/src/components/Social/Friend.tsx +++ b/containers/react/src/components/Social/Friend.tsx @@ -65,7 +65,9 @@ export default function Friend({currentUser}: UserProps) function getStatus(friend: User) { - let status = friend.status + let status = friend.status + let session =friend.sessionNumber + console.log(`session= ${session}`) console.log(`status= ${status}`) let statusColor; diff --git a/containers/react/src/components/Social/FriendRequest.tsx b/containers/react/src/components/Social/FriendRequest.tsx index 3d7aca26..bf83fd03 100644 --- a/containers/react/src/components/Social/FriendRequest.tsx +++ b/containers/react/src/components/Social/FriendRequest.tsx @@ -94,7 +94,7 @@ export default function Friend({currentUser}: UserProps) } return ( - + {profilePicture ? ( ) : ( diff --git a/containers/react/src/styles/Messages.css b/containers/react/src/styles/Messages.css index 90064809..76c7f0b3 100644 --- a/containers/react/src/styles/Messages.css +++ b/containers/react/src/styles/Messages.css @@ -222,6 +222,16 @@ p { height: 25px; } +.playInvite{ + margin: 5%; + color: ghostwhite; + outline: 0; + border-radius: 100px; + padding: 3%; + background-image: linear-gradient(90deg, #5843e4, #5a0760); + width: 42%; + font-size: x-large; +} .darkSubmit{ display: inline-block; color: white;