{"version":3,"sources":["Components/logo_transparent.png","Components/spicy.png","Components/Menu/FeatureItemImages/soya_chicken.png","Components/Menu/FeatureItemImages/bbq_2_topping_rice.png","Components/Menu/FeatureItemImages/bbq_3_topping_rice.png","Components/Menu/FeatureItemImages/soya_chicken_rice.png","Components/Menu/FeatureItemImages/bbq_pork_rice.png","Components/Menu/FeatureItemImages/roast_pork_rice.png","Components/Menu/FeatureItemImages/bbq_duck_rice.png","Components/kingdo_background.png","Components/Menu/FeatureItemImages/bbq_rib_rice.png","serviceWorker.js","Components/HomePageTitle.js","Components/HomePage.js","Components/Menu/MenuPage/TopBar.js","Components/Cart/CartBar.js","Components/Menu/MenuItem.js","Components/Menu/MenuStructure.js","Components/Menu/MenuSection.js","Components/Menu/AllMenuItems.js","Components/Menu/AllFeaturedItems.js","Components/Menu/Menu.js","Components/Menu/MenuPage/MenuPage.js","Components/Cart/CartPage.js","Components/Checkout/OrderConfirmationPage.js","Components/Checkout/Checkout.js","Router/Router.js","index.js","Components/kingdo_homepage_background.png"],"names":["module","exports","Boolean","window","location","hostname","match","HomePageTitle","style","textShadow","textAlign","to","textDecoration","fontSize","isMobile","color","flexWrap","Component","HomePage","state","mouseOverTitle","mouseOverLocation","redirectToNextPage","showDeliveryModal","handleMouseEnterLocation","setState","handleMouseLeavingLocation","handleRedirecToNextPage","nextPageRoute","sessionStorage","setItem","handleShowDeliveryModal","handleCloseDeliveryModal","pickUpButton","Button","fullWidth","label","variant","size","onClick","borderRadius","width","textTransform","buttonStyle","deliveryButton","this","push","getItem","height","backgroundImage","backgroundRepeat","backgroundPosition","backgroundSize","position","left","top","transform","display","justifyContent","component","onMouseEnter","onMouseLeave","href","Modal","open","onClose","aria-labelledby","aria-describedby","backgroundColor","IconButton","paddingLeft","paddingRight","borderWidth","borderColor","borderStyle","minWidth","paddingTop","outline","TopBar","drawerIsOpen","toggleDrawer","isOpen","Box","boxShadow","alignItems","Drawer","anchor","marginLeft","marginTop","marginRight","includes","Divider","alt","src","topBarLogo","CartBar","mouseOverViewCart","handleMouseEnterViewCart","handleMouseLeavingViewCart","nextPath","bottom","props","cartItems","length","cartAmount","Item","id","itemInfo","name","price","isSpicy","chineseTranslation","menuItemNumber","ListItem","ListItemText","maxWidth","spicy","fontWeight","ListItemSecondaryAction","addMenuItemToCart","ListItemAvatar","MenuStructure","sectionItems","formGrid","List","map","item","MenuItem","key","items","MenuSection","sectionName","menuSectionInfo","menuSectionName","menuSectionItems","menu","featuredItems","pathToPhoto","bbq_2_topping_rice","soya_chicken","bbq_pork_rice","roast_pork_rice","template","bbq_duck_rice","soya_chicken_rice","bbq_3_topping_rice","useStyles","makeStyles","theme","root","maxHeight","media","text","FeaturedItemCard","classes","Card","className","CardMedia","image","title","CardContent","Typography","gutterBottom","CardActions","Menu","selectedMenuSection","handleSelect","event","target","value","Events","scrollEvent","register","scrollSpy","update","remove","paddingBottom","padding","FormControl","Select","onChange","section","activeClass","spy","smooth","offset","duration","hidden","menuSection","featuredItem","MenuPage","cartItem","currentCartItems","currentCartAmount","parseFloat","Math","round","toFixed","JSON","stringify","parse","totalPrice","foodTransportation","parseItemIntoStack","Map","has","listOfItemsWithGivenId","get","set","numberOfItemsCounter","listOfItems","forEach","quantity","calculateAmountsGivenStackItems","stackItems","subtotalPrice","taxPrice","CartPage","handleRedirectToOrderConfirmationPage","redirectToOrderConfirmationPage","handleRemoveItems","itemId","currentStackItems","itemStack","newStackItems","newCartItems","i","isMarketPrice","buttonDisabled","totalNumberOfItems","hasMarketPrice","handleIncreaseQuantityByOne","handleDecreaseQuantityByOne","removeItem","updatedStackItems","storageCartItems","foodTransportationMethod","pathname","disabled","outerHeight","OrderConfirmationPage","handleFirstNameEdit","firstNameText","handleLastNameEdit","lastNameText","handleNoteEdit","note","handleDeliveryAddressEdit","deliveryAddress","handleCityEdit","city","handlePostalCodeEdit","postalCode","handlePhoneNumberEdit","phoneNumber","replace","handleRedirectToPlaceOrderConfirmPage","a","cartItemsAmount","Axios","process","method","params","customerPhoneNumber","firstName","lastName","transportationMethod","isWithIn5km","withIn5km","data","redirectToPlaceOrderConfirmPage","isLoading","errorMessage","error","handleIsWithinRange","Error","response","range","isWithinRange","modalMessage","isModalOpen","message","noValidForDeliveryModalOpen","status","handleFoodTransportationMethodChange","handleClose","handleModalClose","handleModalCloseNotValidForDelivery","token","labelId","TextField","autoComplete","defaultCountry","disableDropdown","countryCodeEditable","Snackbar","autoHideDuration","Alert","severity","elevation","pointerEvents","Checkout","NoMatchPage","Root","exact","path","ReactDOM","render","document","getElementById","navigator","serviceWorker","ready","then","registration","unregister","catch","console"],"mappings":"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B,KAElB,CACEN,GAAI,IACJE,KAAM,6CACNC,MAAO,MACPC,SAAS,EACTC,mBAAoB,2BACpBC,eAAgB,KAElB,CACEN,GAAI,IACJE,KAAM,4CACNC,MAAO,MACPC,SAAS,EACTC,mBAAoB,iCACpBC,eAAgB,KAElB,CACEN,GAAI,IACJE,KAAM,yCACNC,MAAO,MACPC,SAAS,EACTC,mBAAoB,qBACpBC,eAAgB,OAItB,CACEqB,gBAAiB,uFACjBC,iBAAkB,CAChB,CACE5B,GAAI,IACJE,KACE,2GACFC,MAAO,MACPC,SAAS,EACTC,mBACE,+JACFC,eAAgB,GAElB,CACEN,GAAI,IACJE,KACE,0GACFC,MAAO,MACPC,SAAS,EACTC,mBACE,+JACFC,eAAgB,GAElB,CACEN,GAAI,IACJE,KACE,yFACFC,MAAO,MACPC,SAAS,EACTC,mBAAoB,0IACpBC,eAAgB,GAElB,CACEN,GAAI,IACJE,KACE,8FACFC,MAAO,MACPC,SAAS,EACTC,mBACE,sJACFC,eAAgB,GAElB,CACEN,GAAI,IACJE,KACE,oIACFC,MAAO,MACPC,SAAS,EACTC,mBACE,oLACFC,eAAgB,GAElB,CACEN,GAAI,IACJE,KACE,iIACFC,MAAO,MACPC,SAAS,EACTC,mBACE,gLACFC,eAAgB,GAElB,CACEN,GAAI,IACJE,KACE,kKACFC,MAAO,MACPC,SAAS,EACTC,mBACE,8NACFC,eAAgB,GAElB,CACEN,GAAI,IACJE,KACE,sJACFC,MAAO,MACPC,SAAS,EACTC,mBACE,sOACFC,eAAgB,GAElB,CACEN,GAAI,IACJE,KACE,iKACFC,MAAO,OACPC,SAAS,EACTC,mBACE,oOACFC,eAAgB,GAElB,CACEN,GAAI,IACJE,KACE,2JACFC,MAAO,OACPC,SAAS,EACTC,mBACE,oOACFC,eAAgB,GAElB,CACEN,GAAI,IACJE,KACE,8MACFC,MAAO,OACPC,SAAS,EACTC,mBACE,oRACFC,eAAgB,KAItB,CACEqB,gBAAiB,iDACjBC,iBAAkB,CAChB,CACE5B,GAAI,IACJE,KAAM,cACNC,MAAO,KACPC,SAAS,EACT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","file":"static/js/main.a075caf0.chunk.js","sourcesContent":["module.exports = __webpack_public_path__ + \"static/media/logo_transparent.3aab79ac.png\";","module.exports = __webpack_public_path__ + \"static/media/spicy.a573c16d.png\";","module.exports = __webpack_public_path__ + \"static/media/soya_chicken.1328de9c.png\";","module.exports = __webpack_public_path__ + \"static/media/bbq_2_topping_rice.146b854f.png\";","module.exports = __webpack_public_path__ + \"static/media/bbq_3_topping_rice.8dba3fe8.png\";","module.exports = __webpack_public_path__ + \"static/media/soya_chicken_rice.003b4f65.png\";","module.exports = __webpack_public_path__ + \"static/media/bbq_pork_rice.16640679.png\";","module.exports = __webpack_public_path__ + \"static/media/roast_pork_rice.ce3f1071.png\";","module.exports = __webpack_public_path__ + \"static/media/bbq_duck_rice.2c86a3d4.png\";","module.exports = __webpack_public_path__ + \"static/media/kingdo_background.54d3d093.png\";","module.exports = __webpack_public_path__ + \"static/media/bbq_rib_rice.e04a880e.png\";","// This optional code is used to register a service worker.\n// register() is not called by default.\n\n// This lets the app load faster on subsequent visits in production, and gives\n// it offline capabilities. However, it also means that developers (and users)\n// will only see deployed updates on subsequent visits to a page, after all the\n// existing tabs open on the page have been closed, since previously cached\n// resources are updated in the background.\n\n// To learn more about the benefits of this model and instructions on how to\n// opt-in, read https://bit.ly/CRA-PWA\n\nconst isLocalhost = Boolean(\n window.location.hostname === 'localhost' ||\n // [::1] is the IPv6 localhost address.\n window.location.hostname === '[::1]' ||\n // 127.0.0.0/8 are considered localhost for IPv4.\n window.location.hostname.match(\n /^127(?:\\.(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}$/\n )\n);\n\nexport function register(config) {\n if (process.env.NODE_ENV === 'production' && 'serviceWorker' in navigator) {\n // The URL constructor is available in all browsers that support SW.\n const publicUrl = new URL(process.env.PUBLIC_URL, window.location.href);\n if (publicUrl.origin !== window.location.origin) {\n // Our service worker won't work if PUBLIC_URL is on a different origin\n // from what our page is served on. This might happen if a CDN is used to\n // serve assets; see https://github.com/facebook/create-react-app/issues/2374\n return;\n }\n\n window.addEventListener('load', () => {\n const swUrl = `${process.env.PUBLIC_URL}/service-worker.js`;\n\n if (isLocalhost) {\n // This is running on localhost. Let's check if a service worker still exists or not.\n checkValidServiceWorker(swUrl, config);\n\n // Add some additional logging to localhost, pointing developers to the\n // service worker/PWA documentation.\n navigator.serviceWorker.ready.then(() => {\n console.log(\n 'This web app is being served cache-first by a service ' +\n 'worker. To learn more, visit https://bit.ly/CRA-PWA'\n );\n });\n } else {\n // Is not localhost. Just register service worker\n registerValidSW(swUrl, config);\n }\n });\n }\n}\n\nfunction registerValidSW(swUrl, config) {\n navigator.serviceWorker\n .register(swUrl)\n .then(registration => {\n registration.onupdatefound = () => {\n const installingWorker = registration.installing;\n if (installingWorker == null) {\n return;\n }\n installingWorker.onstatechange = () => {\n if (installingWorker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n // At this point, the updated precached content has been fetched,\n // but the previous service worker will still serve the older\n // content until all client tabs are closed.\n console.log(\n 'New content is available and will be used when all ' +\n 'tabs for this page are closed. See https://bit.ly/CRA-PWA.'\n );\n\n // Execute callback\n if (config && config.onUpdate) {\n config.onUpdate(registration);\n }\n } else {\n // At this point, everything has been precached.\n // It's the perfect time to display a\n // \"Content is cached for offline use.\" message.\n console.log('Content is cached for offline use.');\n\n // Execute callback\n if (config && config.onSuccess) {\n config.onSuccess(registration);\n }\n }\n }\n };\n };\n })\n .catch(error => {\n console.error('Error during service worker registration:', error);\n });\n}\n\nfunction checkValidServiceWorker(swUrl, config) {\n // Check if the service worker can be found. If it can't reload the page.\n fetch(swUrl, {\n headers: { 'Service-Worker': 'script' },\n })\n .then(response => {\n // Ensure service worker exists, and that we really are getting a JS file.\n const contentType = response.headers.get('content-type');\n if (\n response.status === 404 ||\n (contentType != null && contentType.indexOf('javascript') === -1)\n ) {\n // No service worker found. Probably a different app. Reload the page.\n navigator.serviceWorker.ready.then(registration => {\n registration.unregister().then(() => {\n window.location.reload();\n });\n });\n } else {\n // Service worker found. Proceed as normal.\n registerValidSW(swUrl, config);\n }\n })\n .catch(() => {\n console.log(\n 'No internet connection found. App is running in offline mode.'\n );\n });\n}\n\nexport function unregister() {\n if ('serviceWorker' in navigator) {\n navigator.serviceWorker.ready\n .then(registration => {\n registration.unregister();\n })\n .catch(error => {\n console.error(error.message);\n });\n }\n}\n","import React, { Component } from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { isMobile } from \"react-device-detect\";\n\nclass HomePageTitle extends Component {\n render() {\n return (\n \n \n King Do Seafood Restaurant\n \n \n );\n }\n}\n\nexport default HomePageTitle;\n","import React, { Component } from \"react\";\nimport HomePageTitle from \"./HomePageTitle\";\nimport Center from \"react-center\";\nimport { Link, Redirect } from \"react-router-dom\";\nimport backgroundImage from \"./kingdo_homepage_background.png\";\nimport { isMobile } from \"react-device-detect\";\nimport Button from \"@material-ui/core/Button\";\nimport Modal from \"@material-ui/core/Modal\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport IconButton from \"@material-ui/core/IconButton\";\n\nclass HomePage extends Component {\n state = {\n mouseOverTitle: false,\n mouseOverLocation: false,\n redirectToNextPage: false,\n showDeliveryModal: false,\n };\n\n handleMouseEnterLocation = () => {\n this.setState({ mouseOverLocation: true });\n };\n\n handleMouseLeavingLocation = () => {\n this.setState({ mouseOverLocation: false });\n };\n\n handleRedirecToNextPage = (nextPageRoute) => {\n sessionStorage.setItem(\"foodTransportMethod\", nextPageRoute);\n this.setState({ redirectToNextPage: true });\n };\n\n handleShowDeliveryModal = () => {\n this.setState({ showDeliveryModal: true });\n };\n\n handleCloseDeliveryModal = () => {\n this.setState({ showDeliveryModal: false });\n };\n\n pickUpButton = () => {\n if (isMobile) {\n return (\n this.handleRedirecToNextPage(\"/pickup\")}\n style={{\n borderRadius: 10,\n fontSize: 16,\n width: \"120px\",\n textTransform: \"none\",\n }}\n >\n Pick Up\n \n );\n }\n\n return (\n this.handleRedirecToNextPage(\"/pickup\")}\n buttonStyle={{ borderRadius: 10 }}\n style={{ borderRadius: 10, fontSize: 25 }}\n >\n Pick Up\n \n );\n };\n\n deliveryButton = () => {\n if (isMobile) {\n return (\n \n Delivery\n \n );\n }\n\n return (\n \n Delivery\n \n );\n };\n\n render() {\n if (this.state.redirectToNextPage) {\n return (\n \n );\n }\n\n if (isMobile) {\n return (\n \n \n \n \n {this.deliveryButton()}\n
\n {this.pickUpButton()}\n \n
\n (\n \n 13922-104 Avenue, Surrey, British Columbia V3T 1X2, Canada\n \n )}\n >\n
\n \n \n \n \n \n \n
\n

\n Please note that we do not deliver more than 8 km away from\n us.\n

\n

\n Delivery fees that are within 5 km from us will be free and if\n you are located more than 5 km, a $5 fee will be charged upon\n delivery up to 8km.\n

\n
\n \n this.handleRedirecToNextPage(\"/delivery\")}\n style={{\n backgroundColor: \"green\",\n fontSize: 14,\n color: \"black\",\n borderWidth: 1,\n borderColor: \"black\",\n borderStyle: \"solid\",\n }}\n >\n Continue with Delivery\n \n \n \n \n \n );\n }\n\n return (\n \n
\n
\n \n
\n \n {this.deliveryButton()}\n
\n {this.pickUpButton()}\n
\n
\n

\n (\n \n 13922-104 Avenue, Surrey, British Columbia V3T 1X2, Canada\n \n )}\n >\n

\n
\n \n \n \n \n \n \n
\n
\n

\n Please note that we do not deliver more than 8 km away from us.\n

\n

\n Delivery fees that are within 5 km from us will be free and if\n you are located more than 5 km, a $5 fee will be charged upon\n delivery up to 8km.\n

\n
\n \n this.handleRedirecToNextPage(\"/delivery\")}\n style={{\n backgroundColor: \"green\",\n fontSize: 20,\n color: \"black\",\n borderWidth: 1,\n borderColor: \"black\",\n borderStyle: \"solid\",\n }}\n >\n Continue with Delivery\n \n
\n \n \n \n );\n }\n}\n\nexport default HomePage;\n","import React, { Component } from \"react\";\nimport { Box, IconButton } from \"@material-ui/core\";\nimport { Link } from \"react-router-dom\";\nimport topBarLogo from \"../../logo_transparent.png\";\nimport { isMobile } from \"react-device-detect\";\nimport Drawer from \"@material-ui/core/Drawer\";\nimport Divider from \"@material-ui/core/Divider\";\nimport MenuIcon from \"@material-ui/icons/Menu\";\nimport OpenInNewIcon from \"@material-ui/icons/OpenInNew\";\n\nclass TopBar extends Component {\n state = {\n mouseOverLocation: false,\n drawerIsOpen: false,\n };\n\n handleMouseEnterLocation = () => {\n this.setState({ mouseOverLocation: true });\n };\n\n handleMouseLeavingLocation = () => {\n this.setState({ mouseOverLocation: false });\n };\n\n toggleDrawer = (isOpen) => {\n this.setState({ drawerIsOpen: isOpen });\n };\n\n render() {\n if (isMobile) {\n return (\n \n \n this.toggleDrawer(true)}>\n \n \n this.toggleDrawer(false)}\n >\n
\n \n

