summaryrefslogtreecommitdiff
path: root/app
diff options
context:
space:
mode:
authorMiqdad <ahmadmiqdad27@gmail.com>2025-09-18 10:29:10 +0700
committerMiqdad <ahmadmiqdad27@gmail.com>2025-09-18 10:29:10 +0700
commit856a9b97bf2c6840b01443b7efb1be6cea8e663e (patch)
tree1a0f001de378aeebf0c044b27838daed654f9ae4 /app
parentfe7fb860fc332247e53d8d193fd4c10c09503704 (diff)
<Miqdad> fix hydration issue
Diffstat (limited to 'app')
-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>
);