1.1.2 • Published 6 months ago

cart v1.1.2

Weekly downloads
23
License
MIT
Repository
github
Last release
6 months ago

npm i cart

⚠️ Expect some breaking changes, Use at your own risk

🛒 Demo

:package: Requirements

  • React or Nextjs Project ⚛️

:sparkles: Installation

  • Install using the below command (with your package manager of choice)
# npm
npm install cart --save

# yarn
yarn add cart

#pnpm
pnpm add cart

# bun
bun install cart

:bulb: Usage Example

import React from "react";
import { useCart } from "cart";

const item = {
  productId: "123",
  name: "Product 1",
  quantity: 1,
  price: 10,
};

function Cart() {
  const {
    addToCart,
    cartItems,
    clearCart,
    decreaseItem,
    toggleCart,
    isCartOpen,
  } = useCart();

  return (
    <div>
      <p>{isCartOpen ? "Open" : "Closed"}</p>
      <button onClick={() => toggleCart()}>Toggle</button>
      <button onClick={() => addToCart(item)}>Add</button>

      <button onClick={() => clearCart()}>Clear</button>
      <button onClick={() => decreaseItem("123", 1)}>Decrease</button>

      <p>{JSON.stringify(cartItems)}</p>
    </div>
  );
}

export default Cart;

:bulb: SSR Example

import { useCart, withSSR } from "cart";
import React from "react";

const item = {
  productId: "123",
  name: "Product 1",
  quantity: 1,
  price: 10,
};

function MyCart() {
  const cart = withSSR(useCart, (state) => state);

  const handleToggle = () => {
    cart?.toggleCart();
  };

  const itemadd = () => {
    cart?.addToCart(item);
  };

  return (
    <div>
      <p>{cart?.isCartOpen ? "Open" : "Closed"}</p>
      <button onClick={() => handleToggle()}>Toggle</button>
      <button onClick={() => itemadd()}>Add</button>

      <button onClick={() => cart?.clearCart()}>Clear</button>
      <button onClick={() => cart?.decreaseItem("123", 1)}>Decrease</button>

      <p>{JSON.stringify(cart?.cartItems)}</p>
    </div>
  );
}

export default MyCart;

API Reference

NameTypeDefault ValueDescriptionExample
isCartOpenbooleanfalseIndicates whether the cart is open or not.isCartOpen ? "Yes" : "No"
toggleCartfunction-Toggles the visibility of the shopping cart.toggleCart();
openCartfunction-Sets the cart open state to true.openCart();
closeCartfunction-Sets the cart open state to false.closeCart();
cartItemsarray[]An array of items in the cart.cartItems.map((item) => ( <div key={item.productId}> <p>{item.name}</p> <p>Quantity: {item.quantity}</p> <p>Price: ${item.price}</p> </div> ))
addToCartfunction-Adds an item to the shopping cart or updates its quantity if already in the cart.addToCart({ productId: 'product1', name: 'Product 1', quantity: 2, price: 20 });
decreaseItemfunction-Decreases the quantity of an item in the shopping cart or removes it if the quantity becomes zero.decreaseItem('product1', 1);
removeFromCartfunction-Removes an item from the shopping cart.removeFromCart('product1');
clearCartfunction-Clears all items from the shopping cart.clearCart();

:pray: Credits

Huge thanks to Peter Krumins for the package name cart. Please checkout Browserling - Online cross-browser testing platform.

(Btw, This is not a sponsored message, Just my way of saying thank you)

Contributors

:green_heart: Message

I hope you find this useful. If you have any questions, please create an issue.


💙 This package is based on @JoshuaKGoldberg's create-typescript-app.

1.1.1

7 months ago

1.1.0

7 months ago

1.1.2

6 months ago

1.0.3

12 years ago

1.0.2

12 years ago

1.0.1

12 years ago

1.0.0

12 years ago

1.0.4

12 years ago