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 { Avatar } from '@components/core' import { Heart, Bag } from '@components/icon' import { useUI } from '@components/ui/context' import { FocusScope } from '@react-aria/focus' import { useOverlay, DismissButton, usePreventScroll, } from '@react-aria/overlays' import useCart from '@lib/bigcommerce/cart/use-cart' interface Props { className?: string } const countItem = (count: number, item: any) => count + item.quantity const countItems = (count: number, items: any[]) => items.reduce(countItem, count) const UserNav: FC = ({ className, children, ...props }) => { const { data } = useCart() const { openSidebar, closeSidebar, displaySidebar } = useUI() const [displayDropdown, setDisplayDropdown] = useState(false) const itemsCount = Object.values(data?.line_items ?? {}).reduce(countItems, 0) let ref = useRef() as React.MutableRefObject const toggleDropdown = () => setDisplayDropdown((v) => !v) return ( ) } interface DropdownMenuProps { onClose: () => void innerRef: React.MutableRefObject } const DropdownMenu: FC = ({ onClose, children, innerRef, ...props }) => { const { theme, setTheme } = useTheme() let { overlayProps } = useOverlay( { onClose: onClose, isOpen: true, }, innerRef ) usePreventScroll() return ( ) } export default UserNav