From 98338431b56a9c0ba65162d2cfaf5bbec5c64918 Mon Sep 17 00:00:00 2001 From: Pierre Ferreira Date: Thu, 7 Dec 2023 13:51:11 +0100 Subject: [PATCH] affichage de carte dans un modal pour le debut du tuto :zap: --- cryptide_project/src/Pages/Tutorial.tsx | 204 +++++++++--------- .../src/res/img/tuto/tuto-ava.png | Bin 0 -> 10668 bytes 2 files changed, 106 insertions(+), 98 deletions(-) create mode 100644 cryptide_project/src/res/img/tuto/tuto-ava.png diff --git a/cryptide_project/src/Pages/Tutorial.tsx b/cryptide_project/src/Pages/Tutorial.tsx index 34e6073..f25f4f9 100644 --- a/cryptide_project/src/Pages/Tutorial.tsx +++ b/cryptide_project/src/Pages/Tutorial.tsx @@ -18,19 +18,19 @@ import MGlass from "../res/icon/magnifying-glass.png"; import Reset from "../res/icon/reset.png"; import Oeye from "../res/icon/eye.png"; import Ceye from "../res/icon/hidden.png"; -import JSZip from 'jszip'; +import ava from "../res/img/tuto/tuto-ava.png"; /* nav */ import { Link, Navigate, useNavigate, useNavigationType } from 'react-router-dom'; /* Boostrap */ import Offcanvas from 'react-bootstrap/Offcanvas'; +import Modal from 'react-bootstrap/Modal'; +import Card from 'react-bootstrap/Card'; +import Button from 'react-bootstrap/Button'; /* Model */ import Stub from '../model/Stub'; -import { HiLanguage } from 'react-icons/hi2'; -import { Nav, NavDropdown, Spinner } from 'react-bootstrap'; -import { FormattedMessage } from 'react-intl'; import { useGame } from '../Contexts/GameContext'; import { socket } from '../SocketConfig'; import { Network } from 'vis-network'; @@ -39,6 +39,7 @@ import Pair from '../model/Pair'; import Indice from '../model/Indices/Indice'; import {basePath} from "../AdressSetup" import TutorialGraph from '../Components/TutorialGraph'; +import JSZip from 'jszip'; let cptNavigation = 0 @@ -268,6 +269,15 @@ const Tutorial = ({locale, changeLocale}) => { const nbPlayer = players.length; const navdeduc = 'deduc?actualId=' + actualPlayerIndex + '&nbPlayer=' + nbPlayer; + + + //* gestion demo */ + const [showM, setShowM] = useState(false); + + const handleCloseM = () => setShowM(false); + const handleShowM = () => setShowM(true); + + const [step, setStep] = useState(0); return (
{showTurnBar && } @@ -303,47 +313,10 @@ const Tutorial = ({locale, changeLocale}) => {
} -
- -
- - -
-
- -
- - - - - {/* - //? redirection impossible apparament (securité des navigateur - */} + - - - - }
-{/* - - - Joueurs -

Il y a {players.length} joueurs

-
- - - -
- */} - { !IsSolo &&
@@ -410,42 +360,100 @@ const Tutorial = ({locale, changeLocale}) => { Indice - {/* Possède les cheveux noir ou joue au basket */} {indice?.ToString(locale)} + - { - //* canva pour les paramètres - } - - - param Paramètres - - - - - - - + + + + + Tutoriel 1 + + + + {step === 0 && ( + + + + Les Personnes + + Les sommets du graphes représentent les personnes, chaque personne possède différentes caractéristiques, que ce soit leur nom, âge, sport et leur couleur de cheveux. +
+ Par exemple, ici, Nous avons Ava, qui a 40 ans, qui pratique du Basket et du Tennis, qui a les cheveux Roux et qui possède 2 voisins +
+
+
+ )} + + {step === 1 && ( + + + + Les Joueurs + + Les sommets du graphes représentent les personnes, chaque personne possède différentes caractéristiques, que ce soit leur nom, âge, sport et leur couleur de cheveux. +
+ Par exemple, ici, Nous avons Ava, qui a 40 ans, qui pratique du Basket et du Tennis, qui a les cheveux Roux et qui possède 2 voisins +
+
+
+ )} + + {step === 2 && ( + + + + L'historique + + Les sommets du graphes représentent les personnes, chaque personne possède différentes caractéristiques, que ce soit leur nom, âge, sport et leur couleur de cheveux. +
+ Par exemple, ici, Nous avons Ava, qui a 40 ans, qui pratique du Basket et du Tennis, qui a les cheveux Roux et qui possède 2 voisins +
+
+
+ )} + + {step === 3 && ( + + + + Les règle du jeu + + Ce bouton vous mène a la page d'information du jeu, avec toutes les règles du jeu, que ce soit les objectifs, les indices, le déroulement, etc... + + + + )} + + {step === 4 && ( + + + + L'indice + + Ce boutons vous permet d'afficher votre indice personnel, gradez le secret ! Il s'agit de votre meilleur atout pour gagner. + + + + )} +
+ + {/* */} + { step != 0 && ()} + + +
+
); }; diff --git a/cryptide_project/src/res/img/tuto/tuto-ava.png b/cryptide_project/src/res/img/tuto/tuto-ava.png new file mode 100644 index 0000000000000000000000000000000000000000..2ca4ec21f6b03cdf4b5488d1adc919c13cfaa53b GIT binary patch literal 10668 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 H0tfy-`Hi9& literal 0 HcmV?d00001