diff --git a/cryptide_project/package-lock.json b/cryptide_project/package-lock.json index 61d9d36..c6baca5 100644 --- a/cryptide_project/package-lock.json +++ b/cryptide_project/package-lock.json @@ -25,6 +25,7 @@ "react-intl": "^6.5.2", "react-router-dom": "^6.18.0", "react-scripts": "5.0.1", + "react-switch": "^7.0.0", "typescript": "^5.2.2", "vis-network": "^9.1.9", "web-vitals": "^2.1.4" @@ -2411,6 +2412,18 @@ "postcss-selector-parser": "^6.0.10" } }, + "node_modules/@egjs/hammerjs": { + "version": "2.0.17", + "resolved": "https://registry.npmjs.org/@egjs/hammerjs/-/hammerjs-2.0.17.tgz", + "integrity": "sha512-XQsZgjm2EcVUiZQf11UBJQfmZeEmOW8DpI1gsFeln6w0ae0ii4dMQEQ0kjl6DspdWX1aGY1/loyXnP0JS06e/A==", + "peer": true, + "dependencies": { + "@types/hammerjs": "^2.0.36" + }, + "engines": { + "node": ">=0.8.0" + } + }, "node_modules/@eslint-community/eslint-utils": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/@eslint-community/eslint-utils/-/eslint-utils-4.4.0.tgz", @@ -3997,6 +4010,25 @@ "tslib": "^2.4.0" } }, + "node_modules/@testing-library/dom": { + "version": "9.3.3", + "resolved": "https://registry.npmjs.org/@testing-library/dom/-/dom-9.3.3.tgz", + "integrity": "sha512-fB0R+fa3AUqbLHWyxXa2kGVtf1Fe1ZZFr0Zp6AIbIAzXb2mKbEXl+PCQNUOaq5lbTab5tfctfXRNsWXxa2f7Aw==", + "peer": true, + "dependencies": { + "@babel/code-frame": "^7.10.4", + "@babel/runtime": "^7.12.5", + "@types/aria-query": "^5.0.1", + "aria-query": "5.1.3", + "chalk": "^4.1.0", + "dom-accessibility-api": "^0.5.9", + "lz-string": "^1.5.0", + "pretty-format": "^27.0.2" + }, + "engines": { + "node": ">=14" + } + }, "node_modules/@testing-library/jest-dom": { "version": "5.17.0", "resolved": "https://registry.npmjs.org/@testing-library/jest-dom/-/jest-dom-5.17.0.tgz", @@ -4225,6 +4257,12 @@ "@types/node": "*" } }, + "node_modules/@types/hammerjs": { + "version": "2.0.44", + "resolved": "https://registry.npmjs.org/@types/hammerjs/-/hammerjs-2.0.44.tgz", + "integrity": "sha512-pdGBkAh4ggfXAkiwgmTdROJe3mwvLWJYm6JiaAwCtskAU0Weh+JQyyMTbhvxjxD2n8sr8PrxVwyDzmpnK4pUrQ==", + "peer": true + }, "node_modules/@types/hoist-non-react-statics": { "version": "3.3.5", "resolved": "https://registry.npmjs.org/@types/hoist-non-react-statics/-/hoist-non-react-statics-3.3.5.tgz", @@ -6189,6 +6227,12 @@ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==" }, + "node_modules/component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", + "peer": true + }, "node_modules/compressible": { "version": "2.0.18", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", @@ -11877,6 +11921,12 @@ "node": ">=4.0" } }, + "node_modules/keycharm": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/keycharm/-/keycharm-0.4.0.tgz", + "integrity": "sha512-TyQTtsabOVv3MeOpR92sIKk/br9wxS+zGj4BG7CR8YbK4jM3tyIBaF0zhzeBUMx36/Q/iQLOKKOT+3jOQtemRQ==", + "peer": true + }, "node_modules/keyv": { "version": "4.5.4", "resolved": "https://registry.npmjs.org/keyv/-/keyv-4.5.4.tgz", @@ -14702,6 +14752,18 @@ } } }, + "node_modules/react-switch": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/react-switch/-/react-switch-7.0.0.tgz", + "integrity": "sha512-KkDeW+cozZXI6knDPyUt3KBN1rmhoVYgAdCJqAh7st7tk8YE6N0iR89zjCWO8T8dUTeJGTR0KU+5CHCRMRffiA==", + "dependencies": { + "prop-types": "^15.7.2" + }, + "peerDependencies": { + "react": "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^15.3.0 || ^16.0.0 || ^17.0.0 || ^18.0.0" + } + }, "node_modules/react-transition-group": { "version": "4.4.5", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", @@ -16896,6 +16958,20 @@ "node": ">= 0.8" } }, + "node_modules/vis-data": { + "version": "7.1.8", + "resolved": "https://registry.npmjs.org/vis-data/-/vis-data-7.1.8.tgz", + "integrity": "sha512-h/cxRDVqnpqqpTBqwUbbKIpWVovOQ+h5rbFS/kio8TUH1np98Lv9bHdWZxahJlyzBaBR9KGvwGHB00jn3MjLbQ==", + "peer": true, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/visjs" + }, + "peerDependencies": { + "uuid": "^3.4.0 || ^7.0.0 || ^8.0.0 || ^9.0.0", + "vis-util": "^5.0.1" + } + }, "node_modules/vis-network": { "version": "9.1.9", "resolved": "https://registry.npmjs.org/vis-network/-/vis-network-9.1.9.tgz", @@ -16913,6 +16989,23 @@ "vis-util": "^5.0.1" } }, + "node_modules/vis-util": { + "version": "5.0.6", + "resolved": "https://registry.npmjs.org/vis-util/-/vis-util-5.0.6.tgz", + "integrity": "sha512-HyAZ+x3q6/Xh6OFPIQOGPOPgnHL9KVNvWW6+k3aTCbAG8Tq7vncgRat6oY8ywZ7j1Fq0mOfUb6fLrFvfI9nUKg==", + "peer": true, + "engines": { + "node": ">=8" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/visjs" + }, + "peerDependencies": { + "@egjs/hammerjs": "^2.0.0", + "component-emitter": "^1.3.0" + } + }, "node_modules/w3c-hr-time": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz", diff --git a/cryptide_project/package.json b/cryptide_project/package.json index 54fa6ca..68e86c1 100644 --- a/cryptide_project/package.json +++ b/cryptide_project/package.json @@ -19,6 +19,7 @@ "react-intl": "^6.5.2", "react-router-dom": "^6.18.0", "react-scripts": "5.0.1", + "react-switch": "^7.0.0", "typescript": "^5.2.2", "vis-network": "^9.1.9", "web-vitals": "^2.1.4" diff --git a/cryptide_project/src/App.tsx b/cryptide_project/src/App.tsx index 853e61e..2765a15 100644 --- a/cryptide_project/src/App.tsx +++ b/cryptide_project/src/App.tsx @@ -12,16 +12,20 @@ import Lobby from './Pages/Lobby'; import InGame from './Pages/InGame'; import EndGame from './Pages/EndGame'; +import InfoPage from './Pages/InfoPage'; /* Component */ import AppNavbar from './Components/NavBar'; /* nav */ -import { BrowserRouter, Route, Routes } from "react-router-dom"; +import { BrowserRouter, Route, Routes, useLocation } from "react-router-dom"; /* Style */ import './App.css'; +import { ThemeProvider } from './Style/ThemeContext'; +// import theme from './Style/Theme'; + /* bootstrap */ import 'bootstrap/dist/css/bootstrap.min.css'; @@ -45,6 +49,11 @@ function App() { setLocale(newLocale); }; + + //const location = useLocation(); + const hasNavbarVisible = ["/", "/login", "/signup", "/play", "/lobby", "/endgame"]//.includes(window.location.pathname); + + return ( //
//
@@ -52,20 +61,25 @@ function App() { // logo //
//
+ //@ts-ignore - - - - } /> - } /> - } /> - } /> - } /> - } /> - } /> - - + + + {/* */} + {hasNavbarVisible && } + + } /> + } /> + } /> + } /> + } /> + } /> + } /> + } /> + + + ); } diff --git a/cryptide_project/src/Components/BigButtonNav.tsx b/cryptide_project/src/Components/BigButtonNav.tsx index 6f4af20..bc8087b 100644 --- a/cryptide_project/src/Components/BigButtonNav.tsx +++ b/cryptide_project/src/Components/BigButtonNav.tsx @@ -3,11 +3,20 @@ import { Link } from 'react-router-dom'; import './ButtonImgNav.css'; import { FormattedMessage } from 'react-intl'; +import { useTheme } from '../Style/ThemeContext'; +import COLORS from '../Style/Color'; //@ts-ignore function BigButtonNav({ dest, img}) { + + const theme = useTheme(); + + // const mystyle = { + // backgroundColor: "#0064E0", + // }; + return ( - diff --git a/cryptide_project/src/Components/ButtonImgNav.css b/cryptide_project/src/Components/ButtonImgNav.css index 4f69b15..e625ce2 100644 --- a/cryptide_project/src/Components/ButtonImgNav.css +++ b/cryptide_project/src/Components/ButtonImgNav.css @@ -3,8 +3,8 @@ width: auto; height: 65px; - background-color: #85C9C2; - color: #2A4541; + /* background-color: #85C9C2; */ + /* color: #2A4541; */ border-radius: 15px; border-width: 0; @@ -20,8 +20,8 @@ width: auto; height: 100px; - background-color: #85C9C2; - color: #2A4541; + /* background-color: #85C9C2; */ + /* color: #2A4541; */ border-radius: 15px; border-width: 0; diff --git a/cryptide_project/src/Components/ButtonImgNav.tsx b/cryptide_project/src/Components/ButtonImgNav.tsx index 85c48d0..cd5b8d0 100644 --- a/cryptide_project/src/Components/ButtonImgNav.tsx +++ b/cryptide_project/src/Components/ButtonImgNav.tsx @@ -3,11 +3,14 @@ import { Link } from 'react-router-dom'; import './ButtonImgNav.css'; import { FormattedMessage } from 'react-intl'; +import { useTheme } from '../Style/ThemeContext'; + //@ts-ignore function ButtonImgNav({ dest, img, text = "" }) { + const theme = useTheme(); return ( - - diff --git a/cryptide_project/src/Components/ChoiceBar.css b/cryptide_project/src/Components/ChoiceBar.css index 94a86a2..5eedba2 100644 --- a/cryptide_project/src/Components/ChoiceBar.css +++ b/cryptide_project/src/Components/ChoiceBar.css @@ -13,10 +13,9 @@ .choice-bar-button { margin: 5px; padding: 10px; - background-color: lightseagreen; + /* background-color: lightseagreen; */ color: #fff; border: 2px solid grey; border-radius: 5px; cursor: pointer; } - \ No newline at end of file diff --git a/cryptide_project/src/Components/ChoiceBar.tsx b/cryptide_project/src/Components/ChoiceBar.tsx index baafc29..6769f62 100644 --- a/cryptide_project/src/Components/ChoiceBar.tsx +++ b/cryptide_project/src/Components/ChoiceBar.tsx @@ -1,15 +1,16 @@ import React from 'react'; import './ChoiceBar.css'; +import { useTheme } from '../Style/ThemeContext'; const ChoiceBar = () => { const players = ['Player1', 'Player2', 'Player3']; - + const theme = useTheme(); return (

Quel joueur voulez-vous interroger ?

{players.map((player, index) => ( - ))} diff --git a/cryptide_project/src/Components/GraphContainer.css b/cryptide_project/src/Components/GraphContainer.css index 90bd294..2fd8b58 100644 --- a/cryptide_project/src/Components/GraphContainer.css +++ b/cryptide_project/src/Components/GraphContainer.css @@ -1,10 +1,14 @@ #graph-container { width: 100%; - height: 75vh; + height: 100vh; + /* padding: 20px; */ + + /* border-radius: 25px; */ + box-sizing: border-box; + display: flex; flex-direction: column; align-items: center; + background-color: #f5f5f5; - padding: 20px; - box-sizing: border-box; } \ No newline at end of file diff --git a/cryptide_project/src/Components/NavBar.css b/cryptide_project/src/Components/NavBar.css index ad887b9..c1854e9 100644 --- a/cryptide_project/src/Components/NavBar.css +++ b/cryptide_project/src/Components/NavBar.css @@ -1,6 +1,6 @@ .custom-navbar{ - background-color: #85C9C2; + /* background-color: #85C9C2; */ color: #fff; text-emphasis-color: #fff; } @@ -17,7 +17,6 @@ .navbar-title-dd a { - background-color: #2A4541; color: #fff; border-radius: 15; padding: 10px 20px; /* Ajustez le rembourrage selon vos préférences */ diff --git a/cryptide_project/src/Components/NavBar.tsx b/cryptide_project/src/Components/NavBar.tsx index 3ec3eb8..d570467 100644 --- a/cryptide_project/src/Components/NavBar.tsx +++ b/cryptide_project/src/Components/NavBar.tsx @@ -17,18 +17,26 @@ import logo from '../res/img/logo2_preview_rev_1.png'; /* Components */ import './NavBar.css'; +/* Style */ +import { useTheme } from '../Style/ThemeContext'; + // @ts-ignore function AppNavbar({changeLocale}) { + const theme = useTheme(); return ( - + logo + {/*
+

Cryptide

+
by Crypteam
+
*/}