fix: added a burger menu for phones versions

This commit is contained in:
Lukian LEIZOUR 2025-04-18 18:02:23 +02:00
parent 1dc8e9c7a1
commit 63914b5b3b
2 changed files with 43 additions and 3 deletions

View file

@ -1,9 +1,12 @@
import { useState } from "react"
import { Link } from "react-router-dom" import { Link } from "react-router-dom"
import { User } from "../types" import { User } from "../types"
import "../styles/TopBar.css" import "../styles/TopBar.css"
export default function TopBar({ user }: { user: User | undefined }) { export default function TopBar({ user }: { user: User | undefined }) {
const [burgerMenuOpen, setBurgerMenuOpen] = useState(false)
return ( return (
<div className="topbar"> <div className="topbar">
<div className="topbar-left"> <div className="topbar-left">
@ -35,6 +38,27 @@ export default function TopBar({ user }: { user: User | undefined }) {
<Link to="/register">Register</Link> <Link to="/register">Register</Link>
</div> </div>
)} )}
<div className="burger-menu">
{burgerMenuOpen && (
<div className="burger-menu-content">
<Link to="/">Home</Link>
<Link to="/channels">Channels</Link>
<Link to="/users">Users</Link>
{user ? (
<Link to={`/u/${user.username}`}>{user.username}</Link>
) : (
<div>
<Link to="/login">Login</Link>
<Link to="/register">Register</Link>
</div>
)}
</div>
)}
<button onClick={() => setBurgerMenuOpen(!burgerMenuOpen)}>
{burgerMenuOpen ? "Close" : "Menu"}
</button>
</div>
</div> </div>
) )
} }

View file

@ -28,19 +28,35 @@
border-radius: 50%; border-radius: 50%;
} }
@media (max-width: 560px) { .burger-menu {
display: none;
}
.burger-menu-content {
display: flex;
flex-direction: column;
align-items: center;
gap: 10px;
}
@media (max-width: 630px) {
.topbar { .topbar {
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
} }
.topbar-left { .topbar-left {
flex-direction: column; display: none;
align-items: center;
} }
.topbar-right { .topbar-right {
display: none;
}
.burger-menu {
display: flex;
flex-direction: column; flex-direction: column;
align-items: center; align-items: center;
gap: 15px;
} }
} }