\n {`This Order is for ${\n sessionStorage\n .getItem(\"foodTransportMethod\")\n .includes(\"delivery\")\n ? \"Delivery\"\n : \"Pickup\"\n }`}\n

\n \n
\n

\n (\n \n Location\n \n )}\n >\n

\n
\n \n
\n \n

Hours of Operation:

\n
7 DAYS A WEEK
\n
Monday - Sunday
\n
11:00am - 9:00pm
\n

Contact us at:

\n
604-582-6911
\n
\n
\n \n \n \n \n \n
\n );\n }\n return (\n \n \n \n

\n {`This Order is for \n ${\n sessionStorage\n .getItem(\"foodTransportMethod\")\n .includes(\"delivery\")\n ? \"Delivery\"\n : \"Pickup\"\n }`}\n

\n

\n (\n \n 13922-104 Avenue, Surrey, British Columbia V3T 1X2, Canada\n \n )}\n >\n

\n \n \n \n \n \n

7 DAYS A WEEK

\n

Monday - Sunday

\n

11:00am - 9:00pm

\n

604-582-6911

\n \n \n
\n );\n }\n}\n\nexport default TopBar;\n","import React, { Component } from \"react\";\nimport ShoppingCartIcon from \"@material-ui/icons/ShoppingCart\";\nimport { Link, Redirect } from \"react-router-dom\";\nimport cartBarBackground from \"../kingdo_background.png\";\nimport { isMobile } from \"react-device-detect\";\n\nclass CartBar extends Component {\n state = {\n mouseOverViewCart: false,\n };\n\n handleMouseEnterViewCart = () => {\n this.setState({ mouseOverViewCart: true });\n };\n\n handleMouseLeavingViewCart = () => {\n this.setState({ mouseOverViewCart: false });\n };\n\n render() {\n const nextPath = sessionStorage\n .getItem(\"foodTransportMethod\")\n .includes(\"delivery\")\n ? \"/delivery/cart\"\n : \"/pickup/cart\";\n\n if (isMobile) {\n return (\n \n \n \n \n

\n {this.props.cartItems.length}\n

\n \n \n

View Cart

\n \n \n \n ${this.props.cartAmount}\n \n \n \n \n );\n }\n\n return (\n \n \n \n \n

\n {this.props.cartItems.length}\n

\n \n \n

View Cart

\n \n \n ${this.props.cartAmount}\n \n \n \n );\n }\n}\n\nexport default CartBar;\n","import React, { Component } from \"react\";\nimport AddIcon from \"@material-ui/icons/Add\";\nimport ListItem from \"@material-ui/core/ListItem\";\nimport ListItemSecondaryAction from \"@material-ui/core/ListItemSecondaryAction\";\nimport ListItemText from \"@material-ui/core/ListItemText\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport ListItemAvatar from \"@material-ui/core/ListItemAvatar\";\nimport { isMobile } from \"react-device-detect\";\nimport spicy from \"../spicy.png\";\n\nclass Item extends Component {\n constructor(props) {\n super(props);\n this.state = {\n id: props.itemInfo.id,\n name: props.itemInfo.name,\n price: props.itemInfo.price,\n isSpicy: props.itemInfo.isSpicy,\n chineseTranslation: props.itemInfo.chineseTranslation,\n menuItemNumber: props.itemInfo.menuItemNumber,\n };\n }\n\n render() {\n if (isMobile) {\n return (\n \n \n \n {this.state.isSpicy ? (\n \n ) : (\n \n )}\n
\n

\n {this.state.menuItemNumber === 0\n ? \"\"\n : this.state.menuItemNumber + \". \"}\n {this.state.name}\n

\n {`(${this.state.chineseTranslation})`}\n
\n \n
\n \n {this.state.price < 0\n ? \"Market Price (市价)\"\n : `$${this.state.price}`}\n \n this.props.addMenuItemToCart({\n id: this.state.id,\n name: this.state.name,\n price: this.state.price,\n menuItemNumber: this.state.menuItemNumber,\n })\n }\n >\n \n \n \n
\n );\n }\n\n return (\n \n \n {this.state.isSpicy ? (\n \"spicy\"\n ) : (\n
\n )}\n
\n
\n \n

\n {this.state.menuItemNumber === 0\n ? \"\"\n : this.state.menuItemNumber + \". \"}\n {this.state.name}\n

\n

\n {this.state.chineseTranslation}\n

\n
\n
\n \n {this.state.price < 0\n ? \"Market Price (市价)\"\n : `$${this.state.price}`}\n \n this.props.addMenuItemToCart({\n id: this.state.id,\n name: this.state.name,\n price: this.state.price,\n menuItemNumber: this.state.menuItemNumber,\n })\n }\n >\n \n \n \n
\n );\n }\n}\n\nexport default Item;\n","import React, { Component } from \"react\";\nimport MenuItem from \"./MenuItem\";\nimport List from \"@material-ui/core/List\";\nimport { isMobile } from \"react-device-detect\";\n\nclass MenuStructure extends Component {\n state = {\n sectionItems: [],\n };\n\n constructor(props) {\n super(props);\n this.state = {\n sectionItems: props.items,\n };\n }\n formGrid = () => {\n return (\n \n {this.state.sectionItems.map((item) => (\n \n ))}\n \n );\n };\n\n render() {\n return this.formGrid();\n }\n}\n\nexport default MenuStructure;\n","import React, { Component } from \"react\";\nimport MenuStructure from \"./MenuStructure\";\nimport Divider from \"@material-ui/core/Divider\";\nimport { isMobile } from \"react-device-detect\";\n\nclass MenuSection extends Component {\n state = {\n sectionName: \"\",\n sectionItems: [],\n };\n\n constructor(props) {\n super(props);\n this.state = {\n sectionName: props.menuSectionInfo.menuSectionName,\n sectionItems: props.menuSectionInfo.menuSectionItems,\n };\n }\n render() {\n return (\n
\n

\n {this.state.sectionName}\n

