diff --git a/src/Components/Cart.jsx b/src/Components/Cart.jsx index 917b7a1..d38a98c 100644 --- a/src/Components/Cart.jsx +++ b/src/Components/Cart.jsx @@ -1,8 +1,12 @@ import { Dialog, Transition } from "@headlessui/react"; -import { XIcon } from "@heroicons/react/outline"; -import React, { Fragment } from "react"; +import { XIcon, ShoppingCartIcon } from "@heroicons/react/outline"; +import React, { Fragment, useState } from "react"; export default function Cart({ open, setOpen, cart, updateCart }) { + + const total = cart.reduce((acc, current) => { + return acc + current.price + },0) return ( { setOpen; }} - > + >
- + setOpen(false)}/>
@@ -52,9 +56,10 @@ export default function Cart({ open, setOpen, cart, updateCart }) {
+ {cart.length === 0 &&
Your Cart is Empty.
}
-
    +
      {cart.map((product) => (
    • @@ -105,7 +110,7 @@ export default function Cart({ open, setOpen, cart, updateCart }) {

      Subtotal

      -

      $262.00

      +

      ${total}

      Shipping and taxes calculated at checkout.

      diff --git a/src/Components/NavBar.jsx b/src/Components/NavBar.jsx index b1d0db9..1f83db3 100644 --- a/src/Components/NavBar.jsx +++ b/src/Components/NavBar.jsx @@ -1,7 +1,7 @@ import { ShoppingBagIcon } from "@heroicons/react/outline"; import React from "react"; -export default function NavBar({ setOpen }) { +export default function NavBar({ setOpen, itemsInCart = 0 }) { return (
      @@ -41,7 +41,7 @@ export default function NavBar({ setOpen }) { className="flex-shrink-0 h-6 w-6 text-gray-400 group-hover:text-gray-500" aria-hidden="true" /> - 0 + {itemsInCart} items in cart, view bag
      diff --git a/src/Components/ProductFilters.jsx b/src/Components/ProductFilters.jsx index 0f3262a..dd72ab5 100644 --- a/src/Components/ProductFilters.jsx +++ b/src/Components/ProductFilters.jsx @@ -1,12 +1,14 @@ import { Disclosure, Menu, Transition } from "@headlessui/react"; import { ChevronDownIcon, FilterIcon } from "@heroicons/react/solid"; -import React, { Fragment } from "react"; +import React, { Fragment, useRef } from "react"; +import { useState } from "react"; function classNames(...classes) { return classes.filter(Boolean).join(" "); } export default function ProductFilters({ filterOptions, setFilterOptions, sortOptions, setSortOptions }) { + return (
      -
      @@ -47,8 +59,17 @@ export default function ProductFilters({ filterOptions, setFilterOptions, sortOp name="price[]" defaultValue={option.minValue} type="checkbox" - className="flex-shrink-0 h-4 w-4 border-gray-300 rounded text-black focus:ring-black" - defaultChecked={option.checked} + className="flex-shrink-0 h-4 w-4 border-gray-300 rounded text-black focus:ring-black" + checked={option.checked} + onChange={() => { + const updatePrice = [...filterOptions.price]; + updatePrice[optionIdx].checked = !updatePrice[optionIdx].checked; + const updateFilters = { + color: [...filterOptions.color], + price: updatePrice + }; + setFilterOptions(updateFilters); + }} />