clen a bit and add verifypassword who now add to channel if good pass
This commit is contained in:
parent
baa9b90e5d
commit
369ab63f8a
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/06/17 01:00:00 by apommier #+# #+# */
|
/* Created: 2023/06/17 01:00:00 by apommier #+# #+# */
|
||||||
/* Updated: 2023/06/26 08:00:13 by apommier ### ########.fr */
|
/* Updated: 2023/06/26 10:16:19 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -46,6 +46,21 @@ export class AppController {
|
|||||||
return await this.userService.findOne(req.user.username);
|
return await this.userService.findOne(req.user.username);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@UseGuards(JwtAuthGuard)
|
||||||
|
@Post('/logout')
|
||||||
|
async logout(@Request() req, @Body() data: any) {
|
||||||
|
const user = await this.userService.findOne(req.user.username)
|
||||||
|
// return await this.userService.refuseInvite(user, data.username);
|
||||||
|
if(!user)
|
||||||
|
return ;
|
||||||
|
if (user.sessionNumber === 1)
|
||||||
|
{
|
||||||
|
user.status = 0;
|
||||||
|
}
|
||||||
|
user.sessionNumber--;
|
||||||
|
this.userService.save(user);
|
||||||
|
}
|
||||||
|
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Post('/user')
|
@Post('/user')
|
||||||
async getUser(@Body() data: any) {
|
async getUser(@Body() data: any) {
|
||||||
@ -204,6 +219,7 @@ export class AppController {
|
|||||||
async addLoss(@Request() req, @Body() data: any) {
|
async addLoss(@Request() req, @Body() data: any) {
|
||||||
const user = await this.userService.findOne(req.user.username);
|
const user = await this.userService.findOne(req.user.username);
|
||||||
user.loss++;
|
user.loss++;
|
||||||
|
user.status = 1;
|
||||||
const Esp = 1 / (1 + Math.pow(10, (data.opRank - user.rank) / this.scaleFactor))
|
const Esp = 1 / (1 + Math.pow(10, (data.opRank - user.rank) / this.scaleFactor))
|
||||||
const newRank = user.rank + this.kFactor * (0 - Esp);
|
const newRank = user.rank + this.kFactor * (0 - Esp);
|
||||||
user.rank = newRank;
|
user.rank = newRank;
|
||||||
@ -267,7 +283,10 @@ export class AppController {
|
|||||||
@Post('/quit')
|
@Post('/quit')
|
||||||
async setOffline(@Request() req) {
|
async setOffline(@Request() req) {
|
||||||
const user = await this.userService.findOne(req.user.username);
|
const user = await this.userService.findOne(req.user.username);
|
||||||
|
if (!user)
|
||||||
|
return ;
|
||||||
user.sessionNumber--;
|
user.sessionNumber--;
|
||||||
|
console.log("seesion number=", user.sessionNumber)
|
||||||
if (!user.sessionNumber)
|
if (!user.sessionNumber)
|
||||||
user.status = 0;
|
user.status = 0;
|
||||||
await this.userService.save(user);
|
await this.userService.save(user);
|
||||||
@ -413,13 +432,15 @@ export class AppController {
|
|||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Post('/password')
|
@Post('/password')
|
||||||
async setPassword(@Body() data: any) {
|
async setPassword(@Body() data: any) {
|
||||||
|
// console.log("PASSSSSSSSSSSSSSSSSSSSSSSSSSs= ", data.password);
|
||||||
return await this.chatService.setPassword(data.convId, data.password)
|
return await this.chatService.setPassword(data.convId, data.password)
|
||||||
}
|
}
|
||||||
|
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
@Post('/verifyPassword')
|
@Post('/verifyPassword')
|
||||||
async verifyPassword(@Body() data: any) {
|
async verifyPassword(@Request() req, @Body() data: any) {
|
||||||
return await this.chatService.verifyPassword(data.convId, data.password)
|
// const user = await this.userService.findOne(req.user.username);
|
||||||
|
return await this.chatService.verifyPassword(data.convId, data.password, req.user.username)
|
||||||
}
|
}
|
||||||
|
|
||||||
@UseGuards(JwtAuthGuard)
|
@UseGuards(JwtAuthGuard)
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
/* By: apommier <apommier@student.42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2023/06/17 01:00:25 by apommier #+# #+# */
|
/* Created: 2023/06/17 01:00:25 by apommier #+# #+# */
|
||||||
/* Updated: 2023/06/26 06:56:08 by apommier ### ########.fr */
|
/* Updated: 2023/06/26 10:17:36 by apommier ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
@ -108,9 +108,16 @@ async setPassword(convId: number, password: string) {
|
|||||||
this.save(conv);
|
this.save(conv);
|
||||||
}
|
}
|
||||||
|
|
||||||
async verifyPassword(convId: number, password: string) {
|
async verifyPassword(convId: number, password: string, username: string) {
|
||||||
const conv = await this.findConv(convId);
|
const conv = await this.findConv(convId);
|
||||||
return await bcrypt.compare(password, conv.password);
|
const ret = await bcrypt.compare(password, conv.password);
|
||||||
|
if (ret === true)
|
||||||
|
{
|
||||||
|
conv.members = conv.members || [];
|
||||||
|
conv.members.push(username);
|
||||||
|
this.save(conv);
|
||||||
|
}
|
||||||
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
async muteUser(convId: number, username: string, time: string) {
|
async muteUser(convId: number, username: string, time: string) {
|
||||||
|
|||||||
@ -1,58 +0,0 @@
|
|||||||
export const Rank = [
|
|
||||||
{
|
|
||||||
rank: '1',
|
|
||||||
name: 'jean',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rank: '2',
|
|
||||||
name: 'marc',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rank: '3',
|
|
||||||
name: 'dujardain',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rank: '4',
|
|
||||||
name: 'mom',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rank: '5',
|
|
||||||
name: 'fary',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rank: '6',
|
|
||||||
name: 'aba',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rank: '7',
|
|
||||||
name: 'preach',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rank: '1',
|
|
||||||
name: 'jean',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rank: '2',
|
|
||||||
name: 'marc',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rank: '3',
|
|
||||||
name: 'dujardain',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rank: '4',
|
|
||||||
name: 'mom',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rank: '5',
|
|
||||||
name: 'fary',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rank: '6',
|
|
||||||
name: 'aba',
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rank: '7',
|
|
||||||
name: 'preach',
|
|
||||||
},
|
|
||||||
]
|
|
||||||
@ -1,8 +0,0 @@
|
|||||||
import DefaultPic from '../assets/profile.jpg';
|
|
||||||
|
|
||||||
export const UserProfile = {
|
|
||||||
Pic: DefaultPic,
|
|
||||||
UserName: 'Dipper Ratman',
|
|
||||||
}
|
|
||||||
|
|
||||||
// export default UserProfile
|
|
||||||
@ -1,37 +0,0 @@
|
|||||||
export const DBWinLoss = [
|
|
||||||
{
|
|
||||||
title: 'Victory',
|
|
||||||
score: '10 - 6',
|
|
||||||
opponent: 'chef bandit'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Defeat',
|
|
||||||
score: '9 - 10',
|
|
||||||
opponent: 'ex tueur'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Victory',
|
|
||||||
score: '10 - 0',
|
|
||||||
opponent: 'tueur'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Victory',
|
|
||||||
score: '10 - 9',
|
|
||||||
opponent: 'boulanger'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Defeat',
|
|
||||||
score: '3 - 10',
|
|
||||||
opponent: 'charcutier'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Deafet',
|
|
||||||
score: '9 - 10',
|
|
||||||
opponent: 'preach'
|
|
||||||
},
|
|
||||||
{
|
|
||||||
title: 'Victory',
|
|
||||||
score: '10 - 9',
|
|
||||||
opponent: 'aba'
|
|
||||||
},
|
|
||||||
]
|
|
||||||
@ -29,7 +29,6 @@ interface ModalProps {
|
|||||||
}
|
}
|
||||||
|
|
||||||
const Modal = ({handleClose}: ModalProps) => {
|
const Modal = ({handleClose}: ModalProps) => {
|
||||||
// const [multi, setMulti] = useState(false);
|
|
||||||
const [selectTags, setSelectTag] = useState([{ id: 1, selectedOption: ''}]);
|
const [selectTags, setSelectTag] = useState([{ id: 1, selectedOption: ''}]);
|
||||||
const [selectedOptionArray, setSelectedOptionArray] = useState<string[]>([]);
|
const [selectedOptionArray, setSelectedOptionArray] = useState<string[]>([]);
|
||||||
const [users, setUsers] = useState<User[]>([]);
|
const [users, setUsers] = useState<User[]>([]);
|
||||||
@ -39,7 +38,6 @@ const Modal = ({handleClose}: ModalProps) => {
|
|||||||
const [channel, setChannel] = useState('');
|
const [channel, setChannel] = useState('');
|
||||||
|
|
||||||
useEffect(()=> {
|
useEffect(()=> {
|
||||||
|
|
||||||
const getConv = async ()=>{
|
const getConv = async ()=>{
|
||||||
try {
|
try {
|
||||||
const tmpUsers = await api.get("/users");
|
const tmpUsers = await api.get("/users");
|
||||||
@ -50,7 +48,7 @@ const Modal = ({handleClose}: ModalProps) => {
|
|||||||
setUsers(tmpUsers.data);
|
setUsers(tmpUsers.data);
|
||||||
setUser(tmpUser.data);
|
setUser(tmpUser.data);
|
||||||
setConvs(tmpConvs.data);
|
setConvs(tmpConvs.data);
|
||||||
} catch(err){
|
} catch(err) {
|
||||||
console.log(err)
|
console.log(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -76,6 +74,7 @@ const Modal = ({handleClose}: ModalProps) => {
|
|||||||
try {
|
try {
|
||||||
console.log("channel= ", channel)
|
console.log("channel= ", channel)
|
||||||
await api.post("/join", {convId: channel})
|
await api.post("/join", {convId: channel})
|
||||||
|
window.location.reload();
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
}
|
}
|
||||||
@ -108,13 +107,11 @@ const Modal = ({handleClose}: ModalProps) => {
|
|||||||
<motion.div
|
<motion.div
|
||||||
onClick={(e) => e.stopPropagation()}
|
onClick={(e) => e.stopPropagation()}
|
||||||
className="modalSetting"
|
className="modalSetting"
|
||||||
// variant={dropIn}
|
|
||||||
initial="hidden"
|
initial="hidden"
|
||||||
animate="visible"
|
animate="visible"
|
||||||
exit="exit"
|
exit="exit"
|
||||||
>
|
>
|
||||||
{/* <p>New Conversation</p> */}
|
<div className="settingFirstPart2">
|
||||||
<div className="settingFirstPart2">
|
|
||||||
|
|
||||||
{selectTags.map((selectTag) => (
|
{selectTags.map((selectTag) => (
|
||||||
<div key={selectTag.id}>
|
<div key={selectTag.id}>
|
||||||
@ -159,19 +156,14 @@ const Modal = ({handleClose}: ModalProps) => {
|
|||||||
)
|
)
|
||||||
))}
|
))}
|
||||||
</select>
|
</select>
|
||||||
|
// {/* {channel.private ? (
|
||||||
|
// <input className="mdp" placeholder="passdddddword" type="text" />
|
||||||
|
// ):("")} */}
|
||||||
)}
|
)}
|
||||||
{/* {channel.private ? (
|
|
||||||
<input className="mdp" placeholder="passdddddword" type="text" />
|
|
||||||
):("")} */}
|
|
||||||
|
|
||||||
|
|
||||||
<div className="div_submit">
|
<div className="div_submit">
|
||||||
<Link to='#' className="submit" onClick={ joinChannel }>Join</Link>
|
<Link to='#' className="submit" onClick={ joinChannel }>Join</Link>
|
||||||
</div>
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
</motion.div>
|
</motion.div>
|
||||||
</Backdrop>
|
</Backdrop>
|
||||||
)
|
)
|
||||||
|
|||||||
@ -1,14 +1,25 @@
|
|||||||
import React from "react";
|
import React from "react";
|
||||||
|
import api from "../../script/axiosApi"
|
||||||
|
|
||||||
|
|
||||||
function Logout(){
|
function Logout(){
|
||||||
|
|
||||||
|
const logout = async () =>{
|
||||||
|
|
||||||
|
try {
|
||||||
|
await api.post("/logout")
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
logout();
|
||||||
localStorage.clear();
|
localStorage.clear();
|
||||||
const path = 'http://' + process.env.REACT_APP_BASE_URL + '/';
|
const path = 'http://' + process.env.REACT_APP_BASE_URL + '/';
|
||||||
// history(path, { replace: true });
|
// history(path, { replace: true });
|
||||||
// window.location.replace(path);
|
// window.location.replace(path);
|
||||||
// window.history.pushState({}, '', path);
|
// window.history.pushState({}, '', path);
|
||||||
|
|
||||||
window.history.pushState({}, '', path);
|
window.history.pushState({}, '', path);
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
return (<></>)
|
return (<></>)
|
||||||
|
|||||||
@ -1,112 +1,18 @@
|
|||||||
import React, { useCallback, useState, useEffect } from 'react';
|
import React, { useState, useEffect } from 'react';
|
||||||
import api from '../script/axiosApi.tsx';
|
import api from '../script/axiosApi.tsx';
|
||||||
|
|
||||||
// function DoubleAuth() {
|
|
||||||
|
|
||||||
// // const enabled = await api.get("/2fa");
|
|
||||||
|
|
||||||
// // const response = await api.get("/2fa");
|
|
||||||
// // const enabled = response.data;
|
|
||||||
// // console.log(`enable= ${enabled.data}`)
|
|
||||||
// // const enabled = 0;
|
|
||||||
// let enabled;
|
|
||||||
|
|
||||||
// useEffect(() => {
|
|
||||||
// async function get2fa()
|
|
||||||
// {
|
|
||||||
// const response = await api.get("/2fa");
|
|
||||||
// const enabled = response.data;
|
|
||||||
// console.log(`enable= ${enabled.data}`)
|
|
||||||
// }
|
|
||||||
// // const enabled = 0;
|
|
||||||
// }, [])
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// useEffect(() => {
|
|
||||||
// async function get2fa()
|
|
||||||
// {
|
|
||||||
// api.get('/api/QRcode', { responseType: 'blob' })
|
|
||||||
// .then(response => {
|
|
||||||
// const reader = new FileReader();
|
|
||||||
// reader.onloadend = () => {
|
|
||||||
// setImageSrc(reader.result);
|
|
||||||
// };
|
|
||||||
// reader.readAsDataURL(response.data);
|
|
||||||
// })
|
|
||||||
// .catch(error => {
|
|
||||||
// console.error(error);
|
|
||||||
// });
|
|
||||||
|
|
||||||
// } }, []);
|
|
||||||
|
|
||||||
// // const [verificationCode, setVerificationCode] = useState('');
|
|
||||||
// // const [invalidCode, setInvalidCode] = useState(false);
|
|
||||||
|
|
||||||
// const handleSubmit = () => {
|
|
||||||
// // async (e) => {
|
|
||||||
// // e.preventDefault();
|
|
||||||
|
|
||||||
// // const result = await verifyOtp(verificationCode);
|
|
||||||
|
|
||||||
// // if (result) return (window.location = '/');
|
|
||||||
|
|
||||||
// // setInvalidCode(true);
|
|
||||||
// // },
|
|
||||||
// // [verificationCode]
|
|
||||||
// };
|
|
||||||
|
|
||||||
// let sourceCode
|
|
||||||
|
|
||||||
// if (!enabled)
|
|
||||||
// {
|
|
||||||
// api.get('/QRcode')
|
|
||||||
// .then(response => {
|
|
||||||
// sourceCode = response.data;
|
|
||||||
// console.log(sourceCode);
|
|
||||||
// })
|
|
||||||
// .catch(error => {
|
|
||||||
// console.error(error);
|
|
||||||
// });
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return (
|
|
||||||
// <div>
|
|
||||||
// {!enabled && (
|
|
||||||
// <div>
|
|
||||||
// <p>Scan the QR code on your authenticator app</p>
|
|
||||||
// <img src={sourceCode} />
|
|
||||||
// </div>
|
|
||||||
// )}
|
|
||||||
|
|
||||||
// <form onSubmit={handleSubmit}>
|
|
||||||
// {/* <Input
|
|
||||||
// id="verificationCode"
|
|
||||||
// label="Verification code"
|
|
||||||
// type="text"
|
|
||||||
// value={verificationCode}
|
|
||||||
// onChange={(e) => setVerificationCode(e.target.value)}
|
|
||||||
// /> */}
|
|
||||||
|
|
||||||
// <button type="submit">Confirm</button>
|
|
||||||
|
|
||||||
// {/* {invalidCode && <p>Invalid verification code</p>} */}
|
|
||||||
// </form>
|
|
||||||
// </div>
|
|
||||||
// );
|
|
||||||
// }
|
|
||||||
|
|
||||||
|
|
||||||
// import { toFileStream } from 'qrcode';
|
|
||||||
|
|
||||||
const DoubleAuth = () => {
|
const DoubleAuth = () => {
|
||||||
const [imageSrc, setImageSrc] = useState('');
|
// const [imageSrc, setImageSrc] = useState('');
|
||||||
|
const [imageSrc, setImageSrc] = useState<string | ArrayBuffer | null>('');
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
async function getCode(){
|
async function getCode(){
|
||||||
await api.get('/QRcode', { responseType: 'blob' })
|
await api.get('/QRcode', { responseType: 'blob' })
|
||||||
.then(response => {
|
.then(response => {
|
||||||
const reader = new FileReader();
|
const reader = new FileReader();
|
||||||
|
if (!reader)
|
||||||
|
return ;
|
||||||
reader.onloadend = () => {
|
reader.onloadend = () => {
|
||||||
setImageSrc(reader.result);
|
setImageSrc(reader.result);
|
||||||
};
|
};
|
||||||
@ -119,23 +25,12 @@ const DoubleAuth = () => {
|
|||||||
getCode();
|
getCode();
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
// return (
|
|
||||||
// <div>
|
|
||||||
// {imageSrc && <img src={imageSrc} alt="QR Code" />}
|
|
||||||
// </div>
|
|
||||||
// );
|
|
||||||
|
|
||||||
// <img src={sourceCode} />
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div>
|
<div>
|
||||||
<div>
|
<div>
|
||||||
<p>Scan the QR code on your authenticator app</p>
|
<p>Scan the QR code on your authenticator app</p>
|
||||||
{imageSrc && <img src={imageSrc} alt="QR Code" />}
|
{imageSrc && <img src={imageSrc.toString()} alt="QR Code" />}
|
||||||
</div>
|
</div>
|
||||||
{/* <form onSubmit={handleSubmit}>
|
|
||||||
<button type="submit">Confirm</button>
|
|
||||||
</form> */}
|
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
@ -52,9 +52,6 @@ function QrCode () {
|
|||||||
const otpData = await api.post("/otp");
|
const otpData = await api.post("/otp");
|
||||||
setUrl(otpData.data.otpauth_url);
|
setUrl(otpData.data.otpauth_url);
|
||||||
setSecret(otpData.data.base32_secret);
|
setSecret(otpData.data.base32_secret);
|
||||||
// const tmpUser = await api.get("/profile")
|
|
||||||
// console.log("test")
|
|
||||||
// console.table(convs);
|
|
||||||
}
|
}
|
||||||
catch(err){
|
catch(err){
|
||||||
console.log(err);
|
console.log(err);
|
||||||
@ -70,34 +67,22 @@ function QrCode () {
|
|||||||
|
|
||||||
|
|
||||||
const handleKeyPress = async (e: { key: string; })=>{
|
const handleKeyPress = async (e: { key: string; })=>{
|
||||||
// console.log(`e in press= ${e.key}`)
|
|
||||||
if (e.key !== "Enter")
|
if (e.key !== "Enter")
|
||||||
return ;
|
return ;
|
||||||
try{
|
try{
|
||||||
console.log("code= ", code)
|
|
||||||
const res = await api.post("/verifyOtp", {token: code})
|
const res = await api.post("/verifyOtp", {token: code})
|
||||||
console.log("res= ", res.data)
|
|
||||||
console.log("res= ", res)
|
|
||||||
if (!res.data)
|
if (!res.data)
|
||||||
{
|
{
|
||||||
setErr(true);
|
setErr(true);
|
||||||
}
|
}
|
||||||
if (res.data === 1)
|
if (res.data === 1)
|
||||||
{
|
{
|
||||||
console.log("registered")
|
|
||||||
// history.push('/login')
|
|
||||||
|
|
||||||
const path = 'http://' + process.env.REACT_APP_BASE_URL + '/';
|
const path = 'http://' + process.env.REACT_APP_BASE_URL + '/';
|
||||||
window.history.pushState({}, '', path);
|
window.history.pushState({}, '', path);
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
|
||||||
console.log("bad code")
|
console.log("bad code")
|
||||||
//alert ?? retry
|
|
||||||
}
|
|
||||||
// redirect('/test')
|
|
||||||
}
|
}
|
||||||
catch(err){
|
catch(err){
|
||||||
console.log(err)
|
console.log(err)
|
||||||
@ -107,8 +92,6 @@ function QrCode () {
|
|||||||
const handleDesactivate = async () => {
|
const handleDesactivate = async () => {
|
||||||
try {
|
try {
|
||||||
await api.post("/deleteOtp")
|
await api.post("/deleteOtp")
|
||||||
// const path = 'http://' + process.env.REACT_APP_BASE_URL + '/';
|
|
||||||
// window.history.pushState({}, '', path);
|
|
||||||
window.location.reload();
|
window.location.reload();
|
||||||
} catch(err) {
|
} catch(err) {
|
||||||
console.log(err);
|
console.log(err);
|
||||||
@ -116,18 +99,6 @@ function QrCode () {
|
|||||||
};
|
};
|
||||||
|
|
||||||
return (
|
return (
|
||||||
// <motion.div className="page"
|
|
||||||
// initial={{opacity: -1}}
|
|
||||||
// animate={{opacity: 1}}
|
|
||||||
// exit={{opacity: -1}}>
|
|
||||||
// <h1>QRcode</h1>
|
|
||||||
// <h3>{secret}</h3>
|
|
||||||
// <div ref={ref} />
|
|
||||||
// <input type="text" className="qr" placeholder="Type The Code"/>
|
|
||||||
// {}
|
|
||||||
|
|
||||||
// </motion.div>
|
|
||||||
|
|
||||||
<motion.div
|
<motion.div
|
||||||
className="page"
|
className="page"
|
||||||
initial={{ opacity: -1 }}
|
initial={{ opacity: -1 }}
|
||||||
@ -140,7 +111,6 @@ function QrCode () {
|
|||||||
<h3>{secret}</h3>
|
<h3>{secret}</h3>
|
||||||
<h1>Or Scan The QRCode</h1>
|
<h1>Or Scan The QRCode</h1>
|
||||||
<div ref={ref} />
|
<div ref={ref} />
|
||||||
{/* <div>{ref}</div> */}
|
|
||||||
</>
|
</>
|
||||||
)}
|
)}
|
||||||
|
|
||||||
@ -166,22 +136,6 @@ function QrCode () {
|
|||||||
{err ? (<RedAlert handleClose={closeErr} text="Error: Bad intput. Try again"/>):("")}
|
{err ? (<RedAlert handleClose={closeErr} text="Error: Bad intput. Try again"/>):("")}
|
||||||
</AnimatePresence>
|
</AnimatePresence>
|
||||||
</>
|
</>
|
||||||
|
|
||||||
{/* {!localStorage.getItem('token') && (
|
|
||||||
<>
|
|
||||||
<h1>Double Auth</h1>
|
|
||||||
<input onKeyDown={handleKeyPress}
|
|
||||||
type="text"
|
|
||||||
className="qr"
|
|
||||||
placeholder="6 Digits Code"
|
|
||||||
onChange={(e) => setCode(e.target.value)}
|
|
||||||
/>
|
|
||||||
</>
|
|
||||||
) : (<button onClick={ handleDesactivate }>Desactivate 2FA</button>)}
|
|
||||||
*/}
|
|
||||||
{/* {!activated && (
|
|
||||||
<button onClick={() => setActivated(true)}>Activate</button>
|
|
||||||
)} */}
|
|
||||||
</motion.div>
|
</motion.div>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -1,9 +0,0 @@
|
|||||||
import React from "react";
|
|
||||||
|
|
||||||
function Social (){
|
|
||||||
return (
|
|
||||||
<div>je suis la partie social</div>
|
|
||||||
)
|
|
||||||
}
|
|
||||||
|
|
||||||
export default Social
|
|
||||||
@ -1,3 +1,4 @@
|
|||||||
|
import { useEffect } from 'react';
|
||||||
import api from '../script/axiosApi.tsx';
|
import api from '../script/axiosApi.tsx';
|
||||||
import io from 'socket.io-client';
|
import io from 'socket.io-client';
|
||||||
|
|
||||||
@ -9,6 +10,22 @@ interface GameProps {
|
|||||||
|
|
||||||
function DrawCanvas(option: number, gameParam: GameProps) {
|
function DrawCanvas(option: number, gameParam: GameProps) {
|
||||||
|
|
||||||
|
|
||||||
|
useEffect(() => {
|
||||||
|
const handleBeforeUnload = async (event: { preventDefault: () => void; returnValue: string; }) => {
|
||||||
|
try {
|
||||||
|
await api.post("/status", {status: 1});
|
||||||
|
} catch (err) {
|
||||||
|
console.log(err);
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
window.addEventListener('beforeunload', handleBeforeUnload);
|
||||||
|
return () => {
|
||||||
|
window.removeEventListener('beforeunload', handleBeforeUnload);
|
||||||
|
};
|
||||||
|
}, []);
|
||||||
|
|
||||||
console.log(`option= ${option}`);
|
console.log(`option= ${option}`);
|
||||||
const superpowerModifier = option & 1; // Retrieves the superpower modifier
|
const superpowerModifier = option & 1; // Retrieves the superpower modifier
|
||||||
const obstacleModifier = (option >> 1) & 1; // Retrieves the obstacle modifier
|
const obstacleModifier = (option >> 1) & 1; // Retrieves the obstacle modifier
|
||||||
@ -38,7 +55,7 @@ function DrawCanvas(option: number, gameParam: GameProps) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
console.log("start function");
|
console.log("start function");
|
||||||
const canvas = document.getElementById('myCanvas') as HTMLCanvasElement | null;;
|
const canvas = document.getElementById('myCanvas') as HTMLCanvasElement | null;
|
||||||
if (!canvas)
|
if (!canvas)
|
||||||
return ;
|
return ;
|
||||||
|
|
||||||
@ -433,6 +450,20 @@ socket.on('pong:hisPoint', (data) => {
|
|||||||
console.log(err)
|
console.log(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
const data = {
|
||||||
|
myScore: myScore,
|
||||||
|
opScore: 5,
|
||||||
|
opName: opName,
|
||||||
|
opRank: opRank,
|
||||||
|
};
|
||||||
|
await api.post('/loss', data);
|
||||||
|
// await api.post('/status', {status: 1});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
//here
|
||||||
socket.emit('pong:disconnect', {id: myId});
|
socket.emit('pong:disconnect', {id: myId});
|
||||||
window.location.replace("http://" + process.env.REACT_APP_BASE_URL + "/pong");
|
window.location.replace("http://" + process.env.REACT_APP_BASE_URL + "/pong");
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user