summaryrefslogtreecommitdiff
path: root/app/lib/camera/component/hedear.tsx
diff options
context:
space:
mode:
authorIT Fixcomart <it@fixcomart.co.id>2025-09-20 02:27:54 +0000
committerIT Fixcomart <it@fixcomart.co.id>2025-09-20 02:27:54 +0000
commit557cadbde033fc67edc2f916cc5bfc2aac25b867 (patch)
treed1b8fac281e9d50c9a08e8d157e78c07714bca6b /app/lib/camera/component/hedear.tsx
parent84d3b0070c5460f325a0189e4d50a6f74053bec1 (diff)
parent5c3d6cfd6f68b6eb7192aba47463bd0541bfbf48 (diff)
Merged in add_role (pull request #1)
Add role
Diffstat (limited to 'app/lib/camera/component/hedear.tsx')
-rw-r--r--app/lib/camera/component/hedear.tsx37
1 files changed, 27 insertions, 10 deletions
diff --git a/app/lib/camera/component/hedear.tsx b/app/lib/camera/component/hedear.tsx
index 2a8bfc6..81f5d01 100644
--- a/app/lib/camera/component/hedear.tsx
+++ b/app/lib/camera/component/hedear.tsx
@@ -1,36 +1,53 @@
// components/Header.tsx
+"use client";
+
import Image from "next/image";
import { deleteAuth, getAuth } from "../../api/auth";
import { Button } from "@mui/material";
import { useRouter } from "next/navigation";
+import { useEffect, useState } from "react";
export default function Header() {
- const auth = getAuth();
- const route = useRouter();
+ const router = useRouter();
+ const [mounted, setMounted] = useState(false);
+ const [auth, setAuth] = useState<any>(null);
+
+ useEffect(() => {
+ setMounted(true);
+ try {
+ setAuth(getAuth());
+ } catch {
+ setAuth(null);
+ }
+ }, []);
- const handleSigOut = () => {
+ const handleSignOut = () => {
deleteAuth();
- route.push('/login');
+ router.push("/login");
};
+
return (
<nav className="fixed top-0 left-0 w-full bg-white border-b-2 border-red-500 py-4 px-4 sm:px-96 z-50 shadow-md">
<div className="flex justify-between items-center">
<div className="flex items-center">
<Image
- src="/images/indoteknik-logo.png" // Ganti dengan path logo Anda
+ src="/images/indoteknik-logo.png"
alt="Logo"
width={120}
height={60}
className="rounded-full"
+ priority
/>
</div>
- {auth && (
- <div>
- <Button size="small" onClick={() => handleSigOut()}>
+ <div>
+ {mounted && auth ? (
+ <Button size="small" onClick={handleSignOut}>
Logout
</Button>
- </div>
- )}
+ ) : (
+ <span className="inline-block h-8 w-16" aria-hidden />
+ )}
+ </div>
</div>
</nav>
);