From df6c9070e56e304f172bdad12544baeb2f35ff05 Mon Sep 17 00:00:00 2001 From: Belen Curcio Date: Wed, 21 Oct 2020 16:41:53 -0300 Subject: [PATCH] Dropdown NavBar --- components/core/Navbar/Navbar.tsx | 10 +-- components/core/UserNav/UserNav.module.css | 28 +++++-- components/core/UserNav/UserNav.tsx | 97 +++++++++++++--------- components/ui/Container/Container.tsx | 2 +- 4 files changed, 81 insertions(+), 56 deletions(-) diff --git a/components/core/Navbar/Navbar.tsx b/components/core/Navbar/Navbar.tsx index 39e22eb17..c2af8e726 100644 --- a/components/core/Navbar/Navbar.tsx +++ b/components/core/Navbar/Navbar.tsx @@ -3,14 +3,14 @@ import { FC } from 'react' import Link from 'next/link' import { useTheme } from 'next-themes' import { Logo } from '@components/ui' -import { Searchbar, Toggle, UserNav } from '@components/core' +import { Searchbar, UserNav } from '@components/core' interface Props { className?: string } const Navbar: FC = ({ className }) => { const rootClassName = className - const { theme, setTheme } = useTheme() + return (
@@ -38,12 +38,6 @@ const Navbar: FC = ({ className }) => {
- - theme === 'dark' ? setTheme('light') : setTheme('dark') - } - />
diff --git a/components/core/UserNav/UserNav.module.css b/components/core/UserNav/UserNav.module.css index 530cea1ae..ab42faff9 100644 --- a/components/core/UserNav/UserNav.module.css +++ b/components/core/UserNav/UserNav.module.css @@ -2,12 +2,16 @@ @apply relative; } +.mainContainer { +} + .list { - @apply flex flex-row items-center h-full; + @apply flex flex-row items-center justify-items-end h-full; } .item { @apply mr-6 cursor-pointer relative transition ease-in-out duration-100 text-base flex items-center; + &:hover { @apply text-accents-8; } @@ -18,14 +22,26 @@ } .dropdownMenu { - @apply absolute right-0 mt-2 w-screen max-w-xs sm:px-0 z-50 border border-accents-1 bg-primary; - max-width: 160px; + @apply bg-primary fixed right-0 z-50 w-full h-full; - &.dropdownMenuContainer { - @apply shadow-lg overflow-hidden relative grid py-2; + @screen lg { + @apply absolute mt-3 right-0 w-screen; + max-width: 160px; + } + + & .dropdownMenuContainer { + @apply flex-col py-6 bg-primary h-full justify-around h-auto; + + @screen lg { + @apply border border-accents-1 shadow-lg py-2; + } } & .link { - @apply px-6 py-3 block space-y-1 hover:bg-accents-1 transition ease-in-out duration-150 text-base leading-6 font-medium text-gray-900; + @apply cursor-pointer px-6 py-3 block space-y-1 hover:bg-accents-1 transition ease-in-out duration-150 text-base leading-6 font-medium text-gray-900; + } + + &.off { + @apply hidden; } } diff --git a/components/core/UserNav/UserNav.tsx b/components/core/UserNav/UserNav.tsx index b25ffee6c..54895f1ff 100644 --- a/components/core/UserNav/UserNav.tsx +++ b/components/core/UserNav/UserNav.tsx @@ -6,6 +6,10 @@ import { Heart, Bag } from '@components/icon' import { useUI } from '@components/ui/context' import s from './UserNav.module.css' import Link from 'next/link' +import { Logo } from '@components/ui' +import { Toggle } from '@components/core' +import { useTheme } from 'next-themes' + interface Props { className?: string } @@ -17,54 +21,65 @@ const countItems = (count: number, items: any[]) => const UserNav: FC = ({ className }) => { const { data } = useCart() - const [displayDropdown, setDisplayDropdown] = useState(false) + const [displayDropdown, setDisplayDropdown] = useState(true) const { openSidebar, closeSidebar, displaySidebar } = useUI() const itemsCount = Object.values(data?.line_items ?? {}).reduce(countItems, 0) + const { theme, setTheme } = useTheme() return ( ) } diff --git a/components/ui/Container/Container.tsx b/components/ui/Container/Container.tsx index b8e07ee07..821c182cd 100644 --- a/components/ui/Container/Container.tsx +++ b/components/ui/Container/Container.tsx @@ -8,7 +8,7 @@ interface Props { } const Container: FC = ({ children, className, el = 'div' }) => { - const rootClassName = cn('mx-auto max-w-7xl px-3 md:px-6', className) + const rootClassName = cn('mx-auto max-w-7xl px-6', className) let Component: React.ComponentType