From 84248d8eb56d2ca6a823fb4d02bf103f870598cb Mon Sep 17 00:00:00 2001 From: Eliott-B Date: Fri, 20 Dec 2024 10:18:57 +0100 Subject: [PATCH 1/8] Add skeleton page --- front-js/src/app/modules/vlsm/page.tsx | 190 +++++++++---------------- 1 file changed, 68 insertions(+), 122 deletions(-) diff --git a/front-js/src/app/modules/vlsm/page.tsx b/front-js/src/app/modules/vlsm/page.tsx index cd10bb6..9a00f24 100644 --- a/front-js/src/app/modules/vlsm/page.tsx +++ b/front-js/src/app/modules/vlsm/page.tsx @@ -4,141 +4,87 @@ import Layout from "@/components/Layout"; import Header from "@/components/Header"; import Title from "@/components/Title"; import Box from "@/components/Box"; -import Text from "@/components/Text"; import { useRouter } from "next/navigation"; import { useEffect, useState } from "react"; import Cookies from "js-cookie"; -import { Spacer } from "@nextui-org/spacer"; -import Space from "@/components/Space"; import axios from "@/axiosConfig"; -import Button from "@/components/Button"; -import Input from "@/components/Input"; +import { Tabs, Tab } from "@mui/material"; +import Cours from "./Cours"; +import VlsmSandbox from "./VlsmSandbox"; export default function VLSM() { - const router = useRouter(); - - const [, setHasAccessToken] = useState(false); + const router = useRouter(); - useEffect(() => { - const checkTokens = async () => { - const token = Cookies.get("access_token"); - const refresh = Cookies.get("refresh_token"); - if (!token && refresh) { - try { - const response = await axios.post("/auth/refresh", { - refresh_token: refresh, - }); - const data = response.data; - if (response.status === 200) { - Cookies.set("access_token", data.access_token); - Cookies.set("refresh_token", refresh); - } - } catch { - Cookies.remove("access_token"); - Cookies.remove("refresh_token"); - } - } - setHasAccessToken(!!token); - - if (!token && !refresh) { - router.push("/"); - } - }; + const [, setHasAccessToken] = useState(false); - checkTokens(); - }, [router]); - - const [ipv4, setIPv4] = useState(""); - const [subnet, setSubnet] = useState(""); - const [res, setRes] = useState(""); - - const handleVLSM = async (e: { preventDefault: () => void }) => { - e.preventDefault(); + useEffect(() => { + const checkTokens = async () => { + const token = Cookies.get("access_token"); + const refresh = Cookies.get("refresh_token"); + if (!token && refresh) { try { - const response = await axios.get("/ipv4/vlsm/" + ipv4 + "/" + subnet, { - headers: { - Authorization: `Bearer ${Cookies.get("access_token")}`, - }, + const response = await axios.post("/auth/refresh", { + refresh_token: refresh, }); const data = response.data; if (response.status === 200) { - console.log(data); - setRes(data.ipv6); + Cookies.set("access_token", data.access_token); + Cookies.set("refresh_token", refresh); } - } catch (error: unknown) { + } catch { + Cookies.remove("access_token"); + Cookies.remove("refresh_token"); } - }; + } + setHasAccessToken(!!token); + + if (!token && !refresh) { + router.push("/"); + } + }; + + checkTokens(); + }, [router]); + + const [activeTab, setActiveTab] = useState("cours"); + + const handleTabChange = (tab: string) => { + setActiveTab(tab); + }; + + return ( + + +
router.push(`/${tab.toLowerCase()}`)} + onClickLogout={() => router.push("/auth/logout")} + onClickLogo={() => router.push("/")} + /> + + + + VLSM + + + + handleTabChange(tab)} + centered + > + + + - return ( - - -
router.push(`/${tab.toLowerCase()}`)} - onClickLogout={() => router.push("/auth/logout")} - onClickLogo={() => router.push("/")} - /> - - - - VLSM - - -
- Introduction - - - ... - -
- - Exercices - - ??? - -
- setIPv4(e.target.value)} - required - label="Adresse IPv4" - /> - setSubnet(e.target.value)} - required - label="Sous-réseau" - /> -