|
|
|
@ -1,13 +1,13 @@
|
|
|
|
|
import React, {useEffect, useState} from 'react';
|
|
|
|
|
import React, {useState, useEffect} from 'react';
|
|
|
|
|
import Carousel from 'nuka-carousel';
|
|
|
|
|
|
|
|
|
|
/* Style */
|
|
|
|
|
import '../Pages/Play.css';
|
|
|
|
|
import '../Style/Global.css'
|
|
|
|
|
import './ScoreBoard.css';
|
|
|
|
|
import { useTheme } from '../Style/ThemeContext';
|
|
|
|
|
|
|
|
|
|
/* Ressources */
|
|
|
|
|
import Person from '../res/img/Person.png'
|
|
|
|
|
import leave from '../res/img/bot.png'
|
|
|
|
|
import trophy from '../res/icon/trophy.png'
|
|
|
|
|
import share from '../res/icon/share.png';
|
|
|
|
|
|
|
|
|
@ -19,16 +19,21 @@ import Row from 'react-bootstrap/Row';
|
|
|
|
|
import Col from 'react-bootstrap/Col';
|
|
|
|
|
|
|
|
|
|
/* Component */
|
|
|
|
|
import ButtonImgNav from './ButtonImgNav';
|
|
|
|
|
import User from '../model/User';
|
|
|
|
|
|
|
|
|
|
/* Services */
|
|
|
|
|
import ScoreboardService from '../services/ScoreboardService';
|
|
|
|
|
import { BiLineChart, BiLineChartDown } from 'react-icons/bi';
|
|
|
|
|
import { CarouselCaption } from 'react-bootstrap';
|
|
|
|
|
import { BsLine } from 'react-icons/bs';
|
|
|
|
|
|
|
|
|
|
//@ts-ignore
|
|
|
|
|
const ScoreBoard: React.FC<{ Player: User }> = ({ Player }) => {
|
|
|
|
|
const theme=useTheme();
|
|
|
|
|
|
|
|
|
|
const [carouselKey, setCarouselKey] = useState(0);
|
|
|
|
|
const [activeTab, setActiveTab] = useState("perso");
|
|
|
|
|
|
|
|
|
|
// DAILY STATS
|
|
|
|
|
const [dailyMastermindStats, setDailyMastermindStats] = useState<any>(null);
|
|
|
|
|
const [dailyEasyEnigmaStats, setDailyEasyEnigmaStats] = useState<any>(null);
|
|
|
|
@ -82,228 +87,274 @@ const ScoreBoard: React.FC<{ Player: User }> = ({ Player }) => {
|
|
|
|
|
}, []);
|
|
|
|
|
|
|
|
|
|
return (
|
|
|
|
|
// <div className='LeaderBoardiv'>
|
|
|
|
|
<div className='LeaderBoardiv'>
|
|
|
|
|
<Tabs style={{width:"100%"}}
|
|
|
|
|
defaultActiveKey="daily"
|
|
|
|
|
id="ScoreBoard"
|
|
|
|
|
className="mb-3">
|
|
|
|
|
<Tab eventKey="perso" title="Vos Stats" disabled = { !Player.pseudo.startsWith("Guest_") ? false : true}>
|
|
|
|
|
<Container fluid>
|
|
|
|
|
<Row>Stats en MasterMind :</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Partie Jouées :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.mastermindStats.nbGames : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Best-Score :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.mastermindStats.bestScore : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Moyenne d'essai :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.mastermindStats.avgNbTry : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<hr/>
|
|
|
|
|
<Row>Stats en Enigme facile :</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Partie jouée :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.easyEnigmaStats.nbGames : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Nombre de victoire :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.easyEnigmaStats.nbWins : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Ratio V/D :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.easyEnigmaStats.ratio.toFixed(2) + "%" : "00.0%"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Meilleur temps :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.easyEnigmaStats.bestTime : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Moyenne de temps :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.easyEnigmaStats.avgTime.toFixed(2) : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<hr/>
|
|
|
|
|
<Row>Stats en Enigme moyenne :</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Partie jouée :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.mediumEnigmaStats.nbGames : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Best-Score :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.mediumEnigmaStats.bestScore : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Moyenne d'essai :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.mediumEnigmaStats.avgNbTry.toFixed(2) : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<hr/>
|
|
|
|
|
<Row>Stats en Enigme difficile :</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Partie jouée :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.hardEnigmaStats.nbGames : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Nombre de victoire :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.hardEnigmaStats.nbWins : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Ratio V/D :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.hardEnigmaStats.ratio.toFixed(2) + "%" : "00.0%"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Meilleur temps :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.hardEnigmaStats.bestTime : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Moyenne de temps :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.hardEnigmaStats.avgTime.toFixed(2) : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<hr/>
|
|
|
|
|
<Row>Stats en ligne :</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Partie jouée :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.onlineStats.nbGames : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Nombre de victoire :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.onlineStats.nbWins : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>Ratio V/D :</Col>
|
|
|
|
|
<Col className='leftRow'>{Player !== null ? Player.onlineStats.ratio.toFixed(2) + "%" : "0"}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</Container>
|
|
|
|
|
</Tab>
|
|
|
|
|
<Tab eventKey="daily" title="Daily"
|
|
|
|
|
style={{display:"flex", flexDirection:'column', alignItems:'center'}}>
|
|
|
|
|
<img src={trophy}
|
|
|
|
|
height='100'
|
|
|
|
|
width='100'
|
|
|
|
|
alt="Person2"/>
|
|
|
|
|
<Container fluid>
|
|
|
|
|
<Row>MasterMind :</Row>
|
|
|
|
|
{dailyMastermindStats !== null ? (dailyMastermindStats.tab.length !== 0 ? dailyMastermindStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<Row key={index}>
|
|
|
|
|
<Col sm={10}>{index+1}.{stats.pseudo}</Col>
|
|
|
|
|
<Col className='leftRow'>{stats.score}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)) : (
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>No data</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)) : (
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>No data</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)}
|
|
|
|
|
|
|
|
|
|
<hr/>
|
|
|
|
|
|
|
|
|
|
<Row>Multijoueur :</Row>
|
|
|
|
|
{dailyOnlineStats !== null ? (dailyOnlineStats.tab.length !== 0 ? dailyOnlineStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<Row key={index}>
|
|
|
|
|
<Col sm={10}>{index+1}.{stats.pseudo}</Col>
|
|
|
|
|
<Col className='leftRow'>{stats.wins}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)) : (
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>No data</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)) : (
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>No data</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)}
|
|
|
|
|
|
|
|
|
|
<hr/>
|
|
|
|
|
|
|
|
|
|
<Row>Enigme facile :</Row>
|
|
|
|
|
{dailyEasyEnigmaStats !== null ? (dailyEasyEnigmaStats.tab.length !== 0 ? dailyEasyEnigmaStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<Row key={index}>
|
|
|
|
|
<Col sm={10}>{index+1}.{stats.pseudo}</Col>
|
|
|
|
|
<Col className='leftRow'>{stats.time}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)) : (
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>No data</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)) : (
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>No data</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)}
|
|
|
|
|
|
|
|
|
|
<hr/>
|
|
|
|
|
|
|
|
|
|
</Container>
|
|
|
|
|
</Tab>
|
|
|
|
|
<Tab eventKey="weekly" title="Weekly">
|
|
|
|
|
<img src={trophy}
|
|
|
|
|
height='100'
|
|
|
|
|
width='100'
|
|
|
|
|
alt="Person2"/>
|
|
|
|
|
<Container fluid>
|
|
|
|
|
<Row>MasterMind :</Row>
|
|
|
|
|
{weeklyMastermindStats !== null ? (weeklyMastermindStats.tab.length !== 0 ? weeklyMastermindStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<Row key={index}>
|
|
|
|
|
<Col sm={10}>{index+1}.{stats.pseudo}</Col>
|
|
|
|
|
<Col className='leftRow'>{stats.score}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)) : (
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>No data</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)) : (
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>No data</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)}
|
|
|
|
|
<hr/>
|
|
|
|
|
<Row>Multijoueur :</Row>
|
|
|
|
|
{weeklyOnlineStats !== null ? (weeklyOnlineStats.tab.length !== 0 ? weeklyOnlineStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<Row key={index}>
|
|
|
|
|
<Col sm={10}>{index+1}.{stats.pseudo}</Col>
|
|
|
|
|
<Col className='leftRow'>{stats.wins}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)) : (
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>No data</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)) : (
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>No data</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)}
|
|
|
|
|
|
|
|
|
|
<hr/>
|
|
|
|
|
|
|
|
|
|
<Row>Enigme facile :</Row>
|
|
|
|
|
{weeklyEasyEnigmaStats !== null ? (weeklyEasyEnigmaStats.tab.length !== 0 ? weeklyEasyEnigmaStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<Row key={index}>
|
|
|
|
|
<Col sm={10}>{index+1}.{stats.pseudo}</Col>
|
|
|
|
|
<Col className='leftRow'>{stats.time}</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)) : (
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>No data</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)) : (
|
|
|
|
|
<Row>
|
|
|
|
|
<Col sm={10}>No data</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
)}
|
|
|
|
|
|
|
|
|
|
<hr/>
|
|
|
|
|
</Container>
|
|
|
|
|
</Tab>
|
|
|
|
|
</Tabs>
|
|
|
|
|
|
|
|
|
|
<ButtonImgNav dest='/' img={share}/>
|
|
|
|
|
</div>
|
|
|
|
|
//</div>
|
|
|
|
|
<Tabs
|
|
|
|
|
activeKey={activeTab}
|
|
|
|
|
onSelect={(key:any) => {
|
|
|
|
|
setActiveTab(key);
|
|
|
|
|
// Forcer une mise à jour du carousel
|
|
|
|
|
setCarouselKey((prevKey) => prevKey + 1);
|
|
|
|
|
}}
|
|
|
|
|
id="ScoreBoard"
|
|
|
|
|
className="tabsStats justify-content-around"
|
|
|
|
|
>
|
|
|
|
|
<Tab eventKey="perso" title="Vos Stats" disabled={!Player.pseudo.startsWith("Guest_") ? false : true}>
|
|
|
|
|
<Tab.Content className={`tabsStats ${activeTab !== 'perso' ? 'hidden' : ''}`}>
|
|
|
|
|
<Carousel adaptiveHeight wrapAround slidesToShow={1} cellSpacing={10} key={carouselKey}>
|
|
|
|
|
<div className="stats">
|
|
|
|
|
<h5>Mastermind</h5>
|
|
|
|
|
<hr />
|
|
|
|
|
<p>Parties Jouées: {Player.mastermindStats.nbGames}</p>
|
|
|
|
|
<p>Best-Score: {Player.mastermindStats.bestScore}</p>
|
|
|
|
|
<p>Moyenne d'essai: {Player.mastermindStats.avgNbTry}</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="stats">
|
|
|
|
|
<h5>Enigme facile</h5>
|
|
|
|
|
<hr />
|
|
|
|
|
<p>Parties Jouées: {Player.easyEnigmaStats.nbGames}</p>
|
|
|
|
|
<p>Nombre de victoires: {Player.easyEnigmaStats.nbWins}</p>
|
|
|
|
|
<p>Ratio V/D: {Player.easyEnigmaStats.ratio}</p>
|
|
|
|
|
<p>Meilleur temps: {Player.easyEnigmaStats.bestTime}</p>
|
|
|
|
|
<p>Moyenne de temps: {Player.easyEnigmaStats.avgTime}</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="stats">
|
|
|
|
|
<h5>Enigme moyenne</h5>
|
|
|
|
|
<hr />
|
|
|
|
|
<p>Parties Jouées: {Player.mediumEnigmaStats.nbGames}</p>
|
|
|
|
|
<p>Best-Score: {Player.mediumEnigmaStats.bestScore}</p>
|
|
|
|
|
<p>Moyenne d'essai: {Player.mediumEnigmaStats.avgNbTry}</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="stats">
|
|
|
|
|
<h5>Enigme difficile</h5>
|
|
|
|
|
<hr />
|
|
|
|
|
<p>Parties Jouées: {Player.hardEnigmaStats.nbGames}</p>
|
|
|
|
|
<p>Nombre de victoires: {Player.hardEnigmaStats.nbWins}</p>
|
|
|
|
|
<p>Ratio V/D: {Player.hardEnigmaStats.ratio}</p>
|
|
|
|
|
<p>Meilleur temps: {Player.hardEnigmaStats.bestTime}</p>
|
|
|
|
|
<p>Moyenne de temps: {Player.hardEnigmaStats.avgTime}</p>
|
|
|
|
|
</div>
|
|
|
|
|
<div className="stats">
|
|
|
|
|
<h5>En ligne</h5>
|
|
|
|
|
<hr />
|
|
|
|
|
<p>Parties Jouées: {Player.onlineStats.nbGames}</p>
|
|
|
|
|
<p>Nombre de victoires: {Player.onlineStats.nbWins}</p>
|
|
|
|
|
<p>Ratio V/D: {Player.onlineStats.ratio}</p>
|
|
|
|
|
</div>
|
|
|
|
|
</Carousel>
|
|
|
|
|
</Tab.Content>
|
|
|
|
|
</Tab>
|
|
|
|
|
<Tab eventKey="daily" title="Daily">
|
|
|
|
|
<Tab.Content className={`tabsStats ${activeTab !== 'daily' ? 'hidden' : ''}`}>
|
|
|
|
|
<Carousel adaptiveHeight wrapAround slidesToShow={1} cellSpacing={10} key={carouselKey}>
|
|
|
|
|
<div className="stats">
|
|
|
|
|
<h5>Mastermind</h5>
|
|
|
|
|
<hr />
|
|
|
|
|
{dailyMastermindStats !== null ? (dailyMastermindStats.tab.length !== 0 ? dailyMastermindStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{index+1}.{stats.pseudo}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{stats.score}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
|
|
|
|
<div className="stats">
|
|
|
|
|
<h5>Enigme facile</h5>
|
|
|
|
|
<hr />
|
|
|
|
|
{dailyEasyEnigmaStats !== null ? (dailyEasyEnigmaStats.tab.length !== 0 ? dailyEasyEnigmaStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{index+1}.{stats.pseudo}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{stats.time}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
|
|
|
|
<div className="stats">
|
|
|
|
|
<h5>Enigme moyenne</h5>
|
|
|
|
|
<hr />
|
|
|
|
|
{dailyMediumEnigmaStats !== null ? (dailyMediumEnigmaStats.tab.length !== 0 ? dailyMediumEnigmaStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{index+1}.{stats.pseudo}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{stats.time}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
|
|
|
|
<div className="stats">
|
|
|
|
|
<h5>Enigme difficile</h5>
|
|
|
|
|
<hr />
|
|
|
|
|
{dailyHardEnigmaStats !== null ? (dailyHardEnigmaStats.tab.length !== 0 ? dailyHardEnigmaStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{index+1}.{stats.pseudo}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{stats.time}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
|
|
|
|
<div className="stats">
|
|
|
|
|
<h5>En ligne</h5>
|
|
|
|
|
<hr />
|
|
|
|
|
{dailyOnlineStats !== null ? (dailyOnlineStats.tab.length !== 0 ? dailyOnlineStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{index+1}.{stats.pseudo}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{stats.wins}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
|
|
|
|
</Carousel>
|
|
|
|
|
</Tab.Content>
|
|
|
|
|
</Tab>
|
|
|
|
|
<Tab eventKey="weekly" title="Weekly">
|
|
|
|
|
<Tab.Content className={`tabsStats ${activeTab !== 'weekly' ? 'hidden' : ''}`}>
|
|
|
|
|
<Carousel adaptiveHeight wrapAround slidesToShow={1} cellSpacing={10} key={carouselKey}>
|
|
|
|
|
<div className="stats">
|
|
|
|
|
<h5>Mastermind</h5>
|
|
|
|
|
<hr />
|
|
|
|
|
{weeklyMastermindStats !== null ? (weeklyMastermindStats.tab.length !== 0 ? weeklyMastermindStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{index+1}.{stats.pseudo}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{stats.score}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
|
|
|
|
<div className="stats">
|
|
|
|
|
<h5>Enigme facile</h5>
|
|
|
|
|
<hr />
|
|
|
|
|
{weeklyEasyEnigmaStats !== null ? (weeklyEasyEnigmaStats.tab.length !== 0 ? weeklyEasyEnigmaStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{index+1}.{stats.pseudo}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{stats.time}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
|
|
|
|
<div className="stats">
|
|
|
|
|
<h5>Enigme moyenne</h5>
|
|
|
|
|
<hr />
|
|
|
|
|
{weeklyMediumEnigmaStats !== null ? (weeklyMediumEnigmaStats.tab.length !== 0 ? weeklyMediumEnigmaStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{index+1}.{stats.pseudo}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{stats.time}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
|
|
|
|
<div className="stats">
|
|
|
|
|
<h5>Enigme difficile</h5>
|
|
|
|
|
<hr />
|
|
|
|
|
{weeklyHardEnigmaStats !== null ? (weeklyHardEnigmaStats.tab.length !== 0 ? weeklyHardEnigmaStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{index+1}.{stats.pseudo}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{stats.time}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
|
|
|
|
<div className="stats">
|
|
|
|
|
<h5>En ligne</h5>
|
|
|
|
|
<hr />
|
|
|
|
|
{weeklyOnlineStats !== null ? (weeklyOnlineStats.tab.length !== 0 ? weeklyOnlineStats.tab.map((stats: any, index: number) => (
|
|
|
|
|
<>
|
|
|
|
|
<Row>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{index+1}.{stats.pseudo}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
<Col>
|
|
|
|
|
<p>{stats.wins}</p>
|
|
|
|
|
</Col>
|
|
|
|
|
</Row>
|
|
|
|
|
</>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)) : (
|
|
|
|
|
<p className='text-warning'>Nothing for the moment</p>
|
|
|
|
|
)}
|
|
|
|
|
</div>
|
|
|
|
|
</Carousel>
|
|
|
|
|
</Tab.Content>
|
|
|
|
|
</Tab>
|
|
|
|
|
</Tabs>
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|