diff --git a/code/frontend/src/components/Header.tsx b/code/frontend/src/components/Header.tsx index 4bce7ed..1c47d0e 100644 --- a/code/frontend/src/components/Header.tsx +++ b/code/frontend/src/components/Header.tsx @@ -1,95 +1,154 @@ import "./header.css"; -import React, { useState, useRef } from "react"; -import { List, ListItem, ListItemButton, ListItemIcon, ListItemText, StyledEngineProvider, SwipeableDrawer, ThemeProvider } from '@mui/material'; -import Box from '@mui/material/Box'; -import AddAPhotoIcon from '@mui/icons-material/AddAPhoto'; -import DynamicFeedIcon from '@mui/icons-material/DynamicFeed'; -import PersonIcon from '@mui/icons-material/Person'; -import InfoIcon from '@mui/icons-material/Info'; -import LogoutIcon from '@mui/icons-material/Logout'; -import ExitToAppIcon from '@mui/icons-material/ExitToApp'; -import FollowTheSignsIcon from '@mui/icons-material/FollowTheSigns'; +import React, { useState } from "react"; +import { + List, + ListItem, + ListItemButton, + ListItemIcon, + ListItemText, + SwipeableDrawer, +} from "@mui/material"; +import Box from "@mui/material/Box"; +import AddAPhotoIcon from "@mui/icons-material/AddAPhoto"; +import DynamicFeedIcon from "@mui/icons-material/DynamicFeed"; +import PersonIcon from "@mui/icons-material/Person"; +import InfoIcon from "@mui/icons-material/Info"; +import LogoutIcon from "@mui/icons-material/Logout"; +import ExitToAppIcon from "@mui/icons-material/ExitToApp"; +import FollowTheSignsIcon from "@mui/icons-material/FollowTheSigns"; import { Link } from "react-router-dom"; import { useAuth } from "../api/Auth"; -import { ExitToApp } from "@mui/icons-material"; // TODO: Dinge so umstrukturieren, dass der State für das offene menü in Header ist und das Menü auch in Header, sodass es mit width 100% die volle breite einnehmen kann function Header() { - const [isOpen, setIsOpen] = useState(false); - const toggleMenu = () => { - setIsOpen(!isOpen); - }; - const { logout, user } = useAuth(); - const iconList = [DynamicFeedIcon, AddAPhotoIcon, PersonIcon, InfoIcon, LogoutIcon, ExitToAppIcon, FollowTheSignsIcon]; - const routerLinksList = ["/feed","/createpost","/profile","/about","/login","/register"] + const [isOpen, setIsOpen] = useState(false); + const toggleMenu = () => { + setIsOpen(!isOpen); + }; + const { logout, user } = useAuth(); + const iconList = [ + DynamicFeedIcon, + AddAPhotoIcon, + PersonIcon, + InfoIcon, + LogoutIcon, + ExitToAppIcon, + FollowTheSignsIcon, + ]; + const routerLinksList = [ + "/feed", + "/createpost", + "/profile", + "/about", + "/login", + "/register", + ]; - // TODO: Logout nur anzeigen wenn user eingeloggt ist + const DrawerList = ( + setIsOpen(false)}> + + {["Feed", "Create Post", "Profile", "About Us"].map((text, index) => ( + + + + {React.createElement(iconList[index])} + + + + + ))} + {user && ( + + + + {React.createElement(iconList[4])} + + + + + )} + {!user && ( + <> + + + + {React.createElement(iconList[5])} + + + + + + + + {React.createElement(iconList[6])} + + + + {" "} + + )} + + + ); - const DrawerList = ( - setIsOpen(false)}> - - {["Feed", "Create Post", "Profile", "About Us"].map((text, index) => ( - - - - {React.createElement(iconList[index])} - - - - - ))} - {user && - - - {React.createElement(iconList[4])} - - - - } - {!user && <> - - - {React.createElement(iconList[5])} - - - - - - - - {React.createElement(iconList[6])} - - - - } - - - - ); - - return ( - <> -
-
featherIcon
-

- Feather Feed -

-
menu
-
- setIsOpen(false)} - onOpen={() => setIsOpen(true)} - > - {DrawerList} - - - ); + return ( + <> +
+ featherIcon +

Feather Feed

+ menu +
+ setIsOpen(false)} + onOpen={() => setIsOpen(true)} + > + {DrawerList} + + + ); } - - // EXPORT VARIABLES -export default Header; \ No newline at end of file +export default Header; diff --git a/code/frontend/src/components/header.css b/code/frontend/src/components/header.css index 9967b0c..a47ef44 100644 --- a/code/frontend/src/components/header.css +++ b/code/frontend/src/components/header.css @@ -9,12 +9,11 @@ position: fixed; top: 0; left: 0; - z-index: 1000; border-radius: 0rem !important; } @media only screen and (min-width: 768px) { .base-header { - height: var(--header-height-desktop); + height: var(--header-height); } } @@ -26,20 +25,20 @@ } .header-icon-menu { cursor: pointer; + height: 45px; } .header-icon { - margin: 40px; + margin: 20px; display: flex; - width: 30px; - height: 30px; flex-direction: column; justify-content: center; align-items: center; - flex-shrink: 0; - - background-size: cover; - background-repeat: no-repeat; +} +@media only screen and (min-width: 768px) { + .header-icon { + margin: 40px; + } } .drawer-list { diff --git a/code/frontend/src/styles/sizes.css b/code/frontend/src/styles/sizes.css index 02cfb77..f0dd3e0 100644 --- a/code/frontend/src/styles/sizes.css +++ b/code/frontend/src/styles/sizes.css @@ -1,5 +1,4 @@ :root { - --header-height: 60px; - --header-height-desktop: 48px; + --header-height: 48px; --border-radius: 1rem; }