import type { FC } from 'react' import { CartProvider as CommerceCartProvider, useCart as useCommerceCart, } from '@lib/commerce/cart' import type { Cart } from '../api/cart' export type { Cart } export const CartProvider: FC = ({ children }) => { return ( {children} ) } export function useCart() { const cart = useCommerceCart() // Uses a getter to only calculate the prop when required // cart.data is also a getter and it's better to not trigger it early Object.defineProperty(cart, 'isEmpty', { get() { return Object.values(cart.data?.line_items ?? {}).every( (items) => !items.length ) }, set: (x) => x, }) return cart }