\n \n \n
\n );\n }\n}\n\nexport default MenuSection;\n","export const menu = [\n {\n // APPETIZERS\n menuSectionName: \"APPETIZERS - 头盘(前菜)\",\n menuSectionItems: [\n {\n id: 1,\n name: \"Three Kind Appetizer Combinations\",\n price: 39.80,\n isSpicy: true,\n menuItemNumber: 1,\n chineseTranslation: \"椒盐三拼\",\n },\n {\n id: 2,\n name: \"New King Do Appetizer Combinations\",\n price: 56.80,\n isSpicy: false,\n menuItemNumber: 2,\n chineseTranslation: \"新京都大拼盘\",\n },\n {\n id: 3,\n name: \"Braised Crispy Squab\",\n price: -1, // -1 is considered as market price\n isSpicy: false,\n menuItemNumber: 3,\n chineseTranslation: \"红烧乳鸽王\",\n },\n {\n id: 4,\n name: \"D.F. Crab Claws Wrapper with Minced Shrimp\",\n price: 9.25,\n isSpicy: false,\n menuItemNumber: 4,\n chineseTranslation: \"白花酿蟹钳\",\n },\n {\n id: 5,\n name: \"Cold Marinated Jellyfish and Pork Hock\",\n price: 26.95,\n isSpicy: false,\n menuItemNumber: 5,\n chineseTranslation: \"海蜇熏蹄\",\n },\n {\n id: 6,\n name: \"Deep-Fried Assorted Meat Combinations\",\n price: 39.80,\n isSpicy: false,\n menuItemNumber: 6,\n chineseTranslation: \"酥炸拼盘\",\n },\n {\n id: 7,\n name: \"Lettuce Wrap (Chicken)\",\n price: 29.95,\n isSpicy: false,\n menuItemNumber: 7,\n chineseTranslation: \"生菜包 (鸡)\",\n },\n {\n id: 8,\n name: \"Lettuce Wrap (Beef)\",\n price: 29.95,\n isSpicy: false,\n menuItemNumber: 7,\n chineseTranslation: \"生菜包 (牛肉)\",\n },\n {\n id: 9,\n name: \"Lettuce Wrap (Seafood)\",\n price: 33.95,\n isSpicy: false,\n menuItemNumber: 7,\n chineseTranslation: \"生菜包 (海鲜)\",\n },\n {\n id: 10,\n name: \"Spring Roll (1pc)\",\n price: 1.95,\n isSpicy: false,\n menuItemNumber: 8,\n chineseTranslation: \"炸春卷\",\n },\n {\n id: 11,\n name: \"Deep-Fried Wonton\",\n price: 13.50,\n isSpicy: false,\n menuItemNumber: 9,\n chineseTranslation: \"炸云吞\",\n },\n {\n id: 12,\n name: \"B.B.Q Pork\",\n price: 14.95,\n isSpicy: false,\n menuItemNumber: 10,\n chineseTranslation: \"蜜汁叉烧\",\n },\n ],\n },\n {\n menuSectionName: \"SOUPS - 汤羹类\",\n menuSectionItems: [\n {\n id: 13,\n name: \"Szechuan Hot-and-Sour Soup (S)\",\n price: 13.95,\n isSpicy: true,\n menuItemNumber: 11,\n chineseTranslation: \"四川酸辣汤\",\n },\n {\n id: 14,\n name: \"Crabmeat with Fish Maw Soup (S)\",\n price: 16.80,\n isSpicy: false,\n menuItemNumber: 12,\n chineseTranslation: \"蟹肉鱼肚羹\",\n },\n {\n id: 15,\n name: \"Crabmeat with Fish Maw Soup (L)\",\n price: 29.80,\n isSpicy: false,\n menuItemNumber: 12,\n chineseTranslation: \"蟹肉鱼肚羹\",\n },\n {\n id: 16,\n name: \"Crabmeat with Cream Corn Soup\",\n price: 15.50,\n isSpicy: false,\n menuItemNumber: 13,\n chineseTranslation: \"蟹肉粟米羹\",\n },\n {\n id: 17,\n name: \"Minced Chicken and Cream Corn Soup\",\n price: 13.50,\n isSpicy: false,\n menuItemNumber: 14,\n chineseTranslation: \"鸡茸素米羹\",\n },\n {\n id: 18,\n name: \"Wonton Soup\",\n price: 14.95,\n isSpicy: false,\n menuItemNumber: 15,\n chineseTranslation: \"鲜虾云吞汤\",\n },\n {\n id: 19,\n name: \"War Wonton Soup (Large)\",\n price: 26.95,\n isSpicy: false,\n menuItemNumber: 16,\n chineseTranslation: \"锅云吞\",\n },\n {\n id: 20,\n name: \"Minced Beef and Egg White Soup\",\n price: 14.95,\n isSpicy: false,\n menuItemNumber: 17,\n chineseTranslation: \"西湖牛肉羹\",\n },\n {\n id: 21,\n name: \"Seafood and Dry Scallop Soup\",\n price: 16.80,\n isSpicy: false,\n menuItemNumber: 18,\n chineseTranslation: \"瑶柱海黄羹\",\n },\n {\n id: 22,\n name: \"Assorted Seafood and Tofu Soup (Large)\",\n price: 24.95,\n isSpicy: false,\n menuItemNumber: 19,\n chineseTranslation: \"海鲜豆腐汤\",\n },\n ],\n },\n {\n menuSectionName: \"BEEF AND PORK - 牛,猪肉类\",\n menuSectionItems: [\n {\n id: 23,\n name: \"Sliced Pork Sauteed with Cabbage\",\n price: 18.95,\n isSpicy: true,\n menuItemNumber: 20,\n chineseTranslation: \"回锅肉\",\n },\n {\n id: 24,\n name: \"Shredded Pork with Hot Garlic Sauce\",\n price: 17.95,\n isSpicy: true,\n menuItemNumber: 21,\n chineseTranslation: \"鱼香肉丝\",\n },\n {\n id: 25,\n name: \"Sweet-and-Sour Pork with Pineapple\",\n price: 17.95,\n isSpicy: false,\n menuItemNumber: 22,\n chineseTranslation: \"菠萝甜酸猪\",\n },\n {\n id: 26,\n name: \"Sweet-and-Sour Pork (Boneless)\",\n price: 17.95,\n isSpicy: false,\n menuItemNumber: 23,\n chineseTranslation: \"咕噜肉\",\n },\n {\n id: 27,\n name: \"Honey Garlic Boneless Pork\",\n price: 17.95,\n isSpicy: false,\n menuItemNumber: 24,\n chineseTranslation: \"蜜味蒜子肉\",\n },\n {\n id: 28,\n name: \"Mandarin Pork Chops\",\n price: 22.95,\n isSpicy: false,\n menuItemNumber: 25,\n chineseTranslation: \"京都肉排\",\n },\n {\n id: 29,\n name: \"Deep-Fried Spicy Pork Chops\",\n price: 21.95,\n isSpicy: true,\n menuItemNumber: 26,\n chineseTranslation: \"椒盐肉排\",\n },\n {\n id: 30,\n name: \"Dry Garlic Spareribs\",\n price: 17.95,\n isSpicy: false,\n menuItemNumber: 27,\n chineseTranslation: \"蒜子干骨\",\n },\n {\n id: 31,\n name: \"Deep-Fried Spicy Dry Spareribs\",\n price: 17.95,\n isSpicy: true,\n menuItemNumber: 28,\n chineseTranslation: \"椒盐干骨\",\n },\n {\n id: 32,\n name: \"Steamed Spareribs in Black Bean Sauce\",\n price: 21.95,\n isSpicy: false,\n menuItemNumber: 29,\n chineseTranslation: \"豉汁蒸排骨\",\n },\n {\n id: 33,\n name: \"Steamed Pork Patty with Salted Fish\",\n price: 24.95,\n isSpicy: false,\n menuItemNumber: 30,\n chineseTranslation: \"咸鱼蒸肉饼\",\n },\n {\n id: 34,\n name: \"Sliced Beef with Black Bean Sauce\",\n price: 18.95,\n isSpicy: false,\n menuItemNumber: 31,\n chineseTranslation: \"豉汁牛肉\",\n },\n {\n id: 35,\n name: \"Stir-Fried Beef with Green Onions\",\n price: 18.95,\n isSpicy: false,\n menuItemNumber: 32,\n chineseTranslation: \"姜葱牛肉\",\n },\n {\n id: 36,\n name: \"Beef with Satay Sauce\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"沙爹牛肉\",\n menuItemNumber: 33,\n },\n {\n id: 37,\n name: \"Curried Beef\",\n price: 18.95,\n isSpicy: true,\n chineseTranslation: \"咖喱牛肉\",\n menuItemNumber: 34,\n },\n {\n id: 38,\n name: \"Pan-Fried Beef Tenderloin with Gourmet Sauce\",\n price: 23.95,\n isSpicy: false,\n chineseTranslation: \"中式牛柳\",\n menuItemNumber: 35,\n },\n {\n id: 39,\n name: \"Pan-Fried Beef Tenderloin with Black Pepper Sauce\",\n price: 24.95,\n isSpicy: true,\n chineseTranslation: \"黑椒牛柳\",\n menuItemNumber: 36,\n },\n {\n id: 40,\n name: \"Shredded Beef with Ginger Sauce\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"姜汁牛柳丝\",\n menuItemNumber: 37,\n },\n {\n id: 41,\n name: \"Mongolian Beef\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"蒙古牛肉\",\n menuItemNumber: 38,\n },\n {\n id: 42,\n name: \"Beef with Broccoli\",\n price: 17.95,\n isSpicy: false,\n chineseTranslation: \"百家利牛肉\",\n menuItemNumber: 39,\n },\n {\n id: 43,\n name: \"Beef with Gai Lan (Chinese Broccoli)\",\n price: 24.95,\n isSpicy: false,\n chineseTranslation: \"芥蘭牛肉\",\n menuItemNumber: 40,\n },\n {\n id: 44,\n name: \"Stir-Fried Pork Belly with Bell Peppers\",\n price: 19.95,\n isSpicy: false,\n chineseTranslation: \"农家小炒肉\",\n menuItemNumber: 41,\n },\n {\n id: 45,\n name: \"Beef with Oyster Sauce\",\n price: 17.95,\n isSpicy: false,\n chineseTranslation: \"蚝油牛肉\",\n menuItemNumber: 42,\n },\n {\n id: 46,\n name: \"Beef with Tomatoes\",\n price: 17.95,\n isSpicy: false,\n chineseTranslation: \"番茄牛肉\",\n menuItemNumber: 43,\n },\n {\n id: 47,\n name: \"Beef with Snow Peas\",\n price: 19.95,\n isSpicy: false,\n chineseTranslation: \"雪豆牛肉\",\n menuItemNumber: 44,\n },\n {\n id: 48,\n name: \"Beef Brisket with Daikon\",\n price: 24.80,\n isSpicy: false,\n chineseTranslation: \"萝卜牛腩\",\n menuItemNumber: 45,\n },\n {\n id: 49,\n name: \"Mixed Vegetable and Beef\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"杂菜牛肉\",\n menuItemNumber: 46,\n },\n {\n id: 50,\n name: \"Beef in Chili Sauce\",\n price: 23.80,\n isSpicy: true,\n chineseTranslation: \"水煮牛肉\",\n menuItemNumber: 47,\n },\n {\n id: 51,\n name: \"Sliced Beef with Green Bean in Black Bean Sauce\",\n price: 20.95,\n isSpicy: false,\n chineseTranslation: \"豉汁四季豆牛肉\",\n menuItemNumber: 48,\n },\n ],\n },\n {\n menuSectionName: \"CHICKEN AND DUCK - 鸡,鸭肉类\",\n menuSectionItems: [\n {\n id: 52,\n name: \"Szechuan Chicken\",\n price: 17.95,\n isSpicy: true,\n chineseTranslation: \"四川鸡\",\n menuItemNumber: 49,\n },\n {\n id: 53,\n name: \"Curried Chicken\",\n price: 18.50,\n isSpicy: true,\n chineseTranslation: \"咖喱鸡\",\n menuItemNumber: 50,\n },\n {\n id: 100,\n name: \"Spicy Chicken\",\n price: 22.95,\n isSpicy: true,\n chineseTranslation: \"辣子鸡\",\n menuItemNumber: 51,\n },\n {\n id: 54,\n name: \"Sliced Chicken with XO Sauce\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"京都鸡柳\",\n menuItemNumber: 52,\n },\n {\n id: 55,\n name: \"Deep Fried Chicken Wing\",\n price: 16.95,\n isSpicy: false,\n chineseTranslation: \"炸鸡翼\",\n menuItemNumber: 53,\n },\n {\n id: 56,\n name: \"Deep Fried Chicken Wings with Peppery Salt\",\n price: 17.95,\n isSpicy: true,\n chineseTranslation: \"椒盐鸡翼\",\n menuItemNumber: 54,\n },\n {\n id: 57,\n name: \"Deep Fried Breaded Almond Chicken\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"杏仁酥鸡\",\n menuItemNumber: 55,\n },\n {\n id: 58,\n name: \"Lemon Chicken\",\n price: 19.95,\n isSpicy: false,\n chineseTranslation: \"柠檬酥鸡\",\n menuItemNumber: 56,\n },\n {\n id: 59,\n name: \"Chicken in Black Bean Sauce\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"豉汁鸡\",\n menuItemNumber: 57,\n },\n {\n id: 60,\n name: \"Crispy Skin Chicken (Half)\",\n price: 19.95,\n isSpicy: false,\n chineseTranslation: \"脆皮炸汁鸡 (半)\",\n menuItemNumber: 58,\n },\n {\n id: 61,\n name: \"Crispy Skin Chicken (Whole)\",\n price: 36.95,\n isSpicy: false,\n chineseTranslation: \"脆皮炸汁 (整)\",\n menuItemNumber: 58,\n },\n {\n id: 62,\n name: \"BBQ Duck (Half)\",\n price: 26.95,\n isSpicy: false,\n chineseTranslation: \"明炉烧鸭 (半)\",\n menuItemNumber: 59,\n },\n {\n id: 63,\n name: \"BBQ Duck (Whole)\",\n price: 46.95,\n isSpicy: false,\n chineseTranslation: \"明炉烧鸭 (整)\",\n menuItemNumber: 59,\n },\n {\n id: 101,\n name: \"Peking Duck (Half)\",\n price: 45.95,\n isSpicy: false,\n chineseTranslation: \"北京片皮鸭 (半)\",\n menuItemNumber: 60,\n },\n {\n id: 102,\n name: \"Peking Duck (Whole)\",\n price: 69.95,\n isSpicy: false,\n chineseTranslation: \"北京片皮鸭 (整)\",\n menuItemNumber: 60,\n },\n {\n id: 64,\n name: \"Sweet and Sour Chicken Balls\",\n price: 17.95,\n isSpicy: false,\n chineseTranslation: \"酸甜鸡球\",\n menuItemNumber: 61,\n },\n {\n id: 65,\n name: \"Diced Chicken with Vegetable and Cashew Nuts\",\n price: 17.95,\n isSpicy: false,\n chineseTranslation: \"腰果鸡丁\",\n menuItemNumber: 62,\n },\n {\n id: 66,\n name: \"Kung Bo Chicken with Vegetable and Peanuts\",\n price: 17.95,\n isSpicy: false,\n chineseTranslation: \"宫保鸡丁\",\n menuItemNumber: 63,\n },\n {\n id: 67,\n name: \"Empress Chicken (Half)\",\n price: 24.95,\n isSpicy: false,\n chineseTranslation: \"贵妃鸡 (半)\",\n menuItemNumber: 64,\n },\n {\n id: 68,\n name: \"Empress Chicken (Whole)\",\n price: 46.95,\n isSpicy: false,\n chineseTranslation: \"贵妃鸡 (整)\",\n menuItemNumber: 64,\n },\n {\n id: 69,\n name: \"Chicken with Chinese Sausage\",\n price: 24.80,\n isSpicy: false,\n chineseTranslation: \"啫啫滑鸡煲\",\n menuItemNumber: 65,\n },\n ],\n },\n {\n menuSectionName: \"SEAFOOD - 海鲜类\",\n menuSectionItems: [\n {\n id: 70,\n name: \"Sauteed Seafood\",\n price: 31.80,\n isSpicy: false,\n chineseTranslation: \"油泡海鲜\",\n menuItemNumber: 66,\n },\n {\n id: 71,\n name: \"Sauteed Scallops\",\n price: 28.95,\n isSpicy: false,\n chineseTranslation: \"油泡带子\",\n menuItemNumber: 67,\n },\n {\n id: 72,\n name: \"Curried Prawns\",\n price: 24.80,\n isSpicy: true,\n chineseTranslation: \"咖喱虾\",\n menuItemNumber: 68,\n },\n {\n id: 73,\n name: \"Prawn in Black Bean Sauce\",\n price: 24.80,\n isSpicy: false,\n chineseTranslation: \"豉汁虾球\",\n menuItemNumber: 69,\n },\n {\n id: 74,\n name: \"Prawn in Cream Sauce\",\n price: 26.95,\n isSpicy: false,\n chineseTranslation: \"奶油大虾\",\n menuItemNumber: 70,\n },\n {\n id: 75,\n name: \"Peperry Salt Prawns (with shell)\",\n price: 20.75,\n isSpicy: true,\n chineseTranslation: \"椒盐中虾 (带壳)\",\n menuItemNumber: 71,\n },\n {\n id: 76,\n name: \"Peperry Salt Prawns (without shell)\",\n price: 22.75,\n isSpicy: true,\n chineseTranslation: \"椒盐中虾 (没壳)\",\n menuItemNumber: 71,\n },\n {\n id: 77,\n name: \"Szechuan Prawn\",\n price: 24.95,\n isSpicy: true,\n chineseTranslation: \"四川虾球\",\n menuItemNumber: 72,\n },\n {\n id: 78,\n name: \"Tomato Prawns\",\n price: 23.95,\n isSpicy: false,\n chineseTranslation: \"番茄虾球\",\n menuItemNumber: 73,\n },\n {\n id: 79,\n name: \"Deep-Fried Prawns (S)\",\n price: 16.95,\n isSpicy: false,\n chineseTranslation: \"酥炸虾球 (小)\",\n menuItemNumber: 74,\n },\n {\n id: 80,\n name: \"Deep-Fried Prawns (L)\",\n price: 20.95,\n isSpicy: false,\n chineseTranslation: \"酥炸虾球 (大)\",\n menuItemNumber: 74,\n },\n {\n id: 81,\n name: \"Prawns with Snow Peas\",\n price: 24.95,\n isSpicy: false,\n chineseTranslation: \"雪豆虾球\",\n menuItemNumber: 75,\n },\n {\n id: 82,\n name: \"Prawns with Broccoli\",\n price: 20.95,\n isSpicy: false,\n chineseTranslation: \"百家利虾球\",\n menuItemNumber: 76,\n },\n {\n id: 83,\n name: \"Pepperry Salt Squid\",\n price: 24.95,\n isSpicy: true,\n chineseTranslation: \"百家利虾球\",\n menuItemNumber: 77,\n },\n {\n id: 84,\n name: \"Deep-Fried Squid\",\n price: 23.95,\n isSpicy: false,\n chineseTranslation: \"酥炸鲜鱿\",\n menuItemNumber: 78,\n },\n {\n id: 85,\n name: \"Scallops with Vegetables\",\n price: 24.95,\n isSpicy: false,\n chineseTranslation: \"时菜带子\",\n menuItemNumber: 79,\n },\n {\n id: 86,\n name: \"Scallops with Snow Peas\",\n price: 26.80,\n isSpicy: false,\n chineseTranslation: \"雪豆带子\",\n menuItemNumber: 80,\n },\n {\n id: 87,\n name: \"Scallops with Broccoli\",\n price: 23.80,\n isSpicy: false,\n chineseTranslation: \"百家利带子\",\n menuItemNumber: 81,\n },\n {\n id: 88,\n name: \"Squid with Vegetables\",\n price: 23.95,\n isSpicy: false,\n chineseTranslation: \"时菜鲜鱿\",\n menuItemNumber: 82,\n },\n {\n id: 89,\n name: \"Deep-Fried Oyster\",\n price: 23.95,\n isSpicy: false,\n chineseTranslation: \"酥炸生蚝\",\n menuItemNumber: 83,\n },\n {\n id: 90,\n name: \"Oyster with Ginger and Green Onions\",\n price: 26.80,\n isSpicy: false,\n chineseTranslation: \"姜葱生蚝\",\n menuItemNumber: 84,\n },\n {\n id: 91,\n name: \"Rock Cod\",\n price: 22.95,\n isSpicy: false,\n chineseTranslation: \"各式斑块\",\n menuItemNumber: 85,\n },\n // Might need to ask about what the stuff is right now?\n {\n id: 92,\n name: \"Fish Filet and Bean Curd in Hot Pot\",\n price: 24.95,\n isSpicy: false,\n chineseTranslation: \"班球豆腐煲\",\n menuItemNumber: 86,\n },\n {\n id: 93,\n name: \"Black Cod in Black Bean Sauce with tofu\",\n price: 30.80,\n isSpicy: false,\n chineseTranslation: \"豉汁豆腐蒸黑鱼\",\n menuItemNumber: 87,\n },\n {\n id: 94,\n name: \"Peppery Salt Black Fish\",\n price: 28.95,\n isSpicy: true,\n chineseTranslation: \"椒盐黑鱼\",\n menuItemNumber: 88,\n },\n {\n id: 95,\n name: \"Seafood and Mixed Vegetables\",\n price: 26.95,\n isSpicy: false,\n chineseTranslation: \"海鲜杂菜\",\n menuItemNumber: 89,\n },\n {\n id: 96,\n name: \"Fish Filet in Chili Sauce\",\n price: 24.95,\n isSpicy: true,\n chineseTranslation: \"水煮鱼片\",\n menuItemNumber: 90,\n },\n ],\n },\n {\n menuSectionName: \"EGG FOO YUNG AND VEGETABLES - 蔬菜芙蓉类\",\n menuSectionItems: [\n {\n id: 97,\n name: \"House Special Vegetables\",\n price: 20.95,\n isSpicy: false,\n chineseTranslation: \"招牌杂菜\",\n menuItemNumber: 91,\n },\n {\n id: 98,\n name: \"Mixed Vegetables with Oyster Sauce\",\n price: 15.95,\n isSpicy: false,\n chineseTranslation: \"蚝油四蔬\",\n menuItemNumber: 92,\n },\n {\n id: 99,\n name: \"Mixed Vegetables with Black Bean Sauce\",\n price: 15.95,\n isSpicy: false,\n chineseTranslation: \"豉汁四蔬\",\n menuItemNumber: 93,\n },\n {\n id: 103,\n name: \"Stir-Fried Mixed Vegetables\",\n price: 15.95,\n isSpicy: false,\n chineseTranslation: \"清炒四蔬\",\n menuItemNumber: 94,\n },\n {\n id: 104,\n name: \"Mixed Vegetables with Rice Vermicelli Hot Pot\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"杂菜粉丝煲\",\n menuItemNumber: 95,\n },\n {\n id: 105,\n name: \"Beef and Mixed Vegetables\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"牛肉杂菜\",\n menuItemNumber: 96,\n },\n {\n id: 106,\n name: \"BBQ Pork and Mixed Vegetables\",\n price: 16.95,\n isSpicy: false,\n chineseTranslation: \"叉烧杂菜\",\n menuItemNumber: 97,\n },\n {\n id: 107,\n name: \"Minced Pork and Green Bean in Spicy Sauce\",\n price: 19.95,\n isSpicy: true,\n chineseTranslation: \"干煸四季豆\",\n menuItemNumber: 98,\n },\n {\n id: 108,\n name: \"Kai Lan in Garlic Sauce\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"蒜蓉芥籣\",\n menuItemNumber: 99,\n },\n {\n id: 109,\n name: \"Snow Pea Leaf in Garlic Sauce\",\n price: 26.80,\n isSpicy: false,\n chineseTranslation: \"蒜蓉豆苗\",\n menuItemNumber: 100,\n },\n {\n id: 110,\n name: \"Tong Choy in Spicy Bean Curd Sauce\",\n price: 24.95,\n isSpicy: true,\n chineseTranslation: \"椒丝腐乳通菜\",\n menuItemNumber: 101,\n },\n {\n id: 111,\n name: \"Egg Plant in Spicy Sauce\",\n price: 21.80,\n isSpicy: true,\n chineseTranslation: \"鱼香茄子煲\",\n menuItemNumber: 102,\n },\n {\n id: 112,\n name: \"Buddha's Feast\",\n price: 17.80,\n isSpicy: false,\n chineseTranslation: \"罗汉上素\",\n menuItemNumber: 103,\n },\n {\n id: 113,\n name: \"Beef and Bitter Melon in Black Bean Sauce\",\n price: 23.80,\n isSpicy: false,\n chineseTranslation: \"豉汁凉瓜牛肉\",\n menuItemNumber: 104,\n },\n {\n id: 114,\n name: \"Chinese Mushrooms with Vegetables\",\n price: 21.95,\n isSpicy: false,\n chineseTranslation: \"北菇扒菜贍\",\n menuItemNumber: 105,\n },\n {\n id: 115,\n name: \"Shrimp Egg Foo Yung\",\n price: 20.95,\n isSpicy: false,\n chineseTranslation: \"虾芙蓉\",\n menuItemNumber: 106,\n },\n {\n id: 116,\n name: \"House Special Egg Foo Yung\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"招牌芙蓉\",\n menuItemNumber: 107,\n },\n {\n id: 117,\n name: \"BBQ Pork Egg Foo Yung\",\n price: 17.95,\n isSpicy: false,\n chineseTranslation: \"叉烧芙蓉\",\n menuItemNumber: 108,\n },\n {\n id: 118,\n name: \"Chicken Egg Foo Yung\",\n price: 17.95,\n isSpicy: false,\n chineseTranslation: \"鸡芙蓉\",\n menuItemNumber: 109,\n },\n {\n id: 119,\n name: \"Mushroom Egg Foo Yung\",\n price: 15.95,\n isSpicy: false,\n chineseTranslation: \"蘑菇芙蓉\",\n menuItemNumber: 110,\n },\n ],\n },\n {\n menuSectionName: \"TOFU - 豆腐类\",\n menuSectionItems: [\n {\n id: 120,\n name: \"Ma Pao Tofu\",\n price: 18.95,\n isSpicy: true,\n chineseTranslation: \"麻婆豆腐\",\n menuItemNumber: 111,\n },\n {\n id: 121,\n name: \"Braised Tofu with Chinese Mushrooms\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"红烧豆腐\",\n menuItemNumber: 112,\n },\n {\n id: 122,\n name: \"Deep-Fried Tofu with Peppery Salt\",\n price: 16.95,\n isSpicy: true,\n chineseTranslation: \"椒盐豆腐\",\n menuItemNumber: 113,\n },\n {\n id: 123,\n name: \"Assorted Seafood and Meat with Tofu Hot Pot\",\n price: 25.80,\n isSpicy: false,\n chineseTranslation: \"八珍豆腐煲\",\n menuItemNumber: 114,\n },\n {\n id: 124,\n name: \"Diced Chicken and Tofu with Salty Fish Hot Pot\",\n price: 20.80,\n isSpicy: false,\n chineseTranslation: \"咸鱼鸡粒豆腐煲\",\n menuItemNumber: 115,\n },\n {\n id: 125,\n name: \"Egg Tofu with Enoki\",\n price: 19.95,\n isSpicy: false,\n chineseTranslation: \"金菇玉子豆腐煲\",\n menuItemNumber: 116,\n },\n ],\n },\n {\n menuSectionName: \"LIVE LOBSTER & LIVE BC CRAB - 生猛游水龙虾&螃蟹,市价\",\n menuSectionItems: [\n {\n id: 126,\n name:\n \"Peppery Salt, Ginger & Green Onion, Black Bean Sauce, Cream Sauce, Chili Spicy, House Special, Salty Egg Yolk Sauce\",\n price: -1,\n isSpicy: false,\n chineseTranslation: \"椒盐,葱姜,豉汁,奶油,避风塘,秘制,金沙\",\n menuItemNumber: 116,\n },\n ],\n },\n {\n menuSectionName: \"FRIED RICE - 炒饭类\",\n menuSectionItems: [\n {\n id: 127,\n name: \"New King Do Fried Rice\",\n price: 18.50,\n isSpicy: false,\n chineseTranslation: \"新京都炒饭\",\n menuItemNumber: 117,\n },\n {\n id: 128,\n name: \"Seafood-Fried Rice\",\n price: 20.95,\n isSpicy: false,\n chineseTranslation: \"海鲜炒饭\",\n menuItemNumber: 118,\n },\n {\n id: 129,\n name: \"Honeymoon Fried Rice\",\n price: 19.75,\n isSpicy: false,\n chineseTranslation: \"鸳鸯炒饭\",\n menuItemNumber: 119,\n },\n {\n id: 130,\n name: \"Cantonese-Style Fried Rice\",\n price: 23.95,\n isSpicy: false,\n chineseTranslation: \"广东炒饭\",\n menuItemNumber: 120,\n },\n {\n id: 131,\n name: \"Chicken-Fried Rice\",\n price: 16.80,\n isSpicy: false,\n chineseTranslation: \"鸡炒饭\",\n menuItemNumber: 121,\n },\n {\n id: 132,\n name: \"BBQ Pork-Fried Rice\",\n price: 16.95,\n isSpicy: false,\n chineseTranslation: \"叉烧炒饭\",\n menuItemNumber: 122,\n },\n {\n id: 133,\n name: \"Dried Scallops with Egg White Fried Rice\",\n price: 26.80,\n isSpicy: false,\n chineseTranslation: \"瑶柱蛋白炒饭\",\n menuItemNumber: 123,\n },\n {\n id: 134,\n name: \"Prawn-Fried Rice\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"虾炒饭\",\n menuItemNumber: 124,\n },\n {\n id: 135,\n name: \"Mushroom-Fried Rice\",\n price: 14.95,\n isSpicy: false,\n chineseTranslation: \"蘑菇炒饭\",\n menuItemNumber: 125,\n },\n {\n id: 136,\n name: \"Vegetable-Fried Rice\",\n price: 14.95,\n isSpicy: false,\n chineseTranslation: \"杂菜炒饭\",\n menuItemNumber: 126,\n },\n {\n id: 137,\n name: \"Fok Chow Fried Rice\",\n price: 20.95,\n isSpicy: false,\n chineseTranslation: \"福州炒饭\",\n menuItemNumber: 127,\n },\n {\n id: 138,\n name: \"Diced Chicken and Salty Fish Fried Rice\",\n price: 26.80,\n isSpicy: false,\n chineseTranslation: \"咸鱼鸡粒炒饭\",\n menuItemNumber: 128,\n },\n {\n id: 139,\n name: \"Prawn and Scramble Egg Fried Rice\",\n price: 23.95,\n isSpicy: false,\n chineseTranslation: \"滑蛋虾球炒饭\",\n menuItemNumber: 129,\n },\n {\n id: 140,\n name: \"Beef and Tomato on Rice\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"番茄牛肉炒饭\",\n menuItemNumber: 130,\n },\n {\n id: 141,\n name: \"Curry Chicken on Rice\",\n price: 17.95,\n isSpicy: true,\n chineseTranslation: \"咖喱鸡饭\",\n menuItemNumber: 131,\n },\n {\n id: 142,\n name: \"Curry Beef on Rice\",\n price: 17.95,\n isSpicy: true,\n chineseTranslation: \"咖喱牛肉饭\",\n menuItemNumber: 132,\n },\n {\n id: 143,\n name: \"Beef-Fried Rice\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"生炒牛饭\",\n menuItemNumber: 133,\n },\n {\n id: 144,\n name: \"Yang Chow Fried Rice\",\n price: 23.80,\n isSpicy: false,\n chineseTranslation: \"扬州炒饭\",\n menuItemNumber: 134,\n },\n ],\n },\n {\n menuSectionName: \"FRIED NOODLES - CHOW MEIN - 炒粉面类\",\n menuSectionItems: [\n {\n id: 145,\n name: \"Chicken-Fried Noodles\",\n price: 16.95,\n isSpicy: false,\n chineseTranslation: \"鸡炒面\",\n menuItemNumber: 135,\n },\n {\n id: 146,\n name: \"BBQ Pork-Fried Noodles\",\n price: 17.95,\n isSpicy: false,\n chineseTranslation: \"叉烧炒面\",\n menuItemNumber: 136,\n },\n {\n id: 147,\n name: \"House Special Fried Noodles\",\n price: 21.95,\n isSpicy: false,\n chineseTranslation: \"新京都炒面\",\n menuItemNumber: 137,\n },\n {\n id: 148,\n name: \"Beef-Fried Noodles\",\n price: 17.50,\n isSpicy: false,\n chineseTranslation: \"牛肉炒面\",\n menuItemNumber: 138,\n },\n {\n id: 149,\n name: \"Shrimp-Fried Noodles\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"虾仁炒面\",\n menuItemNumber: 139,\n },\n {\n id: 150,\n name: \"Mushroom-Fried Noodles\",\n price: 15.95,\n isSpicy: false,\n chineseTranslation: \"蘑菇炒面\",\n menuItemNumber: 140,\n },\n {\n id: 151,\n name: \"Vegetable-Fried Noodles\",\n price: 15.95,\n isSpicy: false,\n chineseTranslation: \"杂菜炒面\",\n menuItemNumber: 141,\n },\n {\n id: 152,\n name: \"Beef and Tomato-Fried Noodles\",\n price: 19.95,\n isSpicy: false,\n chineseTranslation: \"番茄牛肉面\",\n menuItemNumber: 142,\n },\n {\n id: 153,\n name: \"Curry Beef-Fried Noodles\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"咖喱牛肉面\",\n menuItemNumber: 143,\n },\n {\n id: 154,\n name: \"Curry Chicken-Fried Noodles\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"咖喱鸡面\",\n menuItemNumber: 144,\n },\n {\n id: 155,\n name: \"Shredded Pork-Fried Noodles (Crispy)\",\n price: 17.50,\n isSpicy: false,\n chineseTranslation: \"肉丝脆面\",\n menuItemNumber: 145,\n },\n {\n id: 156,\n name: \"Shredded Chicken-Fried Noodles (Crispy)\",\n price: 17.95,\n isSpicy: false,\n chineseTranslation: \"鸡丝脆面\",\n menuItemNumber: 146,\n },\n {\n id: 157,\n name: \"Cantonese-Style Fried Noodles\",\n price: 24.95,\n isSpicy: false,\n chineseTranslation: \"广东炒面\",\n menuItemNumber: 147,\n },\n {\n id: 158,\n name: \"Seafood-Fried Noodles (Crispy)\",\n price: 24.95,\n isSpicy: false,\n chineseTranslation: \"海鲜脆面\",\n menuItemNumber: 148,\n },\n {\n id: 159,\n name: \"Buddha's Feast Fried Noodles (Crispy)\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"罗汉斋脆面\",\n menuItemNumber: 149,\n },\n {\n id: 160,\n name: \"Pan-Fried Braised E-Fu\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"干烧伊面\",\n menuItemNumber: 150,\n },\n {\n id: 161,\n name: \"Prawn-Fried Noodles (Crispy)\",\n price: 23.95,\n isSpicy: false,\n chineseTranslation: \"虾球脆面\",\n menuItemNumber: 151,\n },\n {\n id: 162,\n name: \"Singapore-Style Fried Vermicelli\",\n price: 19.95,\n isSpicy: false,\n chineseTranslation: \"星洲炒米\",\n menuItemNumber: 152,\n },\n {\n id: 163,\n name: \"Pan-Fried Rice Noodles with Beef\",\n price: 24.95,\n isSpicy: false,\n chineseTranslation: \"干炒牛河\",\n menuItemNumber: 153,\n },\n {\n id: 164,\n name: \"Pan-Fried Rice Noodles with Beef and Vegetables\",\n price: 25.95,\n isSpicy: false,\n chineseTranslation: \"菜远牛河\",\n menuItemNumber: 154,\n },\n {\n id: 165,\n name: \"Rice Noodles with Beef in Black Bean Sauce\",\n price: 24.95,\n isSpicy: false,\n chineseTranslation: \"豉椒牛河\",\n menuItemNumber: 155,\n },\n {\n id: 166,\n name: \"Rice Noodles with Prawns and Scramble Egg\",\n price: 26.95,\n isSpicy: false,\n chineseTranslation: \"滑蛋虾球河\",\n menuItemNumber: 156,\n },\n {\n id: 167,\n name: \"Stir-Fried Rice Noodles in Spicy Sauce\",\n price: 22.95,\n isSpicy: true,\n chineseTranslation: \"炒贵刁\",\n menuItemNumber: 157,\n },\n ],\n },\n {\n menuSectionName: \"SPECIAL COMBO & FAMILY DINNERS - 特别组合 & 家庭晚餐\",\n menuSectionItems: [\n {\n id: 168,\n name:\n \"Three Items Combo For One - Chicken Chow Mein, BBQ, Pork Fried Rice, Sweet & Sour Pork, Beef & Broccoli.\",\n price: 16.95,\n isSpicy: false,\n chineseTranslation:\n \"三样组合 (一人食) - 鸡炒面,叉烧炒饭,咕噜肉,百家利牛肉\",\n menuItemNumber: 0,\n },\n {\n id: 169,\n name:\n \"Four Items Combo For One - Chicken Chow Mein, BBQ, Pork Fried Rice, Sweet & Sour Pork, Beef & Broccoli.\",\n price: 17.95,\n isSpicy: false,\n chineseTranslation:\n \"四样组合 (一人食) - 鸡炒面,叉烧炒饭,咕噜肉,百家利牛肉\",\n menuItemNumber: 0,\n },\n {\n id: 170,\n name:\n \"For Two (A) - Two egg rolls, sweet & sour pork, beef chop suey, and chicken chow mein.\",\n price: 42.95,\n isSpicy: false,\n chineseTranslation: \"两人套餐 - 两个素春卷,咕噜肉,牛肉杂菜,鸡炒面\",\n menuItemNumber: 0,\n },\n {\n id: 171,\n name:\n \"For Two (B) - Two egg rolls, sweet & sour pork, beef and broccoli, and BBQ pork-fried rice.\",\n price: 43.95,\n isSpicy: false,\n chineseTranslation:\n \"两人套餐 - 两个素春卷,咕噜肉,百家利牛肉,叉烧炒饭\",\n menuItemNumber: 0,\n },\n {\n id: 172,\n name:\n \"For Three (A) - Three egg rolls, sweet & sour pork, beef and broccoli, small deep-fried breaded chicken, and BBQ pork-fried rice.\",\n price: 58.95,\n isSpicy: false,\n chineseTranslation:\n \"三人套餐 - 三个素春卷,咕噜肉,百家利牛肉,小份酥鸡,叉烧炒饭\",\n menuItemNumber: 0,\n },\n {\n id: 173,\n name:\n \"For Three (B) - Three egg rolls, sweet & sour pork, beef chop suey, chicken fried noodles, and 12 pieces of deep-fried prawns.\",\n price: 60.95,\n isSpicy: false,\n chineseTranslation:\n \"三人套餐 - 三个素春卷,咕噜肉,牛肉杂菜,鸡炒面,12块油炸大虾\",\n menuItemNumber: 0,\n },\n {\n id: 174,\n name:\n \"For Four (A) - Four egg rolls, sweet & sour pork, wonton soup(8), large deep-fried breaded chicken, beef chop suey, BBQ pork fried-rice, and chicken chow mein.\",\n price: 90.95,\n isSpicy: false,\n chineseTranslation:\n \"四人套餐 - 四个素春卷,咕噜肉,云吞汤,大份酥鸡,牛肉杂菜,叉烧炒粉,鸡炒面\",\n menuItemNumber: 0,\n },\n {\n id: 175,\n name:\n \"For Four (B) - Four egg rolls, honey pork, wonton soup(8), 16 pcs deep-fried prawns, beef and broccoli, BBQ pork-fried rice, and chicken chow mein.\",\n price: 92.95,\n isSpicy: false,\n chineseTranslation:\n \"四人套餐 - 四个素春卷,蜜汁猪,云吞汤,16块炸大虾,百家利牛肉,叉烧炒饭,鸡炒面\",\n menuItemNumber: 0,\n },\n {\n id: 176,\n name:\n \"For Six (A) - Six egg rolls, sweet & sour pork, large deep-fried prawns, lemon chicken, beef chop suey, house special fried-rice, and house special chow mein.\",\n price: 116.95,\n isSpicy: false,\n chineseTranslation:\n \"六人套餐 - 六个素春卷,咕噜肉,炸虾,柠檬鸡,牛肉杂菜,新京都炒面,新京都炒面\",\n menuItemNumber: 0,\n },\n {\n id: 177,\n name:\n \"For Six (B) - Six egg rolls, honey pork, deep-fried breaded chicken, curry prawns, beef and broccoli, yang chow fried rice, and house special chow mein.\",\n price: 120.95,\n isSpicy: false,\n chineseTranslation:\n \"六人套餐 - 六个素春卷,蜜汁猪,酥鸡,咖喱虾,百家利牛肉,扬州炒饭,新京都炒面\",\n menuItemNumber: 0,\n },\n {\n id: 178,\n name:\n \"For Eight - Eight egg rolls, honey pork, curry prawns, sweet & sour chicken, beef chop suey, stir-fried shredded beef tenderloin, chicken in black bean sauce, king do fried rice, house special chow mein.\",\n price: 168.95,\n isSpicy: false,\n chineseTranslation:\n \"八人套餐 - 八个素春卷,蜜汁猪,咖喱虾,甜酸鸡,牛肉杂菜,中式牛柳,豉汁鸡,京都炒饭,招牌炒面\",\n menuItemNumber: 0,\n },\n ],\n },\n {\n menuSectionName: \"CHEF RECOMMENDATION - 厨师推荐\",\n menuSectionItems: [\n {\n id: 179,\n name: \"Lamb hotpot\",\n price: 38.80,\n isSpicy: true,\n chineseTranslation: \"枝竹羊腩煲\",\n menuItemNumber: 158,\n },\n {\n id: 180,\n name: \"Braised Pork Belly\",\n price: 22.80,\n isSpicy: false,\n chineseTranslation: \"东坡肉\",\n menuItemNumber: 159,\n },\n {\n id: 181,\n name: \"Black Pepper Pork Tripe Soup\",\n price: 18.80,\n isSpicy: true,\n chineseTranslation: \"胡椒猪肚煲\",\n menuItemNumber: 160,\n },\n {\n id: 182,\n name: \"Braised Pig's Trotters with Fermented Red Beancurd\",\n price: 19.80,\n isSpicy: false,\n chineseTranslation: \"南乳猪手\",\n menuItemNumber: 161,\n },\n {\n id: 183,\n name: \"Braised Beef Brisket with Radish Hotpot\",\n price: 24.80,\n isSpicy: false,\n chineseTranslation: \"萝卜牛腩煲\",\n menuItemNumber: 162,\n },\n ],\n },\n];\n","// Photo imports\nimport bbq_2_topping_rice from \"./FeatureItemImages/bbq_2_topping_rice.png\";\nimport bbq_3_topping_rice from \"./FeatureItemImages/bbq_3_topping_rice.png\";\nimport soya_chicken_rice from \"./FeatureItemImages/soya_chicken_rice.png\";\nimport bbq_pork_rice from \"./FeatureItemImages/bbq_pork_rice.png\";\nimport bbq_rib_rice from \"./FeatureItemImages/bbq_rib_rice.png\";\nimport roast_pork_rice from \"./FeatureItemImages/roast_pork_rice.png\";\nimport template from \"../kingdo_homepage_background.png\";\nimport soya_chicken from \"./FeatureItemImages/soya_chicken.png\";\nimport bbq_duck_rice from \"./FeatureItemImages/bbq_duck_rice.png\";\n\nexport const featuredItems = {\n menuSectionName: \"FEATURED\",\n menuSectionItems: [\n {\n id: 184,\n name: \"BBQ 2 Topping Rice\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"烧味双拼饭\",\n menuItemNumber: 0,\n pathToPhoto: bbq_2_topping_rice,\n },\n {\n id: 185,\n name: \"Soya Chicken (HALF)\",\n price: 17.95,\n isSpicy: false,\n chineseTranslation: \"油鸡\",\n menuItemNumber: 0,\n pathToPhoto: soya_chicken,\n },\n {\n id: 186,\n name: \"Soya Chicken (WHOLE)\",\n price: 33.95,\n isSpicy: false,\n chineseTranslation: \"油鸡\",\n menuItemNumber: 0,\n pathToPhoto: soya_chicken,\n },\n {\n id: 187,\n name: \"BBQ Pork on Rice\",\n price: 15.95,\n isSpicy: false,\n chineseTranslation: \"蜜汁叉烧饭\",\n menuItemNumber: 0,\n pathToPhoto: bbq_pork_rice,\n },\n {\n id: 188,\n name: \"Roast Pork on Rice\",\n price: 15.95,\n isSpicy: false,\n chineseTranslation: \"脆皮烧肉饭\",\n menuItemNumber: 0,\n pathToPhoto: roast_pork_rice,\n },\n {\n id: 189,\n name: \"BBQ Duck (HALF)\",\n price: 26.95,\n isSpicy: false,\n chineseTranslation: \"明爐烧鸭\",\n menuItemNumber: 0,\n pathToPhoto: template,\n },\n {\n id: 190,\n name: \"BBQ Duck (WHOLE)\",\n price: 46.95,\n isSpicy: false,\n chineseTranslation: \"明爐烧鸭\",\n menuItemNumber: 0,\n pathToPhoto: template,\n },\n {\n id: 191,\n name: \"Roast Pork (LB)\",\n price: 15.95,\n isSpicy: false,\n chineseTranslation: \"脆皮烧肉\",\n menuItemNumber: 0,\n pathToPhoto: template,\n },\n {\n id: 192,\n name: \"BBQ Pork (LB)\",\n price: 13.95,\n isSpicy: false,\n chineseTranslation: \"蜜汁叉烧\",\n menuItemNumber: 0,\n pathToPhoto: template,\n },\n {\n id: 193,\n name: \"Empress Chicken (HALF)\",\n price: 24.95,\n isSpicy: false,\n chineseTranslation: \"贵妃鸡\",\n menuItemNumber: 0,\n pathToPhoto: template,\n },\n {\n id: 194,\n name: \"Empress Chicken (WHOLE)\",\n price: 46.95,\n isSpicy: false,\n chineseTranslation: \"贵妃鸡\",\n menuItemNumber: 0,\n pathToPhoto: template,\n },\n {\n id: 195,\n name: \"BBQ Duck on Rice\",\n price: 16.95,\n isSpicy: false,\n chineseTranslation: \"明爐烧鸭饭\",\n menuItemNumber: 0,\n pathToPhoto: bbq_duck_rice,\n },\n {\n id: 196,\n name: \"Soya Chicken on Rice\",\n price: 13.95,\n isSpicy: false,\n chineseTranslation: \"油鸡饭\",\n menuItemNumber: 0,\n pathToPhoto: soya_chicken_rice,\n },\n {\n id: 197,\n name: \"BBQ 3 Topping Rice\",\n price: 21.95,\n isSpicy: false,\n chineseTranslation: \"烧味三拼饭\",\n menuItemNumber: 0,\n pathToPhoto: bbq_3_topping_rice,\n },\n {\n id: 198,\n name: \"Daily Soup\",\n price: 18.95,\n isSpicy: false,\n chineseTranslation: \"例汤\",\n menuItemNumber: 0,\n pathToPhoto: template,\n },\n {\n id: 199,\n name: \"Stir Fried Vegetables\",\n price: 16.95,\n isSpicy: false,\n chineseTranslation: \"油菜\",\n menuItemNumber: 0,\n pathToPhoto: template,\n },\n ],\n};\n","import React, { Component } from \"react\";\nimport MenuSection from \"./MenuSection\";\nimport { Link, Element, Events, scrollSpy } from \"react-scroll\";\nimport Button from \"@material-ui/core/Button\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport Select from \"@material-ui/core/Select\";\nimport { isMobile } from \"react-device-detect\";\nimport { makeStyles } from \"@material-ui/core/styles\";\nimport Card from \"@material-ui/core/Card\";\nimport CardActions from \"@material-ui/core/CardActions\";\nimport CardContent from \"@material-ui/core/CardContent\";\nimport CardMedia from \"@material-ui/core/CardMedia\";\nimport Typography from \"@material-ui/core/Typography\";\nimport Divider from \"@material-ui/core/Divider\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\n\nimport { menu } from \"./AllMenuItems\";\nimport { featuredItems } from \"./AllFeaturedItems\";\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: isMobile ? 150 : 300,\n maxHeight: isMobile ? 200 : 500,\n },\n media: {\n height: isMobile ? 100 : 230,\n },\n text: {\n fontSize: isMobile ? 12 : 18,\n },\n}));\n\nfunction FeaturedItemCard({ addMenuItemToCart, itemInfo }) {\n const classes = useStyles();\n\n return (\n \n \n \n \n {itemInfo.name}\n \n {itemInfo.chineseTranslation}\n ${itemInfo.price}\n \n \n \n addMenuItemToCart({\n id: itemInfo.id,\n name: itemInfo.name,\n price: itemInfo.price,\n menuItemNumber: itemInfo.menuItemNumber,\n })\n }\n >\n Add to Cart\n \n \n \n );\n}\n\nclass Menu extends Component {\n state = {\n selectedMenuSection: null,\n };\n\n componentDidMount() {\n Events.scrollEvent.register(\"begin\");\n\n Events.scrollEvent.register(\"end\");\n\n scrollSpy.update();\n }\n\n componentWillUnmount() {\n Events.scrollEvent.remove(\"begin\");\n Events.scrollEvent.remove(\"end\");\n }\n\n handleSelect = (event) => {\n this.setState({ selectedMenuSection: event.target.value });\n };\n\n render() {\n if (isMobile) {\n return (\n
\n
\n

\n Please select a section to go to:\n

\n \n \n \n
\n \n {menu.map((menuSection) => (\n \n \n \n ))}\n
\n );\n }\n\n return (\n
\n
\n

\n Please select a section to go to:\n

\n \n \n \n
\n
\n

FEATURED

\n \n \n {featuredItems.menuSectionItems.map((featuredItem) => (\n
\n \n
\n ))}\n
\n
\n\n {menu.map((menuSection) => (\n \n \n \n ))}\n \n );\n }\n}\n\nexport default Menu;\n","import React, { Component } from \"react\";\nimport TopBar from \"./TopBar\";\nimport CartBar from \"../../Cart/CartBar\";\nimport Menu from \"../Menu\";\nimport { Link } from \"react-router-dom\";\nimport Center from \"react-center\";\nimport { isMobile } from \"react-device-detect\";\nimport ScrollToTop from \"react-scroll-to-top\";\n\nclass MenuPage extends Component {\n constructor(props) {\n super(props);\n const items = JSON.parse(sessionStorage.getItem(\"cartItems\"))\n ? JSON.parse(sessionStorage.getItem(\"cartItems\"))\n : [];\n let totalPrice = 0;\n for (const item of items) {\n if (item.price > 0) {\n totalPrice += item.price;\n }\n }\n this.state = {\n foodTransportation: sessionStorage\n .getItem(\"foodTransportMethod\")\n .includes(\"delivery\")\n ? \"delivery\"\n : \"pickup\",\n cartItems: items,\n cartAmount: (Math.round(totalPrice * 100) / 100).toFixed(2),\n };\n }\n\n addMenuItemToCart = (cartItem) => {\n let currentCartItems = this.state.cartItems;\n let currentCartAmount = parseFloat(\n (Math.round(parseFloat(this.state.cartAmount, 10) * 100) / 100).toFixed(2)\n );\n currentCartItems.push(cartItem);\n currentCartAmount += cartItem.price > 0 ? cartItem.price : 0;\n sessionStorage.setItem(\"cartItems\", JSON.stringify(currentCartItems));\n this.setState({\n cartItems: currentCartItems,\n cartAmount: (Math.round(currentCartAmount * 100) / 100).toFixed(2),\n });\n };\n\n render() {\n if (\n !this.state.foodTransportation.includes(\"delivery\") &&\n !this.state.foodTransportation.includes(\"pickup\")\n ) {\n return (\n
\n

