import { useMemo } from 'react'
import { groupByVendor } from '@platform-modules/commerce-cart'
import { useCartContext } from './CartProvider.js'

export function useCart() {
  const { cart, loading, error, reload } = useCartContext('useCart')
  const itemCount = useMemo(() => (cart ? cart.lines.reduce((n, l) => n + l.qty, 0) : 0), [cart])
  const byVendor = useMemo(() => (cart ? groupByVendor(cart) : null), [cart])
  return {
    cart,
    loading,
    error,
    reload,
    itemCount,
    subtotal: cart ? cart.subtotal : null, // passthrough — core owns the sum (no re-summing money)
    byVendor,
  }
}