diff --git a/frontend/src/app/products/[productId]/page.tsx b/frontend/src/app/products/[productId]/page.tsx new file mode 100644 index 0000000..c0c9d3c --- /dev/null +++ b/frontend/src/app/products/[productId]/page.tsx @@ -0,0 +1,9 @@ +import React from 'react' + +export default function ProductDetails(){ + return( +
+

Product Details

+
+ ) +} diff --git a/frontend/src/app/products/page.tsx b/frontend/src/app/products/page.tsx index ddfd2b6..180bf04 100644 --- a/frontend/src/app/products/page.tsx +++ b/frontend/src/app/products/page.tsx @@ -1,13 +1,71 @@ -import React from 'react' -import MenuCard from '@/components/ui/MenuCard/MenuCard' +"use client"; +import React, {useState} from "react"; +import MenuCard from "@/components/ui/MenuCard/MenuCard"; +import { useParams } from "next/navigation"; import Product from "@/../public/batch1/files_list.json"; +import Image from "next/image"; const Products = () => { - return ( -
- -
- ) -} + const catID = useParams(); + const [maxPrice, setMaxPrice] = useState(100); + const [sort, setSort] = useState("asc"); -export default Products \ No newline at end of file + return ( +
+
+
+

Product Categories

+
+ + +
+
+ + +
+
+ + +
+
+ + +
+
+
+

Filter by Price

+
+ 0 + setMaxPrice(parseInt(e.target.value))} /> + {maxPrice} +
+
+
+

Sort by

+
+ 0 + setSort("asc")} /> + +
+
+ 0 + setSort("desc")}/> + +
+
+
+
+ Profile picture +
+ +
+ ); +}; + +export default Products; diff --git a/frontend/src/components/Navbar/Navbar.tsx b/frontend/src/components/Navbar/Navbar.tsx index 420474f..40f88ac 100644 --- a/frontend/src/components/Navbar/Navbar.tsx +++ b/frontend/src/components/Navbar/Navbar.tsx @@ -76,7 +76,7 @@ export default function Nav() { About - + 0 diff --git a/frontend/src/components/ProductPage/ProductPage.css b/frontend/src/components/ProductPage/ProductPage.css new file mode 100644 index 0000000..aad635f --- /dev/null +++ b/frontend/src/components/ProductPage/ProductPage.css @@ -0,0 +1,5 @@ +.product { + padding: 20px 50px; + display: flex; + gap: 50px; +} diff --git a/frontend/src/components/ProductPage/ProductPage.tsx b/frontend/src/components/ProductPage/ProductPage.tsx new file mode 100644 index 0000000..7bdf4fa --- /dev/null +++ b/frontend/src/components/ProductPage/ProductPage.tsx @@ -0,0 +1,51 @@ +import React, { useState, useEffect } from "react"; +import Image from "next/image"; +import Link from "next/link"; +import "./ProductPage.css"; + +const ProductPage = () => { + const [selectedImage, setSelectedImage] = useState(0); + const images = [ + "https://ih1.redbubble.net/image.2997405810.0746/ssrco,slim_fit_t_shirt,womens,101010:01c5ca27c6,front,square_product,600x600.jpg", + "https://ih1.redbubble.net/image.2997405810.0746/ssrco,slim_fit_t_shirt,flatlay,101010:01c5ca27c6,front,wide_portrait,750x1000-bg,f8f8f8.jpg", + ]; + + return ( +
+
+
+ Profile picture(setSelectedImage(0))} + /> + setSelectedImage(1)} + alt="Profile picture" + /> +
+
+ Profile picture +
+
+
+ +
+
+ ); +}; + +export default ProductPage; diff --git a/frontend/src/components/ui/MenuCard/MenuCard.tsx b/frontend/src/components/ui/MenuCard/MenuCard.tsx index e811d04..adbbb36 100644 --- a/frontend/src/components/ui/MenuCard/MenuCard.tsx +++ b/frontend/src/components/ui/MenuCard/MenuCard.tsx @@ -58,7 +58,7 @@ const MenuCard = ({ Menu }: any) => { Out of Stock )} {/* Check if item is a favorite */} - {menu_item.favorite === "yes" ? ( + {/* {menu_item.favorite === "yes" ? ( jefe's star { /> ) : (
- )} + )} */} {/* description text */} diff --git a/frontend/src/components/ui/button.tsx b/frontend/src/components/ui/button.tsx index 36496a2..245cd3c 100644 --- a/frontend/src/components/ui/button.tsx +++ b/frontend/src/components/ui/button.tsx @@ -1,9 +1,9 @@ import * as React from "react" import { Slot } from "@radix-ui/react-slot" import { cva, type VariantProps } from "class-variance-authority" - import { cn } from "@/lib/utils" + const buttonVariants = cva( "inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0", {