import React, { useState, useEffect } from 'react'; import Switch from "react-switch"; /* Style */ import "./InGame.css" import {useTheme} from '../Style/ThemeContext' /* Component */ import GraphContainer from '../Components/GraphContainer'; import ChoiceBar from '../Components/ChoiceBar'; import ButtonImgNav from '../Components/ButtonImgNav'; import PersonStatus from '../Components/PersonStatus'; import PlayerList from '../Components/PlayerList'; import TurnBar from '../Components/TurnBar'; /* Icon */ import Leave from "../res/icon/leave.png"; import Param from "../res/icon/param.png"; import Replay from "../res/icon/replay.png"; import Info from "../res/icon/infoGreen.png"; import Check from "../res/icon/checkboxGreen.png"; import Alpha from "../res/GreekLetters/alphaW.png"; /* nav */ import { Link } from 'react-router-dom'; /* Boostrap */ import Button from 'react-bootstrap/Button'; import Offcanvas from 'react-bootstrap/Offcanvas'; /* Model */ import Stub from '../model/Stub'; import { HiLanguage } from 'react-icons/hi2'; import { Nav, NavDropdown } from 'react-bootstrap'; import { FormattedMessage } from 'react-intl'; import Color from '../model/Color'; import { useGame } from '../Contexts/GameContext'; //@ts-ignore const InGame = ({locale, changeLocale}) => { const theme = useTheme(); const params = new URLSearchParams(window.location.search); //* Gestion solo let IsSolo: boolean = true const solotmp = params.get('solo'); if (solotmp == "false"){ IsSolo=false } //* Historique const [history, setHistory] = useState([]); // Fonction pour ajouter un élément à l'historique const addToHistory = (message: string) => { setHistory(prevHistory => [...prevHistory, message]); }; useEffect(() => { const historyContainer = document.getElementById('history-container'); if (historyContainer) { historyContainer.scrollTop = historyContainer.scrollHeight; } }, [history]); const [showChoiceBar, setShowChoiceBar] = useState(false); const [showTurnBar, setShowTurnBar] = useState(false); const [turnBarText, setTurnBarText] = useState(""); const handleNodeClick = (shouldShowChoiceBar: boolean) => { setShowChoiceBar(shouldShowChoiceBar); }; const handleShowTurnBar = (shouldShowTurnBar: boolean) => { setShowTurnBar(shouldShowTurnBar); }; const handleTurnBarTextChange = (newTurnBarText: string) =>{ setTurnBarText(newTurnBarText) } /* offcanvas */ //? faire une fonction pour close et show en fonction de l'etat du canva ? //? comment faire pour eviter la recopie de tout le code a chaque canvas boostrap ? const [show, setShow] = useState(false); const handleClose = () => setShow(false); const handleShow = () => setShow(true); const [showP, setShowP] = useState(false); const handleCloseP = () => setShowP(false); const handleShowP = () => setShowP(true); const [showS, setShowS] = useState(false); const handleCloseS = () => setShowS(false); const handleShowS = () => setShowS(true); const [cptTour, setcptTour] = useState(0); //@ts-ignore const changecptTour = (newcptTour) => { setcptTour(newcptTour); }; const handleChange = () => { if (show){ handleClose() } else { handleShow() } }; const handleChangeP = () => { if (showP){ handleCloseP() } else { handleShowP() } }; const handleChangeS = () => { if (showS){ handleCloseS() } else { handleShowS() } }; /* Windows open */ //@ts-ignore const openInNewTab = (url) => { //! avec url ==> dangereux window.open(url); }; const [SwitchEnabled, setSwitchEnabled] = useState(false) const indices = Stub.GenerateIndice() const { indice, players } = useGame(); return (
{showTurnBar && }
{IsSolo ? (
Coups : {cptTour}
) : (
) }
{history.map((item, index) => (
{item}
))}
{/* */}
Joueurs

Il y a {players.length} joueurs

{/* affichage d'une liste responsive dynamic */} {/*
*/}
Indice {/* Possède les cheveux noir ou joue au basket */} {indice?.ToString(locale)} { //* canva pour les paramètres } param Paramètres
{showChoiceBar && }
{/*
{/* tmp
*/}
); }; export default InGame;