Newer
Older
"use client";
import Link from "next/link";
import { useSession, signOut } from "next-auth/react";
import { useEffect, useState } from "react";
import { usePathname } from "next/navigation";
export default function Header() {
const { data: session } = useSession();
const active =
pathname === "/"
? "home"
: pathname?.startsWith("/annonces/rent")
? "rent"
: pathname?.startsWith("/annonces/buy")
? "buy"
: null;
const firstName = session?.user?.firstName || "";
const lastName = session?.user?.lastName || "";
<header className="bg-primary relative z-50 flex-col items-center pr-0 pb-4 md:flex md:flex-row md:pr-6 md:pb-0">
<div className="tw-flex border-secondary font-oswald mr-0 flex h-full w-full items-center justify-center border-b-5 pr-2 pl-6 md:mr-auto md:w-fit">
<div className="flex items-center space-x-3">
<svg
preserveAspectRatio="xMidYMid meet"
data-bbox="7.767 51.693 183.51 85.375"
viewBox="7.767 51.693 183.51 85.375"
height="50"
width="50"
xmlns="http://www.w3.org/2000/svg"
data-type="color"
role="img"
aria-label="Page d'accueil">
<g>
<path
fill="#ffffff"
d="M178.752 121.175h-8V92.854l-42.739-31.219L99.51 82.877H29.201v38.298h-8V74.877h75.655l31.109-23.184 50.787 37.099v32.383z"
data-color="1"></path>
<path fill="#ffffff" d="M191.277 129.068v8H7.767v-8h183.51z" data-color="1"></path>
<path fill="#ffffff" d="M131.794 91.26v15.298h-8V91.26h8z" data-color="1"></path>
<path fill="#ffffff" d="M75.724 91.26v15.298h-8V91.26h8z" data-color="1"></path>
<path fill="#ffffff" d="M51.213 91.26v15.298h-8V91.26h8z" data-color="1"></path>
</g>
</svg>
<Link href="/" className="text-2xl font-bold text-white">
Immo<span className="text-gray-400">Next</span>
</Link>
</div>
</div>
<nav>
<ul className="mt-4 flex items-center justify-center space-x-4 font-(--font-roboto-thin) text-white md:mt-0">
<Link href="/" className={`${active === "home" ? "text-secondary" : ""} `}>
Accueil
</Link>
</li>
<li>
<Link
className={`hover:text-secondary transition-colors duration-200 ease-in-out hover:cursor-pointer ${
active === "rent" ? "text-secondary" : ""
Locations
</Link>
</li>
<li>
<Link
className={`hover:text-secondary transition-colors duration-200 ease-in-out hover:cursor-pointer ${
active === "buy" ? "text-secondary" : ""
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
Achats
</Link>
</li>
{session ? (
<>
<li className="group relative text-white sm:block">
<div className="cursor-pointer">
{firstName} {lastName}
</div>
<div className="pointer-events-none absolute inset-0 top-full h-2 w-full group-hover:pointer-events-auto"></div>
<div className="bg-primary invisible absolute top-full right-0 mt-2 w-full translate-y-1 rounded-md opacity-0 shadow-lg transition-all duration-150 ease-out group-hover:visible group-hover:translate-y-0 group-hover:opacity-100">
<button
onClick={() => signOut()}
className="hover:text-secondary w-full px-4 py-2 text-left text-white transition-colors duration-200 ease-in-out hover:cursor-pointer">
Déconnexion
</button>
</div>
</li>
<li></li>
</>
) : (
<>
<li>
<Link
href="/login"
className="hover:text-secondary transition-colors duration-200 ease-in-out hover:cursor-pointer">
Se connecter
</Link>
</li>
<li>
<Link
href="/register"
className="hover:text-secondary transition-colors duration-200 ease-in-out hover:cursor-pointer">
S'inscrire
</Link>
</li>
</>
)}
</ul>
</nav>
</header>
);
}