Skip to content

Commit bc32ae2

Browse files
committed
Menu mobile
1 parent 0161dec commit bc32ae2

File tree

3 files changed

+27
-5
lines changed

3 files changed

+27
-5
lines changed

app/components/header/_children/menu.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import { useMenuStore } from '@/store/menu';
55
import Link from 'next/link';
66
import { useCallback } from 'react';
77

8-
const Menu = ({ className = 'flex-col md:flex-row' }) => {
8+
const Menu = ({ className }) => {
99
const { active, setActive } = useMenuStore();
1010
const { translate } = useTranslate();
1111

@@ -19,7 +19,7 @@ const Menu = ({ className = 'flex-col md:flex-row' }) => {
1919
);
2020

2121
return (
22-
<ul className={`flex gap-4 ${className}`}>
22+
<ul className={`gap-4 ${className}`}>
2323
<li className={activeClass('about')}>
2424
<Link href="#about" onClick={() => setActive('about')}>
2525
{translate('about')}

app/components/header/index.js

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,36 @@
11
'use client';
22

3+
import { useCallback, useState } from 'react';
34
import BtnLanguage from './_children/btn-language';
45
import BtnTheme from './_children/btn-theme';
56
import Menu from './_children/menu';
7+
import { IconMenu } from '../icons';
68

79
const Header = () => {
10+
const [openMenu, setOpenMenu] = useState(false);
11+
const [classMenu, setClassMenu] = useState('hidden');
12+
13+
const handleMenu = useCallback(() => {
14+
setOpenMenu(!openMenu);
15+
if (openMenu) {
16+
setClassMenu(
17+
'flex transition-all absolute top-14 bg-gray-200 dark:bg-neutral-800 p-4 rounded-lg z-50'
18+
);
19+
} else {
20+
setClassMenu('hidden');
21+
}
22+
}, [openMenu, setClassMenu]);
23+
824
return (
925
<header className="flex items-center justify-between flex-row w-full py-4 border-b border-neutral-100 dark:border-neutral-800">
10-
<nav className="w-8/12">
11-
<Menu />
26+
<nav className="w-8/12 relative">
27+
<button
28+
className="bg-gray-200 rounded-lg dark:bg-neutral-800 text-sm px-1.5 py-1.5 hover:ring-2 ring-gray-300 transition-all block lg:hidden"
29+
onClick={handleMenu}
30+
>
31+
<IconMenu size={20} />
32+
</button>
33+
<Menu className={`${classMenu} lg:flex flex-col md:flex-row`} />
1234
</nav>
1335
<div className="btn-actions flex flex-row justify-end gap-4 w-4/12">
1436
<BtnLanguage />

app/components/sidebar.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ const Sidebar = () => {
3434
</button>
3535
{openMenu && (
3636
<div className="absolute top-14 bg-gray-200 dark:bg-neutral-800 p-4 rounded-lg">
37-
<Menu className="flex-col" />
37+
<Menu className="flex flex-col" />
3838
</div>
3939
)}
4040
</div>

0 commit comments

Comments
 (0)