\n Please return to the main page here.\n

\n
\n );\n }\n\n return (\n
\n \n \n \n
\n );\n }\n}\n\nexport default MenuPage;\n","import React, { Component } from \"react\";\nimport TopBar from \"../Menu/MenuPage/TopBar\";\nimport ScrollToTop from \"react-scroll-to-top\";\nimport Card from \"@material-ui/core/Card\";\nimport CardActions from \"@material-ui/core/CardActions\";\nimport CardContent from \"@material-ui/core/CardContent\";\nimport Button from \"@material-ui/core/Button\";\nimport Typography from \"@material-ui/core/Typography\";\nimport { Redirect } from \"react-router-dom\";\nimport AddCircleIcon from \"@material-ui/icons/AddCircle\";\nimport RemoveCircleIcon from \"@material-ui/icons/RemoveCircle\";\nimport IconButton from \"@material-ui/core/IconButton\";\nimport { isMobile } from \"react-device-detect\";\n\nexport const parseItemIntoStack = (items) => {\n let map = new Map();\n for (const item of items) {\n if (!map.has(item.id)) {\n map.set(item.id, [item]);\n } else {\n let listOfItemsWithGivenId = map.get(item.id);\n listOfItemsWithGivenId.push(item);\n map.set(item.id, listOfItemsWithGivenId);\n }\n }\n let numberOfItemsCounter = 0;\n let listOfItems = [];\n map.forEach((value, key) => {\n listOfItems.push({\n quantity: value.length,\n item: value[0],\n });\n numberOfItemsCounter += value.length;\n });\n\n return [listOfItems, numberOfItemsCounter];\n};\n\nexport const calculateAmountsGivenStackItems = (stackItems) => {\n if (stackItems.length === 0) {\n return [0, 0, 0];\n }\n let price = 0;\n stackItems.forEach((value) => {\n if (value.item.price > 0) {\n price +=\n value.quantity *\n parseFloat(\n (Math.round(parseFloat(value.item.price, 10) * 100) / 100).toFixed(2)\n );\n }\n });\n\n const subtotalPrice = parseFloat(\n (Math.round(parseFloat(price, 10) * 100) / 100).toFixed(2)\n );\n const taxPrice = parseFloat(\n (Math.round(subtotalPrice * 0.05 * 100) / 100).toFixed(2)\n );\n\n const totalPrice = parseFloat(\n (Math.round(parseFloat(subtotalPrice + taxPrice, 10) * 100) / 100).toFixed(\n 2\n )\n );\n\n return [subtotalPrice, taxPrice, totalPrice];\n};\n\nclass CartPage extends Component {\n constructor(props) {\n super(props);\n\n const storageCartItems = JSON.parse(sessionStorage.getItem(\"cartItems\"))\n ? JSON.parse(sessionStorage.getItem(\"cartItems\"))\n : [];\n\n const [listOfItems, numberOfItemsCounter] = parseItemIntoStack(\n storageCartItems\n );\n\n const [\n subtotalPrice,\n taxPrice,\n totalPrice,\n ] = calculateAmountsGivenStackItems(listOfItems);\n\n let isMarketPrice = false;\n listOfItems.forEach((itemStack) => {\n if (itemStack.item.price < 0) {\n isMarketPrice = true;\n return;\n }\n });\n\n sessionStorage.setItem(\"totalPrice\", totalPrice);\n sessionStorage.setItem(\"subtotalPrice\", subtotalPrice);\n sessionStorage.setItem(\"taxPrice\", taxPrice);\n\n this.state = {\n itemStack: listOfItems,\n subtotalPrice: subtotalPrice,\n taxPrice: taxPrice,\n totalPrice: totalPrice,\n totalNumberOfItems: numberOfItemsCounter,\n foodTransportationMethod: sessionStorage\n .getItem(\"foodTransportMethod\")\n .includes(\"delivery\")\n ? \"delivery\"\n : \"pickup\",\n redirectToOrderConfirmationPage: false,\n buttonDisabled: storageCartItems.length === 0 ? true : false,\n hasMarketPrice: isMarketPrice,\n };\n }\n\n handleRedirectToOrderConfirmationPage = () => {\n this.setState({ redirectToOrderConfirmationPage: true });\n };\n\n handleRemoveItems = (itemId) => {\n let currentStackItems = this.state.itemStack;\n // This creates the new stack of items\n let newStackItems = [];\n currentStackItems.forEach((value) => {\n if (value.item.id !== itemId) {\n newStackItems.push(value);\n }\n });\n // This creates the new cart items\n let newCartItems = [];\n newStackItems.forEach((value) => {\n for (let i = 0; i < value.quantity; i++) {\n newCartItems.push(value.item);\n }\n });\n // Set to session storage\n sessionStorage.setItem(\"cartItems\", JSON.stringify(newCartItems));\n\n // Calculate the new amounts\n const [\n subtotalPrice,\n taxPrice,\n totalPrice,\n ] = calculateAmountsGivenStackItems(newStackItems);\n\n let isMarketPrice = false;\n newStackItems.forEach((value) => {\n if (value.item.price < 0) {\n isMarketPrice = true;\n return;\n }\n });\n\n sessionStorage.setItem(\"totalPrice\", totalPrice);\n sessionStorage.setItem(\"subtotalPrice\", subtotalPrice);\n sessionStorage.setItem(\"taxPrice\", taxPrice);\n\n this.setState({\n buttonDisabled: newStackItems.length === 0,\n itemStack: newStackItems,\n totalNumberOfItems: newCartItems.length,\n subtotalPrice: subtotalPrice,\n taxPrice: taxPrice,\n totalPrice: totalPrice,\n hasMarketPrice: isMarketPrice,\n });\n };\n\n handleIncreaseQuantityByOne = (itemId) => {\n let currentStackItems = this.state.itemStack;\n currentStackItems.forEach((value) => {\n if (value.item.id === itemId) {\n value.quantity++;\n return;\n }\n });\n\n let newCartItems = [];\n currentStackItems.forEach((value) => {\n for (let i = 0; i < value.quantity; i++) {\n newCartItems.push(value.item);\n }\n });\n\n // Set to session storage\n sessionStorage.setItem(\"cartItems\", JSON.stringify(newCartItems));\n\n // Calculate the new amounts\n const [\n subtotalPrice,\n taxPrice,\n totalPrice,\n ] = calculateAmountsGivenStackItems(currentStackItems);\n\n sessionStorage.setItem(\"totalPrice\", totalPrice);\n sessionStorage.setItem(\"subtotalPrice\", subtotalPrice);\n sessionStorage.setItem(\"taxPrice\", taxPrice);\n\n this.setState({\n itemStack: currentStackItems,\n totalNumberOfItems: newCartItems.length,\n subtotalPrice: subtotalPrice,\n taxPrice: taxPrice,\n totalPrice: totalPrice,\n });\n };\n\n handleDecreaseQuantityByOne = (itemId) => {\n let currentStackItems = this.state.itemStack;\n let newStackItems = [];\n let removeItem = false;\n let isMarketPrice = this.state.hasMarketPrice;\n currentStackItems.forEach((value) => {\n if (value.item.id === itemId) {\n value.quantity--;\n if (value.quantity === 0) {\n removeItem = true;\n if (value.item.price < 0) {\n isMarketPrice = false;\n }\n }\n return;\n }\n });\n let updatedStackItems = [];\n\n if (removeItem && currentStackItems.length > 1) {\n currentStackItems.forEach((value) => {\n if (value.item.id !== itemId) {\n newStackItems.push(value);\n }\n });\n updatedStackItems = newStackItems;\n } else if (!removeItem && currentStackItems.length > 0) {\n updatedStackItems = currentStackItems;\n }\n\n let newCartItems = [];\n currentStackItems.forEach((value) => {\n for (let i = 0; i < value.quantity; i++) {\n newCartItems.push(value.item);\n }\n });\n // Set to session storage\n sessionStorage.setItem(\"cartItems\", JSON.stringify(newCartItems));\n // Calculate the new amounts\n const [\n subtotalPrice,\n taxPrice,\n totalPrice,\n ] = calculateAmountsGivenStackItems(updatedStackItems);\n\n sessionStorage.setItem(\"totalPrice\", totalPrice);\n sessionStorage.setItem(\"subtotalPrice\", subtotalPrice);\n sessionStorage.setItem(\"taxPrice\", taxPrice);\n\n this.setState({\n buttonDisabled: updatedStackItems.length === 0,\n itemStack: updatedStackItems,\n totalNumberOfItems: newCartItems.length,\n subtotalPrice: subtotalPrice,\n taxPrice: taxPrice,\n totalPrice: totalPrice,\n hasMarketPrice: isMarketPrice,\n });\n };\n\n render() {\n if (this.state.redirectToOrderConfirmationPage) {\n return (\n \n );\n }\n\n if (isMobile) {\n return (\n
\n \n
\n {this.state.itemStack.length === 0 ? (\n
\n \n You currently don't have any items in your cart.\n \n \n Please add them from the menu page to proceed to checkout.\n \n
\n ) : (\n this.state.itemStack.map((value) => (\n
\n \n \n \n {value.item.name}\n \n \n {value.item.price < 0\n ? \"Market Price\"\n : `$${value.item.price}`}\n \n \n Quantity:\n \n
\n \n {value.quantity}\n \n \n this.handleIncreaseQuantityByOne(value.item.id)\n }\n >\n \n \n \n this.handleDecreaseQuantityByOne(value.item.id)\n }\n >\n \n \n
\n
\n \n this.handleRemoveItems(value.item.id)}\n >\n Delete\n \n \n
\n
\n ))\n )}\n
\n
\n \n \n \n Order Summary (prices subject to change)\n \n \n \n \n Items:\n \n \n {this.state.totalNumberOfItems}\n \n
\n \n \n Subtotal:\n \n \n ${this.state.subtotalPrice}\n \n
\n \n \n Tax (GST):\n \n \n ${this.state.taxPrice}\n \n \n \n \n \n \n \n Total:\n \n \n ${this.state.totalPrice}\n \n \n {this.state.hasMarketPrice ? (\n \n {`One of your items is listed a market price. This means\n that we cannot calculate it at the moment and you will\n receive the total amount paid upon ${\n this.state.foodTransportationMethod === \"delivery\"\n ? \"delivery\"\n : \"pick up\"\n }.\\nIf you would like to know more about the market \n price of your item, please call the restaurant at the phone number above.`}\n \n ) : null}\n \n \n \n \n Confirm Order\n \n \n \n \n \n );\n }\n\n return (\n
\n \n \n \n
\n {this.state.itemStack.length === 0 ? (\n
\n \n You currently don't have any items in your cart.\n \n \n Please add them from the menu page to proceed to checkout.\n \n
\n ) : (\n this.state.itemStack.map((value) => (\n
\n \n \n \n {value.item.name}\n \n \n {value.item.price < 0\n ? \"Market Price\"\n : `$${value.item.price}`}\n \n Quantity:\n
\n \n {value.quantity}\n \n \n this.handleIncreaseQuantityByOne(value.item.id)\n }\n >\n \n \n \n this.handleDecreaseQuantityByOne(value.item.id)\n }\n >\n \n \n
\n
\n \n this.handleRemoveItems(value.item.id)}\n >\n Delete\n \n \n
\n
\n ))\n )}\n
\n \n \n \n \n Order Summary (prices subject to change)\n \n \n \n \n Items:\n \n \n {this.state.totalNumberOfItems}\n \n
\n \n \n Subtotal:\n \n \n ${this.state.subtotalPrice}\n \n \n \n \n Tax (GST):\n \n \n ${this.state.taxPrice}\n \n \n \n \n \n \n \n Total:\n \n \n ${this.state.totalPrice}\n \n \n {this.state.hasMarketPrice ? (\n \n {`One of your items is listed a market price. This means\n that we cannot calculate it at the moment and you will\n receive the total amount paid upon ${\n this.state.foodTransportationMethod === \"delivery\"\n ? \"delivery\"\n : \"pick up\"\n }.\\nIf you would like to know more about the market \n price of your item, please call the restaurant at the phone number above.`}\n \n ) : null}\n \n \n \n \n Confirm Order\n \n \n \n \n \n \n );\n }\n}\n\nexport default CartPage;\n","import React, { Component } from \"react\";\nimport TopBar from \"../Menu/MenuPage/TopBar\";\nimport Typography from \"@material-ui/core/Typography\";\nimport TextField from \"@material-ui/core/TextField\";\nimport Button from \"@material-ui/core/Button\";\nimport PhoneInput from \"material-ui-phone-number\";\nimport { Redirect, Link } from \"react-router-dom\";\nimport Card from \"@material-ui/core/Card\";\nimport CardContent from \"@material-ui/core/CardContent\";\nimport Center from \"react-center\";\nimport Axios from \"axios\";\nimport { parseItemIntoStack } from \"../Cart/CartPage\";\nimport MenuItem from \"@material-ui/core/MenuItem\";\nimport FormControl from \"@material-ui/core/FormControl\";\nimport Select from \"@material-ui/core/Select\";\nimport { isMobile } from \"react-device-detect\";\nimport Snackbar from \"@material-ui/core/Snackbar\";\nimport Alert from \"@material-ui/lab/Alert\";\nimport Modal from \"@material-ui/core/Modal\";\nimport CloseIcon from \"@material-ui/icons/Close\";\nimport IconButton from \"@material-ui/core/IconButton\";\n\n// backend server url\nconst hostEndpoint = process.env.REACT_APP_KINGDO_HOST_ENDPOINT\n ? process.env.REACT_APP_KINGDO_HOST_ENDPOINT\n : \"http://localhost:4000\";\n\nclass OrderConfirmationPage extends Component {\n constructor(props) {\n super(props);\n this.state = {\n firstNameText: \"\",\n lastNameText: \"\",\n phoneNumber: \"\",\n deliveryAddress: \"\",\n city: \"\",\n postalCode: \"\",\n token: props.location.state,\n foodTransportationMethod: sessionStorage\n .getItem(\"foodTransportMethod\")\n .includes(\"delivery\")\n ? \"delivery\"\n : \"pickup\",\n redirectToPlaceOrderConfirmPage: false,\n error: false,\n isModalOpen: false,\n modalMessage: \"\",\n isWithinRange: true, // NOTE: within the 8km range but more than 5km\n isLoading: false,\n errorMessage: \"\",\n withIn5km: true,\n totalPrice: sessionStorage.getItem(\"totalPrice\"),\n subtotalPrice: sessionStorage.getItem(\"subtotalPrice\"),\n taxPrice: sessionStorage.getItem(\"taxPrice\"),\n noValidForDeliveryModalOpen: false,\n note: \"\",\n };\n }\n\n handleFirstNameEdit = (event) => {\n this.setState({\n firstNameText: event.target.value,\n });\n };\n\n handleLastNameEdit = (event) => {\n this.setState({\n lastNameText: event.target.value,\n });\n };\n\n handleNoteEdit = (event) => {\n this.setState({\n note: event.target.value,\n });\n };\n\n handleDeliveryAddressEdit = (event) => {\n this.setState({\n deliveryAddress: event.target.value,\n });\n };\n\n handleCityEdit = (event) => {\n this.setState({\n city: event.target.value,\n });\n };\n\n handlePostalCodeEdit = (event) => {\n this.setState({\n postalCode: event.target.value,\n });\n };\n\n handlePhoneNumberEdit = (value) => {\n this.setState({\n phoneNumber: value.replace(/\\(|\\)|-|\\s/g, \"\"),\n });\n };\n\n handleRedirectToPlaceOrderConfirmPage = async () => {\n try {\n const [stackItems, cartItemsAmount] = parseItemIntoStack(\n JSON.parse(sessionStorage.getItem(\"cartItems\"))\n );\n\n await Axios(`${hostEndpoint}/twilio/sms`, {\n method: \"POST\",\n params: {\n customerPhoneNumber: this.state.phoneNumber,\n firstName: this.state.firstNameText,\n lastName: this.state.lastNameText,\n transportationMethod: this.state.foodTransportationMethod,\n deliveryAddress: this.state.deliveryAddress,\n city: this.state.city,\n postalCode: this.state.postalCode,\n isWithIn5km: this.state.withIn5km,\n totalPrice: this.state.totalPrice,\n subtotalPrice: this.state.subtotalPrice,\n taxPrice: this.state.taxPrice,\n note: this.state.note,\n },\n data: { stackItems, cartItemsAmount },\n });\n\n sessionStorage.removeItem(\"cartItems\");\n this.setState({\n redirectToPlaceOrderConfirmPage: true,\n isLoading: false,\n });\n } catch (error) {\n this.setState({\n errorMessage:\n \"Please check that you have entered your information correctly.\",\n error: true,\n isLoading: false,\n });\n }\n };\n\n handleIsWithinRange = async () => {\n try {\n this.setState({ isLoading: true });\n\n if (\n (this.state.foodTransportationMethod === \"pickup\" &&\n (this.state.firstNameText.length === 0 ||\n this.state.lastNameText.length === 0 ||\n this.state.phoneNumber.length < 3)) ||\n (this.state.foodTransportationMethod === \"delivery\" &&\n (this.state.city.length === 0 ||\n this.state.deliveryAddress.length === 0 ||\n this.state.firstNameText.length === 0 ||\n this.state.lastNameText.length === 0 ||\n this.state.postalCode.length === 0 ||\n this.state.phoneNumber.length < 3))\n ) {\n throw Error(\"missing_inputs\");\n }\n\n if (\n this.state.subtotalPrice < 30 &&\n this.state.foodTransportationMethod === \"delivery\"\n ) {\n throw Error(\"not_valid_for_delivery\");\n }\n\n if (this.state.foodTransportationMethod === \"delivery\") {\n const response = await Axios(`${hostEndpoint}/range`, {\n method: \"GET\",\n params: {\n deliveryAddress: this.state.deliveryAddress,\n city: this.state.city,\n postalCode: this.state.postalCode,\n },\n });\n\n const range = response.data.range;\n\n if (range > 5) {\n if (range > 8) {\n this.setState({\n isWithinRange: false,\n modalMessage:\n \"Sorry but your location exceeds our delivery distance limit. Please change your order to 'Pick Up' to place your order.\",\n isModalOpen: true,\n isLoading: false,\n withIn5km: false,\n });\n } else {\n this.setState({\n isWithinRange: true,\n modalMessage:\n \"Your location is more than 5 km away from us. A delivery fee of $5 is going to be added to your purchase, do you wish to continue?\",\n isModalOpen: true,\n isLoading: false,\n withIn5km: false,\n });\n }\n } else {\n this.setState({ withIn5km: true });\n this.handleRedirectToPlaceOrderConfirmPage();\n }\n } else {\n this.handleRedirectToPlaceOrderConfirmPage();\n }\n } catch (error) {\n if (error.message === \"not_valid_for_delivery\") {\n this.setState({ noValidForDeliveryModalOpen: true, isLoading: false });\n } else if (\n error.message === \"missing_inputs\" ||\n error.response.status === 400\n ) {\n this.setState({\n errorMessage:\n \"Please check that you have entered your information correctly.\",\n error: true,\n isLoading: false,\n });\n } else {\n this.setState({\n errorMessage:\n \"There has been an error with our network. We are working on getting it fixed.\",\n error: true,\n isLoading: false,\n });\n }\n }\n };\n\n handleFoodTransportationMethodChange = (event) => {\n sessionStorage.setItem(\n \"foodTransportMethod\",\n event.target.value === \"delivery\" ? \"delivery\" : \"pickup\"\n );\n this.setState({\n foodTransportationMethod: event.target.value,\n disabled:\n event.target.value === \"delivery\"\n ? true\n : this.state.firstNameText.length === 0 ||\n this.state.phoneNumber.length <= 2 ||\n this.state.lastNameText.length === 0,\n });\n };\n\n handleClose = () => {\n this.setState({ error: false });\n };\n\n handleModalClose = () => {\n this.setState({ isModalOpen: false });\n };\n\n handleModalCloseNotValidForDelivery = () => {\n this.setState({ noValidForDeliveryModalOpen: false });\n };\n\n render() {\n if (this.state.redirectToPlaceOrderConfirmPage) {\n return (\n \n );\n }\n\n if (\n !this.state.token ||\n JSON.parse(sessionStorage.getItem(\"cartItems\")) === null\n ) {\n return (\n
\n

