+14
pages/api/confirmOrder.ts
+14
pages/api/confirmOrder.ts
···
1
+
// Next.js API route support: https://nextjs.org/docs/api-routes/introduction
2
+
import type { NextApiRequest, NextApiResponse } from 'next'
3
+
import { get_data } from '@/src/data'
4
+
5
+
export default async function handler(
6
+
req: NextApiRequest,
7
+
res: NextApiResponse<any>
8
+
) {
9
+
if(req.method == "POST") {
10
+
11
+
} else {
12
+
res.status(400).send("Invalid method")
13
+
}
14
+
}
+37
-3
src/component/purchase.jsx
+37
-3
src/component/purchase.jsx
···
12
12
import { IconButton, ToggleButton, ToggleButtonGroup } from '@mui/material';
13
13
import { Menu } from '@material-ui/icons';
14
14
import useDynamicRefs from 'use-dynamic-refs';
15
+
import { useSession } from 'next-auth/react';
15
16
16
17
export default function PurchasePage() {
18
+
19
+
const { data: session } = useSession()
17
20
18
21
let [menu, setMenu] = useState({})
19
22
···
23
26
24
27
const [getRef, setRef] = useDynamicRefs();
25
28
29
+
function confirmOrder() {
30
+
let finalCartFull = {...cart};
31
+
let finalCart = {}
32
+
// console.log(finalCart)
33
+
Object.keys(finalCartFull).forEach((category, categoryIdx) => {
34
+
finalCart[category] = {}
35
+
// console.log(finalCart[category])
36
+
Object.keys(finalCartFull[category]).forEach((itemName, itemIdx) => {
37
+
// console.log(JSON.stringify(finalCartFull[category][itemName]) == "[]")
38
+
if(JSON.stringify(finalCartFull[category][itemName]) == "[]") {
39
+
return;
40
+
}
41
+
finalCart[category][itemName] = finalCartFull[category][itemName]
42
+
// console.log(`${category}: ${itemName}`)
43
+
})
44
+
})
45
+
46
+
Object.keys(finalCart).forEach((category, idx) => {
47
+
if(JSON.stringify(finalCart[category]) == "{}") {
48
+
delete finalCart[category]
49
+
}
50
+
})
51
+
52
+
console.log(finalCart)
53
+
}
54
+
26
55
async function getMenu() {
27
56
let res = await fetch(`/api/data`, {
28
57
method: 'GET'
···
162
191
})
163
192
}
164
193
165
-
<div onClick={() => getRef("checkout").current.scrollIntoView({ behavior: 'smooth' })}>
166
-
Checkout
194
+
<div style={{display: "flex", flexDirection: "row"}}>
195
+
<div onClick={() => getRef("checkout").current.scrollIntoView({ behavior: 'smooth' })}>
196
+
Checkout
197
+
</div>
198
+
<div style={{position: "absolute", transform: "translateX(-50%)", right: 0, textAlign: "right", color: "gray", marginTop: 0}}>
199
+
{session.user.name}
200
+
</div>
167
201
</div>
168
202
</div> : ""
169
203
···
289
323
<div style={{color: "gray`"}}>
290
324
(Priset kan variera lite)
291
325
</div>
292
-
<Button variant="contained" size="large" color="success" className={styles.confirm_button} disabled={JSON.stringify(getCartAsList()) == "[]" ? true : false}>Confirm Order</Button>
326
+
<Button variant="contained" size="large" color="success" className={styles.confirm_button} disabled={JSON.stringify(getCartAsList()) == "[]" ? true : false} onClick={() => confirmOrder()}>Confirm Order</Button>
293
327
</div>
294
328
<div className={styles.footer}></div>
295
329
</main>