diff --git a/app/home/(user)/(dashboard)/layout.tsx b/app/home/(user)/(dashboard)/layout.tsx index 5e08ec6..96d81f5 100644 --- a/app/home/(user)/(dashboard)/layout.tsx +++ b/app/home/(user)/(dashboard)/layout.tsx @@ -7,6 +7,8 @@ import { z } from 'zod'; import { UserWorkspaceContextProvider } from '@kit/accounts/components'; import { Page, PageMobileNavigation, PageNavigation } from '@kit/ui/page'; import { SidebarProvider } from '@kit/ui/shadcn-sidebar'; +import { StoreCart } from '@medusajs/types'; +import { retrieveCart } from '@lib/data'; import { AppLogo } from '~/components/app-logo'; import { personalAccountNavigationConfig } from '~/config/personal-account-navigation.config'; @@ -17,7 +19,6 @@ import { HomeMenuNavigation } from '../_components/home-menu-navigation'; import { HomeMobileNavigation } from '../_components/home-mobile-navigation'; import { HomeSidebar } from '../_components/home-sidebar'; import { loadUserWorkspace } from '../_lib/server/load-user-workspace'; -import { retrieveCart } from '@lib/data'; function UserHomeLayout({ children }: React.PropsWithChildren) { const state = use(getLayoutState()); @@ -44,7 +45,7 @@ function SidebarLayout({ children }: React.PropsWithChildren) { - + {children} @@ -66,7 +67,7 @@ function HeaderLayout({ children }: React.PropsWithChildren) { - + @@ -84,14 +85,16 @@ function HeaderLayout({ children }: React.PropsWithChildren) { function MobileNavigation({ workspace, + cart, }: { workspace: Awaited>; + cart: StoreCart | null; }) { return ( <> - + ); } diff --git a/app/home/(user)/_components/home-menu-navigation.tsx b/app/home/(user)/_components/home-menu-navigation.tsx index 761be60..407ebf1 100644 --- a/app/home/(user)/_components/home-menu-navigation.tsx +++ b/app/home/(user)/_components/home-menu-navigation.tsx @@ -46,7 +46,7 @@ export async function HomeMenuNavigation(props: { workspace: UserWorkspace, cart diff --git a/app/home/(user)/_components/home-mobile-navigation.tsx b/app/home/(user)/_components/home-mobile-navigation.tsx index bd3a502..87fd7d5 100644 --- a/app/home/(user)/_components/home-mobile-navigation.tsx +++ b/app/home/(user)/_components/home-mobile-navigation.tsx @@ -2,7 +2,7 @@ import Link from 'next/link'; -import { LogOut, Menu } from 'lucide-react'; +import { LogOut, Menu, ShoppingCart } from 'lucide-react'; import { useSignOut } from '@kit/supabase/hooks/use-sign-out'; import { @@ -16,6 +16,7 @@ import { } from '@kit/ui/dropdown-menu'; import { If } from '@kit/ui/if'; import { Trans } from '@kit/ui/trans'; +import { StoreCart } from '@medusajs/types'; import featuresFlagConfig from '~/config/feature-flags.config'; import { personalAccountNavigationConfig } from '~/config/personal-account-navigation.config'; @@ -24,7 +25,7 @@ import { personalAccountNavigationConfig } from '~/config/personal-account-navig import { HomeAccountSelector } from '../_components/home-account-selector'; import type { UserWorkspace } from '../_lib/server/load-user-workspace'; -export function HomeMobileNavigation(props: { workspace: UserWorkspace }) { +export function HomeMobileNavigation(props: { workspace: UserWorkspace, cart: StoreCart | null }) { const signOut = useSignOut(); const Links = personalAccountNavigationConfig.routes.map((item, index) => { @@ -46,6 +47,10 @@ export function HomeMobileNavigation(props: { workspace: UserWorkspace }) { } }); + + const cartItemsCount = props.cart?.items?.length ?? 0; + const hasCartItems = cartItemsCount > 0; + return ( @@ -69,6 +74,18 @@ export function HomeMobileNavigation(props: { workspace: UserWorkspace }) { + + + } + labelOptions={{ count: cartItemsCount }} + /> + + + + {Links} @@ -83,6 +100,7 @@ function DropdownLink( props: React.PropsWithChildren<{ path: string; label: string; + labelOptions?: Record; Icon: React.ReactNode; }>, ) { @@ -95,7 +113,7 @@ function DropdownLink( {props.Icon} - + diff --git a/public/locales/en/common.json b/public/locales/en/common.json index 280e9f7..ea42f86 100644 --- a/public/locales/en/common.json +++ b/public/locales/en/common.json @@ -58,6 +58,7 @@ "back": "Back", "welcome": "Welcome", "shoppingCart": "Shopping cart", + "shoppingCartCount": "Shopping cart ({{count}})", "search": "Search{{end}}", "myActions": "My actions", "healthPackageComparison": { diff --git a/public/locales/et/common.json b/public/locales/et/common.json index 05008e4..d1e5068 100644 --- a/public/locales/et/common.json +++ b/public/locales/et/common.json @@ -58,6 +58,7 @@ "back": "Back", "welcome": "Tere tulemast", "shoppingCart": "Ostukorv", + "shoppingCartCount": "Ostukorv ({{count}})", "search": "Otsi{{end}}", "myActions": "Minu toimingud", "healthPackageComparison": {