\n Please return to the main page here.\n

\n
\n );\n }\n\n if (isMobile) {\n return (\n
\n \n \n \n \n \n \n Please fill in the following to confirm that you will be\n paying for your order.\n \n \n Your payment will be received upon\n {this.state.foodTransportationMethod === \"delivery\"\n ? \" delivery\"\n : \" pick up\"}\n .\n \n \n You can still change between delivery and pick up here:\n \n \n \n this.handleFoodTransportationMethodChange(event)\n }\n >\n Delivery\n Pick Up\n \n \n
\n \n First Name\n \n \n \n Last Name\n \n this.handleLastNameEdit(event)}\n />\n \n Phone Number\n \n \n {this.state.foodTransportationMethod === \"delivery\" ? (\n \n Address\n \n ) : (\n \"\"\n )}\n {this.state.foodTransportationMethod === \"delivery\" ? (\n \n ) : (\n \"\"\n )}\n {this.state.foodTransportationMethod === \"delivery\" ? (\n \n City\n \n ) : (\n \"\"\n )}\n {this.state.foodTransportationMethod === \"delivery\" ? (\n \n ) : (\n \"\"\n )}\n {this.state.foodTransportationMethod === \"delivery\" ? (\n \n Postal Code\n \n ) : (\n \"\"\n )}\n {this.state.foodTransportationMethod === \"delivery\" ? (\n \n ) : (\n \"\"\n )}\n \n Send a note to the Chef (allergies and etc.)\n \n this.handleNoteEdit(event)}\n />\n \n \n \n Place Order\n \n \n \n \n \n \n \n {this.state.errorMessage}\n \n \n \n \n \n \n \n
\n

\n Your subtotal price must be at least $30 in order for\n delivery. Please add one or more item(s) to your cart.\n

\n
\n \n \n \n \n \n \n \n
\n

{this.state.modalMessage}

\n
\n\n {this.state.isWithinRange ? (\n \n \n Cancel\n \n
\n \n Place Order\n \n \n ) : (\n
\n )}\n \n \n \n );\n }\n\n return (\n
\n \n \n \n \n \n \n Please fill in the following to confirm that you will be\n paying for your order.\n \n \n Your payment will be received upon\n {this.state.foodTransportationMethod === \"delivery\"\n ? \" delivery\"\n : \" pick up\"}\n .\n \n \n You can still change between delivery and pick up here:\n \n \n \n this.handleFoodTransportationMethodChange(event)\n }\n style={{ fontSize: 20 }}\n >\n Delivery\n Pick Up\n \n \n
\n \n First Name\n \n \n \n Last Name\n \n this.handleLastNameEdit(event)}\n />\n \n Phone Number\n \n \n {this.state.foodTransportationMethod === \"delivery\" ? (\n \n Address\n \n ) : (\n \"\"\n )}\n {this.state.foodTransportationMethod === \"delivery\" ? (\n \n ) : (\n \"\"\n )}\n {this.state.foodTransportationMethod === \"delivery\" ? (\n \n City\n \n ) : (\n \"\"\n )}\n {this.state.foodTransportationMethod === \"delivery\" ? (\n \n ) : (\n \"\"\n )}\n {this.state.foodTransportationMethod === \"delivery\" ? (\n \n Postal Code\n \n ) : (\n \"\"\n )}\n {this.state.foodTransportationMethod === \"delivery\" ? (\n \n ) : (\n \"\"\n )}\n \n Send a note to the Chef (allergies and etc.)\n \n this.handleNoteEdit(event)}\n />\n \n \n \n Place Order\n \n \n \n \n \n \n \n {this.state.errorMessage}\n \n \n \n \n \n \n \n
\n

\n Your subtotal price must be at least $30 in order for delivery.\n Please add one or more item(s) to your cart.\n

\n
\n \n \n \n \n \n \n \n
\n

{this.state.modalMessage}

\n
\n\n {this.state.isWithinRange ? (\n \n \n \n Cancel\n \n \n \n \n Place Order\n \n \n \n ) : (\n
\n )}\n \n \n \n );\n }\n}\n\nexport default OrderConfirmationPage;\n","import React, { Component } from \"react\";\nimport TopBar from \"../Menu/MenuPage/TopBar\";\nimport Center from \"react-center\";\nimport { Link } from \"react-router-dom\";\nimport { isMobile } from \"react-device-detect\";\n\nclass Checkout extends Component {\n constructor(props) {\n super(props);\n this.state = {\n token: props.location.state,\n phoneNumber: props.location.phoneNumber,\n foodTransportationMethod: props.location.pathname.includes(\"delivery\")\n ? \"delivery\"\n : \"pick up\",\n };\n }\n\n render() {\n if (!this.state.token) {\n return (\n
\n

