this repo has no description

Progrss

Changed files
+51 -3
pages
src
component
+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
··· 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>