diff --git a/.env b/.env index d5dc4963..8f4c4911 100644 --- a/.env +++ b/.env @@ -7,17 +7,18 @@ # POSTGRES_PASSWORD=pass # POSTGRES_DB=postgreDB # POSTGRES_ROOT_PASSWORD=pass -# POSTGRES_HOST=localhost +# POSTGRES_HOST=bess-f2r5s13 # POSTGRES_HOST_AUTH_METHOD=trust #URL NGINX_ENVSUBST_TEMPLATE_SUFFIX=".conf" -# BASE_URL=http://localhost -# SOCKET_URL=localhost:8080 -BASE_URL=localhost:8080 -REACT_APP_BASE_URL=localhost:8080 -REDIRECT_URI=http://localhost:8080/api/auth/login +# BASE_URL=http://bess-f2r5s13 +# SOCKET_URL=bess-f2r5s13:8080 +BASE_URL=bess-f2r5s13:8080 +REACT_APP_BASE_URL=bess-f2r5s13:8080 +REDIRECT_URI=http://bess-f2r5s13:8080/api/auth/login +INTRA_URL="https://api.intra.42.fr/oauth/authorize?client_id=u-s4t2ud-2bd3c5d4f41e776f2e3d5d699d2a8421f6d0c0468ec882516d9ca89b0c211789&redirect_uri=http%3A%2F%2Fbess-f2r5s13%3A8080%2Fapi%2Fauth%2Flogin&response_type=code" #postgres var # POSTGRES_HOST=127.0.0.1 # DB_TYPE=postgres @@ -34,7 +35,7 @@ NGINX_PORT=8080 PONG_PORT=4000 CHAT_PORT=4001 POSTGRES_PORT=5432 - + #???? RUN_MIGRATIONS=true REACT_HOST=0.0.0.0 @@ -42,6 +43,6 @@ REACT_HOST=0.0.0.0 #auth var JWT_SECRET=secrethere -# REDIRECT_URI=http://localhost:80/api/auth/login -API_SECRET=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 -CLIENT_UID=u-s4t2ud-6d29dfa49ba7146577ffd8bf595ae8d9e5aaa3e0a9615df18777171ebf836a41 \ No newline at end of file +# REDIRECT_URI=http://bess-f2r5s13:80/api/auth/login +API_SECRET=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 +CLIENT_UID=u-s4t2ud-2bd3c5d4f41e776f2e3d5d699d2a8421f6d0c0468ec882516d9ca89b0c211789 diff --git a/containers/api/src/app.controller.ts b/containers/api/src/app.controller.ts index bd274e02..fa3e5a91 100644 --- a/containers/api/src/app.controller.ts +++ b/containers/api/src/app.controller.ts @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/06/17 01:00:00 by apommier #+# #+# */ -/* Updated: 2023/06/25 00:10:18 by apommier ### ########.fr */ +/* Updated: 2023/06/26 02:23:56 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -380,7 +380,7 @@ export class AppController { console.log(`all data json version= ${myJSON}`); console.log(`data in api = ${(await data).access_token}`); // console.log(`data i = ${(await data).access_token}`) - const token = (await data).access_token; + const token = (await data).access_token; // console await this.userService.save(user); return { url: 'http://' + process.env.BASE_URL + `/token?data=${encodeURIComponent(JSON.stringify(token))}` }; @@ -451,6 +451,8 @@ export class AppController { @UseGuards(JwtAuthGuard) @Post('/quit') async setOffline(@Request() req) { + console.log("cc quit here"); + const user = await this.userService.findOne(req.user.username); const user = await this.userService.findOne(req.user.username); user.sessionNumber-- ; diff --git a/containers/api/src/auth/login42.ts b/containers/api/src/auth/login42.ts index 6bb2c1a0..ceb2ebb0 100644 --- a/containers/api/src/auth/login42.ts +++ b/containers/api/src/auth/login42.ts @@ -16,8 +16,6 @@ export class loginClass { let token = null; let userId = null; let userName = null; - // let = null; - const params = new URLSearchParams(url.split('?')[1]); const code = params.get('code'); diff --git a/containers/api/src/chat/chat.service.ts b/containers/api/src/chat/chat.service.ts index d69bad68..3825f32f 100644 --- a/containers/api/src/chat/chat.service.ts +++ b/containers/api/src/chat/chat.service.ts @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/06/17 01:00:25 by apommier #+# #+# */ -/* Updated: 2023/06/24 18:47:59 by apommier ### ########.fr */ +/* Updated: 2023/06/26 02:07:45 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ diff --git a/containers/react/.env b/containers/react/.env index 191f18bd..0ad277ad 100644 --- a/containers/react/.env +++ b/containers/react/.env @@ -1,7 +1,8 @@ -REACT_APP_BASE_URL=localhost:8080 -REACT_APP_SOCKET_URL=localhost -REACT_APP_API_SECRET=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 -REACT_APP_CLIENT_UID=u-s4t2ud-6d29dfa49ba7146577ffd8bf595ae8d9e5aaa3e0a9615df18777171ebf836a41 +REACT_APP_BASE_URL=bess-f2r5s13:8080 +REACT_APP_SOCKET_URL=bess-f2r5s13 +REACT_APP_API_SECRET=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 +REACT_APP_CLIENT_UID=u-s4t2ud-2bd3c5d4f41e776f2e3d5d699d2a8421f6d0c0468ec882516d9ca89b0c211789 +REACT_APP_INTRA_URL="https://api.intra.42.fr/oauth/authorize?client_id=u-s4t2ud-2bd3c5d4f41e776f2e3d5d699d2a8421f6d0c0468ec882516d9ca89b0c211789&redirect_uri=http%3A%2F%2Fbess-f2r5s13%3A8080%2Fapi%2Fauth%2Flogin&response_type=code" # REACT_APP_BASE_URL=92.143.191.152 # REACT_APP_BASE_URL=192.168.1.19 \ No newline at end of file diff --git a/containers/react/src/components/AnimatedRoute.tsx b/containers/react/src/components/AnimatedRoute.tsx deleted file mode 100644 index 7201aacc..00000000 --- a/containers/react/src/components/AnimatedRoute.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import React from "react"; -import {Routes, Route} from 'react-router-dom'; -import Home from "../pages/Home.jsx"; -import PlayButton from "./Game/PlayButton.tsx"; -import Field from "../pages/Field"; -import Login42 from "../pages/Login42.js"; -import Messages from "../pages/Messages.jsx"; -import { useLocation } from "react-router-dom"; -import {AnimatePresence} from "framer-motion"; - -function AnimatedRoute () { - const location = useLocation(); - return ( - - - }/> - }/> - }/> - }/> - }/> - - - ) -} - -export default AnimatedRoute \ No newline at end of file diff --git a/containers/react/src/components/App.tsx b/containers/react/src/components/App.tsx index 37d07f0b..6c22aa80 100644 --- a/containers/react/src/components/App.tsx +++ b/containers/react/src/components/App.tsx @@ -1,6 +1,6 @@ -import React from "react"; +import React, { useEffect } from "react"; import {Routes, Route, Navigate} from 'react-router-dom'; -import HomeLogin from "../pages/Home.js"; +import HomeLogin from "../pages/LoginButton.tsx"; import Home from "../pages/Home.tsx"; @@ -19,9 +19,35 @@ import DoubleAuth from "../pages/2fa.tsx"; import Game from "../pages/Game.tsx"; import Social from "./Social/Social.tsx"; import Logout from "./Profile/Logout.tsx"; +import api from "../script/axiosApi.tsx" + function AnimatedRoute () { // const location = useLocation(); + + useEffect(() => { + const handleBeforeUnload = async (event: { preventDefault: () => void; returnValue: string; }) => { + event.preventDefault(); // Cancel the default event behavior if needed + event.returnValue = ''; // Chrome requires a return value to display a custom message + if (!localStorage.getItem('token')) + return ; + try { + await api.post("/quit"); + } catch(err) { + console.log(err); + } + + // Perform your desired actions before the user leaves the page + // For example, you can show a confirmation dialog or save user data + }; + + window.addEventListener('beforeunload', handleBeforeUnload); + + return () => { + window.removeEventListener('beforeunload', handleBeforeUnload); + }; + }, []); + const location = useLocation(); if (!localStorage.getItem('token')) { @@ -37,7 +63,7 @@ function AnimatedRoute () { ) } - + return ( diff --git a/containers/react/src/components/Game/PlayButton.tsx b/containers/react/src/components/Game/PlayButton.tsx index 0adf2bb8..94f323cd 100644 --- a/containers/react/src/components/Game/PlayButton.tsx +++ b/containers/react/src/components/Game/PlayButton.tsx @@ -19,10 +19,10 @@ function PlayButton() { path += 'superpower=true&'; } - const obstacleCheckbox = document.querySelector('input[value="obstacle"]'); - if (obstacleCheckbox && obstacleCheckbox.checked) { - path += 'obstacle=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) { @@ -40,8 +40,13 @@ function PlayButton() { {/* !buttonClicked && */}
+<<<<<<< HEAD

