'use client'; import Link from 'next/link'; import { StoreCart } from '@medusajs/types'; import { LogOut, Menu, ShoppingCart } from 'lucide-react'; import { featureFlagsConfig, personalAccountNavigationConfig, } from '@kit/shared/config'; import { useSignOut } from '@kit/supabase/hooks/use-sign-out'; import { DropdownMenu, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from '@kit/ui/dropdown-menu'; import { If } from '@kit/ui/if'; import { Trans } from '@kit/ui/trans'; // home imports import { HomeAccountSelector } from '../_components/home-account-selector'; import type { UserWorkspace } from '../_lib/server/load-user-workspace'; export function HomeMobileNavigation(props: { workspace: UserWorkspace; cart: StoreCart | null; }) { const signOut = useSignOut(); const Links = personalAccountNavigationConfig.routes.map((item, index) => { if ('children' in item) { return item.children.map((child) => { return ( ); }); } if ('divider' in item) { return ; } }); const cartQuantityTotal = props.cart?.items?.reduce((acc, item) => acc + item.quantity, 0) ?? 0; const hasCartItems = cartQuantityTotal > 0; return ( } labelOptions={{ count: cartQuantityTotal }} /> {Links} signOut.mutateAsync()} /> ); } function DropdownLink( props: React.PropsWithChildren<{ path: string; label: string; labelOptions?: Record; Icon: React.ReactNode; }>, ) { return ( {props.Icon} ); } function SignOutDropdownItem( props: React.PropsWithChildren<{ onSignOut: () => unknown; }>, ) { return ( ); }