diff --git a/components/core/UserNav/DropdownMenu.module.css b/components/core/UserNav/DropdownMenu.module.css new file mode 100644 index 000000000..9568f9fb1 --- /dev/null +++ b/components/core/UserNav/DropdownMenu.module.css @@ -0,0 +1,25 @@ +.dropdownMenu { + @apply fixed top-0 right-0 z-20 w-full h-full; + + @screen lg { + @apply absolute right-0 w-screen; + max-width: 160px; + } + + & .dropdownMenuContainer { + @apply flex-col py-6 bg-primary h-full justify-around; + + @screen lg { + @apply border border-accents-1 shadow-lg py-2 h-auto; + } + } + + & .link { + @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; + text-transform: capitalize; + } + + &.off { + @apply hidden; + } +} diff --git a/components/core/UserNav/DropdownMenu.tsx b/components/core/UserNav/DropdownMenu.tsx new file mode 100644 index 000000000..f6a3d53e8 --- /dev/null +++ b/components/core/UserNav/DropdownMenu.tsx @@ -0,0 +1,70 @@ +import { useTheme } from 'next-themes' +import s from './DropdownMenu.module.css' +import { FC } from 'react' +import { FocusScope } from '@react-aria/focus' +import { + useOverlay, + DismissButton, + usePreventScroll, +} from '@react-aria/overlays' +import Link from 'next/link' +import cn from 'classnames' + +interface DropdownMenuProps { + onClose: () => void + innerRef: React.MutableRefObject +} + +const DropdownMenu: FC = ({ + onClose, + children, + innerRef, + ...props +}) => { + const { theme, setTheme } = useTheme() + + let { overlayProps } = useOverlay( + { + isDismissable: true, + onClose: onClose, + isOpen: true, + }, + innerRef + ) + + usePreventScroll() + return ( + +
+ {/* Needed placeholder for User Interation*/} +
+ +
+ + +
+
+ ) +} + +export default DropdownMenu diff --git a/components/core/UserNav/UserNav.module.css b/components/core/UserNav/UserNav.module.css index bc8720611..e8b9baba8 100644 --- a/components/core/UserNav/UserNav.module.css +++ b/components/core/UserNav/UserNav.module.css @@ -20,28 +20,3 @@ @apply mr-0; } } - -.dropdownMenu { - @apply fixed top-0 right-0 z-20 w-full h-full; - - @screen lg { - @apply absolute right-0 w-screen; - max-width: 160px; - } - - & .dropdownMenuContainer { - @apply flex-col py-6 bg-primary h-full justify-around; - - @screen lg { - @apply border border-accents-1 shadow-lg py-2 h-auto; - } - } - - & .link { - @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 e86593b7a..861ea32a1 100644 --- a/components/core/UserNav/UserNav.tsx +++ b/components/core/UserNav/UserNav.tsx @@ -1,18 +1,13 @@ import Link from 'next/link' import cn from 'classnames' import s from './UserNav.module.css' -import { FC, useState, useRef, useCallback } from 'react' -import { useTheme } from 'next-themes' +import { FC, useRef } from 'react' + import { Avatar } from '@components/core' import { Heart, Bag } from '@components/icon' import { useUI } from '@components/ui/context' -import { FocusScope } from '@react-aria/focus' +import DropdownMenu from './DropdownMenu' -import { - useOverlay, - DismissButton, - usePreventScroll, -} from '@react-aria/overlays' import useCart from '@lib/bigcommerce/cart/use-cart' interface Props { @@ -73,57 +68,4 @@ const UserNav: FC = ({ className, children, ...props }) => { ) } -interface DropdownMenuProps { - onClose: () => void - innerRef: React.MutableRefObject -} - -const DropdownMenu: FC = ({ - onClose, - children, - innerRef, - ...props -}) => { - const { theme, setTheme } = useTheme() - - let { overlayProps } = useOverlay( - { - isDismissable: true, - onClose: onClose, - isOpen: true, - }, - innerRef - ) - - usePreventScroll() - return ( - - - - ) -} - export default UserNav