\n Please return to the main page here.\n

\n
\n );\n }\n\n if (isMobile) {\n return (\n
\n \n
\n \n

THANK YOU!

\n

\n {`We have sent you a text message to confirm your ${this.state.foodTransportationMethod} order.`}\n

\n

\n Please reply \"CONFIRM\" to your text message so that we can start\n preparing your order. We will see you soon!\n

\n
\n \n \n );\n }\n\n return (\n
\n \n
\n \n

THANK YOU!

\n

\n {`We have sent you a text message to confirm your ${this.state.foodTransportationMethod} order.`}\n

\n

\n Please reply \"CONFIRM\" to your text message so that we can start\n preparing your order. We will see you soon!\n

\n
\n \n \n );\n }\n}\n\nexport default Checkout;\n","import React from \"react\";\nimport { Switch, Route, Link } from \"react-router-dom\";\nimport HomePage from \"../Components/HomePage\";\nimport MenuPage from \"../Components/Menu/MenuPage/MenuPage\";\nimport CartPage from \"../Components/Cart/CartPage\";\nimport OrderConfirmationPage from \"../Components/Checkout/OrderConfirmationPage\";\nimport Checkout from \"../Components/Checkout/Checkout\";\n\nconst NoMatchPage = () => {\n return (\n

\n Please return to the main page here.\n

\n );\n};\n\nconst Root = () => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nexport default Root;\n","import React from \"react\";\nimport ReactDOM from \"react-dom\";\nimport \"./index.css\";\nimport * as serviceWorker from \"./serviceWorker\";\nimport Root from \"./Router/Router\";\nimport { BrowserRouter } from \"react-router-dom\";\n\nReactDOM.render(\n \n \n ,\n document.getElementById(\"root\")\n);\n\n// If you want your app to work offline and load faster, you can change\n// unregister() to register() below. Note this comes with some pitfalls.\n// Learn more about service workers: https://bit.ly/CRA-PWA\nserviceWorker.unregister();\n","module.exports = __webpack_public_path__ + \"static/media/kingdo_homepage_background.99d42f13.png\";"],"sourceRoot":""}