diff --git a/FrontendV2/src/components/Header.tsx b/FrontendV2/src/components/Header.tsx
index 10789f2..bc3f8ee 100644
--- a/FrontendV2/src/components/Header.tsx
+++ b/FrontendV2/src/components/Header.tsx
@@ -8,6 +8,10 @@ import {
CloseButton,
Dialog,
Portal,
+ HStack,
+ IconButton,
+ Menu,
+ Box,
} from "@chakra-ui/react";
import { PasswordInput } from "@/components/ui/password-input";
import Cookies from "js-cookie";
@@ -21,6 +25,7 @@ import {
LifeBuoy,
LogOut,
CalendarPlus,
+ MoreVertical,
} from "lucide-react";
import { useUserContext } from "@/states/Context";
import { useState } from "react";
@@ -33,7 +38,6 @@ const API_BASE =
export const Header = () => {
const navigate = useNavigate();
-
const userData = useUserContext();
// Error handling states
@@ -49,6 +53,9 @@ export const Header = () => {
const [, setTriggerLogout] = useAtom(triggerLogoutAtom);
const [, setIsLoggedIn] = useAtom(setIsLoggedInAtom);
+ // Dialog control
+ const [isPwOpen, setPwOpen] = useState(false);
+
const changePassword = async () => {
if (newPassword !== confirmPassword) {
setMsgTitle("Passwortänderung fehlgeschlagen");
@@ -79,82 +86,262 @@ export const Header = () => {
setMsgDescription("Ihr Passwort wurde erfolgreich geändert");
setMsgStatus("success");
setIsMsg(true);
+
+ setOldPassword("");
+ setNewPassword("");
+ setConfirmPassword("");
+ };
+
+ const username = userData?.username
+ ? userData.username[0].toUpperCase() + userData.username.slice(1)
+ : "User";
+
+ const logout = () => {
+ Cookies.remove("token");
+ setIsLoggedIn(false);
+ setTriggerLogout(true);
};
return (
-
+
+ {/* Mobile: Drei-Punkte-Button, vertikal zentriert im Header */}
+
+
+
+
+
+
+
+
+
+ navigate("/", { replace: true })}
+ children={
+
+
+ Ausleihe erstellen
+
+ }
+ />
+ navigate("/my-loans", { replace: true })}
+ children={
+
+
+ Meine Ausleihen
+
+ }
+ />
+ setPwOpen(true)}
+ children={
+
+
+ Passwort ändern
+
+ }
+ />
+
+ window.open(
+ "https://git.the1s.de/Matthias-Claudius-Schule/borrow-system/wiki",
+ "_blank",
+ "noopener,noreferrer"
+ )
+ }
+ children={
+
+
+ Hilfe
+
+ }
+ />
+
+ window.open(
+ "https://git.the1s.de/Matthias-Claudius-Schule/borrow-system",
+ "_blank",
+ "noopener,noreferrer"
+ )
+ }
+ children={
+
+
+ Source Code
+
+ }
+ />
+
+
+
+ Logout
+
+ }
+ />
+
+
+
+
+
-
-
- Home
-
-
+ {/* Left: Title + user info */}
+
+ {/* Titelzeile ohne Mobile-Menu (wurde nach oben verlegt) */}
+
+
+ Home
+
+
+
+
- Willkommen zurück,{" "}
- {userData.username.replace(
- /^./,
- userData.username[0].toUpperCase()
- )}
- !
+ Willkommen zurück, {username}!
- Rolle: {userData.role}
+ Rolle: {userData?.role ?? "—"}
-
+
-
-
-
-
-
-
-
-
-
-
- Passwort ändern
-
-
+
+ {/* Passwort-Dialog (kontrolliert) */}
+ setPwOpen(e.open)}>
+
+
+
+
+
+ Passwort ändern
+
+
+
+
+
{isMsg && (
{
description={msgDescription}
/>
)}
-
- Cancel
-
- Save
-
-
-
-
-
-
-
-
-
-
-
- Hilfe
-
-
-
-
-
- Source Code
-
-
- {
- Cookies.remove("token");
- setIsLoggedIn(false);
- setTriggerLogout(true);
- }}
- variant="solid"
- size="sm"
- className="self-start md:self-auto"
- >
- Logout
-
-
+
+
+ Abbrechen
+
+
+ Speichern
+
+
+
+
+
+
+
+
+
+
+
+
);
};
diff --git a/FrontendV2/src/pages/HomePage.tsx b/FrontendV2/src/pages/HomePage.tsx
index 73947ab..db5a20b 100644
--- a/FrontendV2/src/pages/HomePage.tsx
+++ b/FrontendV2/src/pages/HomePage.tsx
@@ -110,7 +110,7 @@ export const HomePage = () => {
)}
{borrowableItems.length > 0 && (
-
+