@springmicro/cart
v0.2.1
Published
A package for eCommerce sites that provides shopping cart functionality.
Downloads
20
Readme
@springmicro/cart
A package for eCommerce sites that provides shopping cart functionality.
Exports
Components
CartProvider
Provides and handles all the data for the cart.
Requires a ReactNode child. apiUrl
will be modified to end with /api/ecommerce/cart
. If the user object changes, the provider automatically logs in and out of the cart.
Required props:
user={({ id: number | string } & any) | undefined}
apiUrl={string}
CartContext
Allows all scopes under the CartProvider
to read from the cart data and the functions to modify the cart.
Provisions:
cart
:Cart
- Provides cart and authentication data.
addToCart
:(product: CartProduct) => void
- Adds a product to the cart.
removeFromCart
:(i: number) => void
- Removes an item from the cart at the given index.
clearCart
:() => void
- Clears the cart.
CartButton
A frontend-facing component to display the cart contents in a Modal. This component is designed to go in a top navbar, ideally on the right-hand side.
This component is required to be in a CartProvider
scope.
Types
Cart
The type of the cart
in CartContext.cart
.
{
cart: CartProducts[],
authentication: {loggedIn: boolean, user_id: string | number}
}
CartProduct
The type of the products listed in Cart.cart
.
{
id: number | string,
name: string,
quantity: number | undefined
}