import React, { useEffect, useState } from 'react'; import { useTheme } from '../Style/ThemeContext'; import Player from '../model/Player'; import { Link } from 'react-router-dom'; import { useNavigate } from 'react-router-dom'; import Modal from 'react-bootstrap/Modal'; import Offcanvas from 'react-bootstrap/Offcanvas'; import Button from 'react-bootstrap/Button'; import { socket } from '../SocketConfig'; import Tooltip from 'react-bootstrap/esm/Tooltip'; import OverlayTrigger from 'react-bootstrap/esm/OverlayTrigger'; import {basePath} from "../AdressSetup" interface LobbyContainerProps { roomNum : string HeadPlayer : Player nbPlayer : number setFirst: (first: boolean) => void started : boolean //? mettre un "nbplayermax" si le nombre de joueur max peut etre fixé ? } const LobbyContainer: React.FC = ({roomNum, HeadPlayer, nbPlayer, setFirst, started}) => { const theme=useTheme(); const navigate = useNavigate(); const dest = 'lobby?room=' + roomNum; //* Modal const [showFull, setShowFull] = useState(false); const [showStart, setShowStart] = useState(false); const handleClose = () => { setShowFull(false) setShowStart(false) }; const handleShowFull = () => setShowFull(true); const handleShowStart = () => setShowStart(true); const handleContainerClick = () => { if (showFull || showStart){ handleClose() } else{ if (nbPlayer < 6 && !started) { socket.off("request lobbies") setFirst(true) navigate(`${basePath}/${dest}`); } else if(started){ handleShowStart() } else { handleShowFull() } } }; //* popup pour salle pleine //@ts-ignore const renderTooltipFull = (props) => ( Salle Pleine ! ); //* popup pour partie déjà lancé //@ts-ignore const renderTooltipInGame = (props) => ( En Jeu ! ); //* autre //@ts-ignore const renderTooltip = (props) => ( Rejoindre le lobby ! ); //let IsInGame = true; let stylefull; let colorfull; let actualRender = renderTooltip; let bgcol = 'white'; if (nbPlayer >= 6) { stylefull = "darkred" colorfull = "darkred" actualRender = renderTooltipFull } else { stylefull = "whitesmoke" colorfull = "black" } if(started){ bgcol = 'lightgrey' //! le hover ne marche plus actualRender = renderTooltipInGame } return(
Room : {roomNum}

{HeadPlayer.pseudo}

{nbPlayer}/6

{/* Modals */} Salle pleine La salle est pleine, il est impossible d'y aller pour le moment ! La partie a déjà commencée La partie a déjà commencée, il est impossible d'y aller pour le moment !
); } export default LobbyContainer;