Shipping and taxes calculated at checkout.
diff --git a/src/Components/NavBar.jsx b/src/Components/NavBar.jsx
index b1d0db9..b7ce27c 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, cart }) {
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
+ {cart.length}
items in cart, view bag
diff --git a/src/Components/ProductFilters.jsx b/src/Components/ProductFilters.jsx
index 0f3262a..f0380cf 100644
--- a/src/Components/ProductFilters.jsx
+++ b/src/Components/ProductFilters.jsx
@@ -6,7 +6,35 @@ function classNames(...classes) {
return classes.filter(Boolean).join(" ");
}
-export default function ProductFilters({ filterOptions, setFilterOptions, sortOptions, setSortOptions }) {
+export default function ProductFilters({ filterOptions, setFilterOptions, sortOptions, setSortOptions, getDefaultFilterOptions }) {
+ const handleFilter = (e, type, option) => {
+ if (type === "price") {
+ if (e.target.checked) {
+ option.checked = true
+ const nextPrice = [...filterOptions.price]
+ const nextFilter = {...filterOptions, price: nextPrice}
+ setFilterOptions(nextFilter)
+ } else {
+ option.checked = false
+ const nextPrice = [...filterOptions.price]
+ const nextFilter = {...filterOptions, price: nextPrice}
+ setFilterOptions(nextFilter)
+ }
+ } else {
+ if (e.target.checked) {
+ option.checked = true
+ const nextColor = [...filterOptions.color]
+ const nextFilter = {...filterOptions, color: nextColor}
+ setFilterOptions(nextFilter)
+ } else {
+ option.checked = false
+ const nextColor = [...filterOptions.color]
+ const nextFilter = {...filterOptions, color: nextColor}
+ setFilterOptions(nextFilter)
+ }
+ }
+ }
+
return (
- 0 Filters
+ {filterOptions.price.filter(f => f.checked === true).length + filterOptions.color.filter(f => f.checked === true).length} Filters
@@ -48,7 +76,8 @@ export default function ProductFilters({ filterOptions, setFilterOptions, sortOp
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}
+ checked={option.checked}
+ onChange={e => handleFilter(e, "price", option)}
/>