diff --git a/donutshop_ecommerce/src/app/api/auth/[...nextauth]/route.js b/donutshop_ecommerce/src/app/api/auth/[...nextauth]/route.js index 4721a21..fe7bd04 100644 --- a/donutshop_ecommerce/src/app/api/auth/[...nextauth]/route.js +++ b/donutshop_ecommerce/src/app/api/auth/[...nextauth]/route.js @@ -22,7 +22,7 @@ export const authOptions = { username: { label: "Email", type: "email", placeholder: "test@example.com" }, password: { label: "Password", type: "password" } }, - async authorize(credentials, req) { + async authorize(credentials, req) { const email = credentials?.email; const password = credentials?.password; diff --git a/donutshop_ecommerce/src/app/menu/page.js b/donutshop_ecommerce/src/app/menu/page.js index 8dcf1c4..9f1e4e4 100644 --- a/donutshop_ecommerce/src/app/menu/page.js +++ b/donutshop_ecommerce/src/app/menu/page.js @@ -1,9 +1,72 @@ -import React from 'react' +"use client" +import React, { useEffect, useState } from 'react' +import Menu from '../../components/menu/Menu'; +import Slider from "react-slick"; +import "slick-carousel/slick/slick.css"; +import "slick-carousel/slick/slick-theme.css"; const MenuPage = () => { + const [categories, setCategories] = useState([]); + const [menuItems, setMenuItems] = useState([]); + + useEffect(() => { + fetch('/api/categories').then(res => { + res.json().then(categories => setCategories(categories)) + }); + fetch('/api/menu-items').then(res => { + res.json().then(menuItems => setMenuItems(menuItems)) + }); + + }, []); + + //slider + var menuSlide = { + dots: false, + infinite: false, + speed: 500, + slidesToShow: 2, + responsive: [ + { + breakpoint: 640, + settings: { + slidesToShow: 2, + slidesToScroll: 2, + infinite: true, + dots: false + } + }, + { + breakpoint: 480, + settings: { + slidesToShow: 1, + slidesToScroll: 1 + } + } + ] + }; + + return ( -
- This is menu page +
+ {categories?.length > 0 && categories.map(c => ( +
+

{c.name}

+
+ + {menuItems.filter(item => item.category === c._id).map(item => ( +
+ +
+ ))} +
+
+
+ {menuItems.filter(item => item.category === c._id).map(item => ( + + ))} +
+
+ ))}
) } diff --git a/donutshop_ecommerce/src/components/menu/Menu.js b/donutshop_ecommerce/src/components/menu/Menu.js new file mode 100644 index 0000000..183d31d --- /dev/null +++ b/donutshop_ecommerce/src/components/menu/Menu.js @@ -0,0 +1,16 @@ +import Image from 'next/image' +import React from 'react' + +const Menu = ({menuImg, itemName, description, basePrice, sizes}) => { + return ( +
+ menu-donut +

{itemName}

+

{description}

+

${basePrice}

+ +
+ ) +} + +export default Menu \ No newline at end of file