copied the code from the working repo

This commit is contained in:
2024-11-30 16:00:48 +03:00
parent f22b92869b
commit 15ac0cb9b8
148 changed files with 23342 additions and 0 deletions

View File

@@ -0,0 +1,147 @@
'use client';
import React, { useState, useEffect } from 'react';
import { Layout, Menu, Button, Drawer } from 'antd';
import { MenuOutlined } from '@ant-design/icons';
import Link from 'next/link';
import styles from './Header.module.scss';
import { useRouter, usePathname } from 'next/navigation';
import { useAuth } from '@/fsd/app/provider/AuthContext';
const { Header } = Layout;
const AppHeader: React.FC = () => {
const router = useRouter();
const pathname = usePathname();
const { isAuthenticated, logout } = useAuth();
const [currentKey, setCurrentKey] = useState('');
const [drawerOpen, setDrawerOpen] = useState(false); // Заменяем visible на open
const [isMobile, setIsMobile] = useState(false);
useEffect(() => {
if (pathname === '/create') {
setCurrentKey('1');
} else if (pathname === '/view') {
setCurrentKey('2');
} else if (pathname === '/search') {
setCurrentKey('3');
} else {
setCurrentKey('');
}
}, [pathname]);
useEffect(() => {
const handleResize = () => {
setIsMobile(window.innerWidth <= 580);
};
handleResize();
window.addEventListener('resize', handleResize);
return () => window.removeEventListener('resize', handleResize);
}, []);
const handleLogout = () => {
logout();
router.push('/login');
};
const handleLogoClick = () => {
setCurrentKey('1');
router.push('/create');
};
const showDrawer = () => {
setDrawerOpen(true);
};
const closeDrawer = () => {
setDrawerOpen(false);
};
const menuItems = [
{
key: '1',
label: (
<Link href='/create' className={styles.list_item}>
Создание вакансии
</Link>
),
},
{
key: '2',
label: (
<Link href='/view' className={styles.list_item}>
Просмотр вакансий
</Link>
),
},
{
key: '3',
label: (
<Link href='/search' className={styles.list_item}>
Поиск резюме
</Link>
),
},
];
return (
<Header className={styles.header}>
<div className={styles.logo} onClick={handleLogoClick}>
MTUCI JOBS
</div>
{isAuthenticated && (
<>
{isMobile ? (
<>
<div className={styles.burgerIcon} onClick={showDrawer}>
<MenuOutlined />
</div>
<Drawer
title='Меню'
placement='right'
onClose={closeDrawer}
open={drawerOpen} // Используем "open" вместо "visible"
>
<Menu
mode='vertical'
selectedKeys={[currentKey]}
items={menuItems} // Передаем элементы меню сюда
onClick={closeDrawer}
className={styles.menuBurger}
/>
<Button
type='primary'
onClick={handleLogout}
className={styles.logoutButtonBurger}
>
Выйти
</Button>
</Drawer>
</>
) : (
<>
<Menu
theme='dark'
mode='horizontal'
selectedKeys={[currentKey]}
items={menuItems}
className={styles.menu}
/>
<Button
type='primary'
onClick={handleLogout}
className={styles.logoutButton}
>
Выйти
</Button>
</>
)}
</>
)}
</Header>
);
};
export default AppHeader;