Super Power
( w = wall power )

Obstacle

+======= +

Super Power

+ {/*

Obstacle

*/} +>>>>>>> apommier

Faster and Faster

diff --git a/containers/react/src/components/Messages/Message.tsx b/containers/react/src/components/Messages/Message.tsx index 53437504..7483bb16 100644 --- a/containers/react/src/components/Messages/Message.tsx +++ b/containers/react/src/components/Messages/Message.tsx @@ -6,7 +6,7 @@ /* By: apommier +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/06/01 18:24:46 by apommier #+# #+# */ -/* Updated: 2023/06/24 16:00:48 by apommier ### ########.fr */ +/* Updated: 2023/06/25 23:24:46 by apommier ### ########.fr */ /* */ /* ************************************************************************** */ @@ -69,7 +69,7 @@ function MessageMe({message, own}: MessageMeProps){ } }; fetchProfilePicture(); - }, []) + }, []); const handleButtonClick = () => { if (!sender) diff --git a/containers/react/src/components/Profile/EditName.tsx b/containers/react/src/components/Profile/EditName.tsx index da364971..823b1bd7 100644 --- a/containers/react/src/components/Profile/EditName.tsx +++ b/containers/react/src/components/Profile/EditName.tsx @@ -27,7 +27,7 @@ const dropIn = { // ) // } -const ModalEdit = (handleClose) => { +const ModalEdit = () => { // let new_name = ""; const [nickname, setNickname] = useState(""); const [errTaken, setErrTaken] = useState(false); @@ -35,7 +35,7 @@ const ModalEdit = (handleClose) => { const [errTooShort, setErrTooShort] = useState(false); const closeTooShort = () => setErrTooShort(false); - const handler = e => { + const handler = (e: { target: { value: React.SetStateAction; }; }) => { setNickname(e.target.value); console.log("testeeeee") const postNickname = async () => { diff --git a/containers/react/src/pages/Home.js b/containers/react/src/pages/LoginButton.tsx similarity index 86% rename from containers/react/src/pages/Home.js rename to containers/react/src/pages/LoginButton.tsx index b848c466..1b13b74e 100644 --- a/containers/react/src/pages/Home.js +++ b/containers/react/src/pages/LoginButton.tsx @@ -3,6 +3,7 @@ import '../styles/field.css'; import { useLocation } from 'react-router-dom'; import api from '../script/axiosApi.tsx'; +import React from 'react'; function HomeLogin() { @@ -25,9 +26,11 @@ function HomeLogin() console.log(`already token= ${localStorage.getItem('token')}`) return ; } + console.log("yrah im here bitch"); + console.log("lien = ", process.env.REACT_APP_INTRA_URL); // else // let path = "https://api.intra.42.fr/oauth/authorize?client_id=u-s4t2ud-6d29dfa49ba7146577ffd8bf595ae8d9e5aaa3e0a9615df18777171ebf836a41&redirect_uri=http%3A%2F%2F" + process.env.REACT_APP_BASE_URL + "%3A80%2Fapi%2Fauth%2Flogin&response_type=code"; - let path = "https://api.intra.42.fr/oauth/authorize?client_id=u-s4t2ud-6d29dfa49ba7146577ffd8bf595ae8d9e5aaa3e0a9615df18777171ebf836a41&redirect_uri=http%3A%2F%2F" + process.env.REACT_APP_BASE_URL + "%2Fapi%2Fauth%2Flogin&response_type=code" + let path = process.env.REACT_APP_INTRA_URL || ""; window.location.replace(path); }; diff --git a/containers/react/src/pages/canvas.tsx b/containers/react/src/pages/canvas.tsx index a5884189..b80ee308 100644 --- a/containers/react/src/pages/canvas.tsx +++ b/containers/react/src/pages/canvas.tsx @@ -197,12 +197,12 @@ socket.on('pong:gameId', async (data) => { if (data.id === myId) { console.log("myId= true") - vX = 0.0001; + vX = 0.0005; } else { console.log("myId= false") - vX = -0.0001; + vX = -0.0005; } } catch (error) { console.log(error); @@ -268,7 +268,7 @@ socket.on('pong:point', (data) => { // console.log("up point"); myScore = data.point; // } - vX = -0.0001; + vX = -0.0005; vY = 0; ballX = canvas.width / 2; ballY = canvas.height / 2; @@ -282,7 +282,7 @@ socket.on('pong:hisPoint', (data) => { // console.log("up point"); hisScore = data.point; // } - vX = -0.0001; + vX = -0.0005; vY = 0; ballX = canvas.width / 2; ballY = canvas.height / 2; @@ -355,7 +355,7 @@ socket.on('pong:hisPoint', (data) => { point: hisScore, } socket.emit('pong:point', info); - vX = 0.0001; + vX = 0.0005; } function send_my_point() @@ -370,7 +370,7 @@ socket.on('pong:hisPoint', (data) => { } socket.emit('pong:myPoint', info); myScore++; - vX = 0.0001; + vX = 0.0005; vY = 0; ballX = canvas.width / 2; ballY = canvas.height / 2; @@ -494,6 +494,7 @@ socket.on('pong:hisPoint', (data) => { // option: option, // }; // await api.post("status", {status: 1}); + await api.post('/status', {status: 1}); await api.post("deleteInvite", {username: gameParam.username}) } catch (err){ @@ -648,7 +649,7 @@ async function draw(timestamp: number) } ballX = canvas.width / 2; ballY = canvas.height / 2; - vX = 0.0001; + vX = 0.0005; vY = 0; hisScore += 1; send_point(); diff --git a/containers/react/src/script/tokenSuccess.tsx b/containers/react/src/script/tokenSuccess.tsx index 8c3a5f09..4f7ff0ed 100644 --- a/containers/react/src/script/tokenSuccess.tsx +++ b/containers/react/src/script/tokenSuccess.tsx @@ -16,7 +16,7 @@ function SuccessToken() { useEffect(() => { if (!data) { console.log("No data"); - return; + return ; } const cleanData = data.slice(1, -1); // Declare cleanData here @@ -94,7 +94,7 @@ function SuccessToken() { return

Loading...

; } if (!data) - return ; + return (<>); const cleanData = data.slice(1, -1); // Declare cleanData here as well if (!user.otp_verified) {