diff --git a/donutshop_ecommerce/src/app/api/models/MenuItem.js b/donutshop_ecommerce/src/app/api/models/MenuItem.js index 02d02ea..11df751 100644 --- a/donutshop_ecommerce/src/app/api/models/MenuItem.js +++ b/donutshop_ecommerce/src/app/api/models/MenuItem.js @@ -1,5 +1,10 @@ import { Schema, model, models } from "mongoose"; +const ExtraPriceSchema = new Schema({ + itemName: String, + price: Number, +}); + const MenuItemSchema = new Schema({ itemName:{ type: String @@ -13,7 +18,9 @@ const MenuItemSchema = new Schema({ basePrice:{ type: Number }, - + sizes:{ + type: [ExtraPriceSchema] + } }, {timestamps: true}) export const MenuItem = models?.MenuItem || model('MenuItem', MenuItemSchema) \ No newline at end of file diff --git a/donutshop_ecommerce/src/app/categories/page.js b/donutshop_ecommerce/src/app/categories/page.js index c0a40e7..0c976e5 100644 --- a/donutshop_ecommerce/src/app/categories/page.js +++ b/donutshop_ecommerce/src/app/categories/page.js @@ -3,6 +3,8 @@ import React, { useEffect, useState } from 'react' import UserTab from '../../components/layout/UserTab' import useProfile from '../../components/UseProfile' import toast from 'react-hot-toast' +import { LiaEditSolid } from "react-icons/lia"; +import { IoTrashOutline } from "react-icons/io5"; const CategoriesPage = () => { const {loading:profileLoading, data:profileData} = useProfile(); @@ -70,7 +72,7 @@ const CategoriesPage = () => {
@@ -84,11 +86,15 @@ const CategoriesPage = () => {
- + {categories?.length > 0 && categories.map(c => ( - +
+

{setEditCategory(c); setCategoryName(c.name)}} className='cursor-pointer hover:text-gray-600'>{c.name}

+
+ + +
+
))}
diff --git a/donutshop_ecommerce/src/components/layout/MenuItemForm.js b/donutshop_ecommerce/src/components/layout/MenuItemForm.js index aad86b0..81e8ec5 100644 --- a/donutshop_ecommerce/src/components/layout/MenuItemForm.js +++ b/donutshop_ecommerce/src/components/layout/MenuItemForm.js @@ -8,7 +8,7 @@ const MenuItemForm = ({handleMenuFormSubmit, menuItem}) => { const [itemName, setItemName] = useState(menuItem?.itemName || ''); const [description, setDescription] = useState(menuItem?.description || ''); const [basePrice, setBasePrice] = useState(menuItem?.basePrice || ''); - const [sizes, setSizes] = useState([]); + const [sizes, setSizes] = useState(menuItem?.sizes || []); diff --git a/donutshop_ecommerce/src/components/layout/MenuItemProps.js b/donutshop_ecommerce/src/components/layout/MenuItemProps.js index a811036..d391edf 100644 --- a/donutshop_ecommerce/src/components/layout/MenuItemProps.js +++ b/donutshop_ecommerce/src/components/layout/MenuItemProps.js @@ -1,7 +1,9 @@ -import React from 'react' +import React, { useState } from 'react' import { IoTrashOutline } from "react-icons/io5"; +import { MdKeyboardArrowDown, MdKeyboardArrowUp } from "react-icons/md"; const MenuItemProps = ({props, setProps}) => { + const [isOpen, setIsOpen] = useState(false); function addProp(){ setProps(oldProp => { @@ -25,24 +27,34 @@ const MenuItemProps = ({props, setProps}) => { return (
-
- {props?.length > 0 && props.map((size, index) => ( -
-
- - editProp(ev, index, 'itemName')}/> + +
+ {props?.length > 0 && props.map((size, index) => ( +
+
+ + editProp(ev, index, 'itemName')}/> +
+
+ + editProp(ev, index, 'price')}/> +
+
+ +
-
- - editProp(ev, index, 'price')}/> -
-
- -
-
- ))} - + ))} + +
)