diff --git a/back/src/main.rs b/back/src/main.rs index 141544d..23d9fc0 100644 --- a/back/src/main.rs +++ b/back/src/main.rs @@ -122,6 +122,8 @@ async fn main() -> Result<(), std::io::Error> { .service(api) .service(get_article) .service(Files::new("/", "public").index_file("index.html")) + .service(Files::new("/game", "public").index_file("index.html")) + .service(Files::new("/chaos", "public").index_file("index.html")) }) .bind(("0.0.0.0", 2486))? .run() diff --git a/front/src/components/NavBar.tsx b/front/src/components/NavBar.tsx index d868b75..d6f6c87 100644 --- a/front/src/components/NavBar.tsx +++ b/front/src/components/NavBar.tsx @@ -11,9 +11,10 @@ export default function NavBar(){ Home Game Articles + Le Chaos
- +
); } \ No newline at end of file diff --git a/front/src/components/chaos/MonInput.tsx b/front/src/components/chaos/MonInput.tsx new file mode 100644 index 0000000..ae96388 --- /dev/null +++ b/front/src/components/chaos/MonInput.tsx @@ -0,0 +1,16 @@ +//import { useState } from "react"; + +interface MonInputProps { + text: string; + new_focus: () => void; + police: string; +} + +export default function MonInput({text, new_focus, police}: MonInputProps) { + + return ( +
+ +
+ ) +} \ No newline at end of file diff --git a/front/src/components/chaos/monButton.tsx b/front/src/components/chaos/monButton.tsx new file mode 100644 index 0000000..e06033f --- /dev/null +++ b/front/src/components/chaos/monButton.tsx @@ -0,0 +1,26 @@ + +interface MonButtonProps { + letter: string; + changetext: (arg0: string) => void; + sizeFrontw: number; + sizeFronth: number; + rdmFront: () => void; + color: string; +} + + +export default function MonButton({letter,changetext,sizeFrontw,sizeFronth,rdmFront,color}: MonButtonProps) { + + + + function clicked() {rdmFront(); + changetext(letter)} + + + + return ( +
+ +
+ ) +} \ No newline at end of file diff --git a/front/src/components/chaos/style.css b/front/src/components/chaos/style.css new file mode 100644 index 0000000..f0fbe2d --- /dev/null +++ b/front/src/components/chaos/style.css @@ -0,0 +1,12 @@ + +#keys { + display: grid; + grid-template-columns: auto auto 1fr; + + +} + +.key { + font-size: 10px; + border: solid black; +} \ No newline at end of file diff --git a/front/src/main.tsx b/front/src/main.tsx index d4ac604..a9d0f99 100644 --- a/front/src/main.tsx +++ b/front/src/main.tsx @@ -2,6 +2,8 @@ import { BrowserRouter, Route, Routes } from "react-router"; import { createRoot } from 'react-dom/client' import MainPage from "./pages/MainPage.tsx"; import GamePage from "./pages/GamePage.tsx"; +import ChaosPage from "./pages/ChaosPage.tsx"; + import ArticlePage from "./pages/ArticlePage.tsx"; import './index.css' @@ -12,6 +14,7 @@ createRoot(document.getElementById('root')!).render( } /> // Game page } /> + } /> // Article page (dynamic route) } /> // Not found diff --git a/front/src/pages/ChaosPage.tsx b/front/src/pages/ChaosPage.tsx new file mode 100644 index 0000000..9efc84b --- /dev/null +++ b/front/src/pages/ChaosPage.tsx @@ -0,0 +1,86 @@ +import MonButton from "../components/chaos/monButton"; +import MonInput from "../components/chaos/MonInput"; +import "../components/chaos/style.css" +import { useState } from "react"; + + +export default function ChaosPage(){ + + const [array_letter,setArray_letter]=useState(["a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z"," ","!"]); + + const [sizeFrontw,setSizeFrontw] = useState(16) + const [sizeFronth,setSizeFronth] = useState(20) + const [color,setColor] = useState("#ffffff") + + function randomFront(){setSizeFronth(Math.floor(Math.random() * (1000))); + setSizeFrontw(Math.floor(Math.random() * (1000))); + setColor(`#${Math.floor(Math.random() * 16777215).toString(16)}`)} + + function shuffleArray(arr: string[]) { + for (let i = arr.length - 1; i > 0; i--) { + const j = Math.floor(Math.random() * (i + 1)); // Choisir un index aléatoire + [arr[i], arr[j]] = [arr[j], arr[i]]; // Échanger les éléments + } + return arr; + } + + + // console.log(shuffledArray); // Affiche un tableau mélangé + + + const [entry1,setEntry1] = useState("") + function E1(ent:string) { + setEntry1(entry1+ent); + } + const [connarddefocus,setFocus] = useState(()=>E1) + + const [entry2,setEntry2] = useState("") + function E2(ent:string) { + setEntry2(entry2+ent); + } + + function changeFocus(E: (ent:string)=>void) { + setArray_letter(shuffleArray(array_letter)); + setFocus(()=>E); + } + + const [entry3,setEntry3] = useState("") + function E3(ent:string) { + setEntry3(entry3+ent); + } + + const [tel,setTel] = useState(0) + + + return( +
+

Chaos Page

+

Quel est votre nom ?

+ changeFocus(E1)} police={""}/> +

Quel adjectif désigne le mieux Xi Junpin ?

+ changeFocus(E2)} police={""}/> +

Combien font 1+1 ?

+ changeFocus(E3)} police={"Wingdings"}/> +
+ {array_letter.map((letter) => {return })} +
+
+ Formulaire super mega bien + + + + + + + setTel(parseInt(e.target.value))}/> + +
+
+ ) +} \ No newline at end of file