diff --git a/donutshop_ecommerce/src/app/menu-items/edit/[id]/page.js b/donutshop_ecommerce/src/app/menu-items/edit/[id]/page.js
index cb443b2..daa9209 100644
--- a/donutshop_ecommerce/src/app/menu-items/edit/[id]/page.js
+++ b/donutshop_ecommerce/src/app/menu-items/edit/[id]/page.js
@@ -4,33 +4,28 @@ import useProfile from '../../../../components/UseProfile';
import { redirect, useParams } from 'next/navigation'
import Link from 'next/link'
import UserTab from '../../../../components/layout/UserTab';
-import EditImage from '../../../../components/layout/EditImage';
+import MenuItemForm from '../../../../components/layout/MenuItemForm';
+import toast from 'react-hot-toast';
const EditMenuItemPage = () => {
const {loading, data} = useProfile();
- const [menuImg, setMenuImg] = useState('');
- const [itemName, setItemName] = useState('');
- const [description, setDescription] = useState('');
- const [basePrice, setBasePrice] = useState('');
const [goToItems, setGoToItems] = useState(false);
+ const [menuItem, setMenuItem] = useState(null);
const {id} = useParams();
-
+
useEffect(() => {
fetch('/api/menu-items').then(res => {
res.json().then(items => {
const item = items.find(i => i._id === id);
- setMenuImg(item.menuImg);
- setItemName(item.itemName);
- setDescription(item.description);
- setBasePrice(item.basePrice);
+ setMenuItem(item);
})
})
}, [])
- async function handleMenuFormSubmit(ev){
+ async function handleMenuFormSubmit(ev, data){
ev.preventDefault();
- const data = {menuImg, itemName, description, basePrice, _id:id};
+ data = {...data, _id:id};
const menuSavingPromise = new Promise(async (resolve, reject) => {
const response = await fetch('/api/menu-items', {
method: 'PUT',
@@ -67,24 +62,7 @@ const EditMenuItemPage = () => {
-
+
Show all menu items
diff --git a/donutshop_ecommerce/src/app/menu-items/new/page.js b/donutshop_ecommerce/src/app/menu-items/new/page.js
index 00d1f33..c8075dd 100644
--- a/donutshop_ecommerce/src/app/menu-items/new/page.js
+++ b/donutshop_ecommerce/src/app/menu-items/new/page.js
@@ -6,18 +6,14 @@ import toast from 'react-hot-toast'
import useProfile from '../../../components/UseProfile'
import Link from 'next/link'
import { redirect } from 'next/navigation'
+import MenuItemForm from '../../../components/layout/MenuItemForm'
const NewMenuItemPage = () => {
const {loading, data} = useProfile();
- const [menuImg, setMenuImg] = useState('');
- const [itemName, setItemName] = useState('');
- const [description, setDescription] = useState('');
- const [basePrice, setBasePrice] = useState('');
const [goToItems, setGoToItems] = useState(false)
- async function handleMenuFormSubmit(ev){
+ async function handleMenuFormSubmit(ev, data){
ev.preventDefault();
- const data = {menuImg, itemName, description, basePrice,};
const menuSavingPromise = new Promise(async (resolve, reject) => {
const response = await fetch('/api/menu-items', {
method: 'POST',
@@ -54,24 +50,7 @@ const NewMenuItemPage = () => {
-
+
Show all menu items
diff --git a/donutshop_ecommerce/src/components/layout/MenuItemForm.js b/donutshop_ecommerce/src/components/layout/MenuItemForm.js
new file mode 100644
index 0000000..f5432c3
--- /dev/null
+++ b/donutshop_ecommerce/src/components/layout/MenuItemForm.js
@@ -0,0 +1,34 @@
+import React, { useState } from 'react'
+import EditImage from './EditImage';
+
+const MenuItemForm = ({handleMenuFormSubmit, menuItem}) => {
+ const [menuImg, setMenuImg] = useState(menuItem?.menuImg || '');
+ const [itemName, setItemName] = useState(menuItem?.itemName || '');
+ const [description, setDescription] = useState(menuItem?.description || '');
+ const [basePrice, setBasePrice] = useState(menuItem?.basePrice || '');
+
+
+
+ return (
+
+ )
+}
+
+export default MenuItemForm
\ No newline at end of file