Merge branch 'master' of gitlab.prodcontest.ru:team-15/project

This commit is contained in:
ITQ
2025-03-03 18:44:37 +03:00
@@ -1,5 +1,5 @@
import { DataRush } from "@/components/ui/icons/datarush"; import { DataRush } from "@/components/ui/icons/datarush";
import { ChevronDown } from "lucide-react"; import { ChevronDown, FileText } from "lucide-react";
import { Link, useNavigate } from "react-router"; import { Link, useNavigate } from "react-router";
import { useUserStore } from "@/shared/stores/user"; import { useUserStore } from "@/shared/stores/user";
import { import {
@@ -14,6 +14,13 @@ import { removeToken } from "@/shared/token";
export const Header = () => { export const Header = () => {
const navigate = useNavigate(); const navigate = useNavigate();
const user = useUserStore((state) => state.user); const user = useUserStore((state) => state.user);
const clearUser = useUserStore((state) => state.clearUser);
const handleLogout = () => {
removeToken();
clearUser();
navigate("/login");
};
return ( return (
<header className="bg-card sticky top-0 z-30 flex h-[72px] w-full items-center justify-center px-4 sm:px-6"> <header className="bg-card sticky top-0 z-30 flex h-[72px] w-full items-center justify-center px-4 sm:px-6">
@@ -21,32 +28,39 @@ export const Header = () => {
<Link to="/"> <Link to="/">
<DataRush /> <DataRush />
</Link> </Link>
<DropdownMenu>
<DropdownMenuTrigger asChild>
<button className="flex cursor-pointer items-center gap-1 rounded-md px-2 py-1 text-left transition-opacity hover:opacity-80">
<span className="font-hse-sans text-lg font-semibold">
{user?.username}
</span>
<ChevronDown size={20} />
</button>
</DropdownMenuTrigger>
<DropdownMenuContent>
<Link to="/profile">
<DropdownMenuItem>Аккаунт</DropdownMenuItem>
</Link>
<DropdownMenuSeparator />
<DropdownMenuItem <div className="flex items-center gap-4">
variant="destructive" <Link
onClick={() => { to="/docs"
removeToken(); className="text-sm font-medium text-gray-700 hover:text-gray-900 transition-colors flex items-center gap-1"
navigate("/login"); >
}} <FileText className="h-4 w-4" />
> Обучающие материалы
Выйти </Link>
</DropdownMenuItem>
</DropdownMenuContent> <DropdownMenu>
</DropdownMenu> <DropdownMenuTrigger asChild>
<button className="flex cursor-pointer items-center gap-1 rounded-md px-2 py-1 text-left transition-opacity hover:opacity-80">
<span className="font-hse-sans text-lg font-semibold">
{user?.username}
</span>
<ChevronDown size={20} />
</button>
</DropdownMenuTrigger>
<DropdownMenuContent>
<Link to="/profile">
<DropdownMenuItem>Аккаунт</DropdownMenuItem>
</Link>
<DropdownMenuSeparator />
<DropdownMenuItem
variant="destructive"
onClick={handleLogout}
>
Выйти
</DropdownMenuItem>
</DropdownMenuContent>
</DropdownMenu>
</div>
</div> </div>
</header> </header>
); );