correct navbar

This commit is contained in:
2024-05-07 13:15:21 +02:00
parent 135ab48886
commit 83291c246b
11 changed files with 334 additions and 67 deletions

View File

@@ -1,55 +1,85 @@
import React, { useState, useEffect } from "react";
import { HomeOutlined } from '@ant-design/icons-svg';
import { Menu } from "antd";
import { HomeOutlined } from "@ant-design/icons"
import { Home } from "../../pages";
import { getRoom } from "../../api/room";
function getItem(label, key, type, icon, children) {
return {
key: String(key),
icon,
children,
label,
type,
};
import { isLoggedIn } from "../../api/authentication"
import { Test } from "../../pages/test";
import { Link } from "react-router-dom";
function getItem(key, label) {
//return {
// key: String(key),
// icon,
// children,
// label,
// link,
//};
var item = <Menu.Item key={key}>
<Link to="/test">{label}</Link>
</Menu.Item >
return item
}
const { SubMenu } = Menu;
// Component
const Navbar = () => {
//Hook calls
const [rooms, setRooms] = useState([]);
useEffect(() => {
if (true) {
getRoom().then((result) => {
setRooms(result);
});
}
}, []);
useEffect(() => {
console.log("NAVBAR EFFECT")
isLoggedIn().then((user) => {
if (user !== "Unauthorized") {
getRoom().then((result) => {
setRooms(result);
})
}
})
}, []);
const roomItems = rooms.map((room, index) => (
getItem(room.name, `sub${index}`, <Home />)
console.log(index),
getItem(`sub${index}`, room.name)
));
const items = [
getItem("Menu principal", "1", <Home />),
getItem("Vue d'ensemble", "2", <Home />),
{
key: "3",
label: "Chambres",
icon: "",
children: roomItems, // Utilisation des <20>l<EFBFBD>ments de menu des chambres
},
<Menu.Item key="0">
<Link to="/">Menu Principal</Link>
</Menu.Item>,
<Menu.Item key="1" >
<Link to="/home">Home</Link>
</Menu.Item>,
<Menu.Item key="2" >
<Link to="/test">Test</Link>
</Menu.Item>,
<SubMenu key="3" title="Chambres">
{roomItems}
</SubMenu>
];
// Rendu du composant Navbar
return (
<Menu
defaultSelectedKeys={["1"]}
defaultOpenKeys={["sub1"]}
theme="dark"
mode="inline"
items={items}
/>
);
try {
return (
<Menu
defaultSelectedKeys={["1"]}
defaultOpenKeys={["sub1"]}
theme="dark"
mode="inline"
>
{items}
</Menu>
);
} catch (error) {
console.log(error.stack)
}
};
export default Navbar;