mirror of
https://github.com/vercel/commerce.git
synced 2025-07-05 12:41:21 +00:00
Working menu button with open and closed state.
This commit is contained in:
parent
f5cb30e4ff
commit
dc365b9232
@ -23,3 +23,11 @@
|
|||||||
.menuButton::before {
|
.menuButton::before {
|
||||||
transform: translateY(-5px);
|
transform: translateY(-5px);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.menuButton.isOpen::before {
|
||||||
|
transform: rotate(45deg);
|
||||||
|
}
|
||||||
|
|
||||||
|
.menuButton.isOpen::after {
|
||||||
|
transform: rotate(-45deg);
|
||||||
|
}
|
||||||
|
@ -1,6 +1,7 @@
|
|||||||
import { FC } from 'react'
|
import { FC } from 'react'
|
||||||
import PropTypes from 'prop-types'
|
import PropTypes from 'prop-types'
|
||||||
import s from './MenuButton.module.css'
|
import s from './MenuButton.module.css'
|
||||||
|
import cn from 'classnames'
|
||||||
|
|
||||||
interface MenuButtonProps {
|
interface MenuButtonProps {
|
||||||
isOpen: boolean
|
isOpen: boolean
|
||||||
@ -11,7 +12,7 @@ const MenuButton: FC<MenuButtonProps> = ({ isOpen, onClick }) => {
|
|||||||
return (
|
return (
|
||||||
<div
|
<div
|
||||||
onClick={onClick}
|
onClick={onClick}
|
||||||
className={s.menuButton}
|
className={cn(s.menuButton, { [s.isOpen]: isOpen })}
|
||||||
/>
|
/>
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
import { FC } from 'react'
|
import { FC, useState } from 'react'
|
||||||
import Link from 'next/link'
|
import Link from 'next/link'
|
||||||
import s from './Navbar.module.css'
|
import s from './Navbar.module.css'
|
||||||
import NavbarRoot from './NavbarRoot'
|
import NavbarRoot from './NavbarRoot'
|
||||||
@ -14,7 +14,9 @@ interface NavbarProps {
|
|||||||
links?: Link[]
|
links?: Link[]
|
||||||
}
|
}
|
||||||
|
|
||||||
const Navbar: FC<NavbarProps> = ({ links }) => (
|
const Navbar: FC<NavbarProps> = ({ links }) => {
|
||||||
|
const [isMenuOpen, setIsMenuOpen] = useState(false)
|
||||||
|
return (
|
||||||
<NavbarRoot>
|
<NavbarRoot>
|
||||||
<div className={s.navContainer}>
|
<div className={s.navContainer}>
|
||||||
<Container>
|
<Container>
|
||||||
@ -36,7 +38,10 @@ const Navbar: FC<NavbarProps> = ({ links }) => (
|
|||||||
))}
|
))}
|
||||||
</nav>
|
</nav>
|
||||||
</div>
|
</div>
|
||||||
<MenuButton isOpen onClick={() => {}} />
|
<MenuButton
|
||||||
|
isOpen={isMenuOpen}
|
||||||
|
onClick={() => setIsMenuOpen(!isMenuOpen)}
|
||||||
|
/>
|
||||||
<div className="flex items-center justify-end flex-1 space-x-8">
|
<div className="flex items-center justify-end flex-1 space-x-8">
|
||||||
<UserNav />
|
<UserNav />
|
||||||
</div>
|
</div>
|
||||||
@ -51,6 +56,7 @@ const Navbar: FC<NavbarProps> = ({ links }) => (
|
|||||||
</div>
|
</div>
|
||||||
)}
|
)}
|
||||||
</NavbarRoot>
|
</NavbarRoot>
|
||||||
)
|
)
|
||||||
|
}
|
||||||
|
|
||||||
export default Navbar
|
export default Navbar
|
||||||
|
Loading…
x
Reference in New Issue
Block a user