@springmicro/cart
TypeScript icon, indicating that this package has built-in type declarations

0.2.1 • Public • Published

@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
}

Readme

Keywords

none

Package Sidebar

Install

npm i @springmicro/cart

Weekly Downloads

10

Version

0.2.1

License

none

Unpacked Size

1.64 MB

Total Files

22

Last publish

Collaborators

  • springmicro