{"version":3,"sources":["models/index.js","models/schema.js","Loading.js","components/Header.js","components/Footer.js","components/CustomNavbar.js","components/content/home/HomeAbout.js","components/content/home/HomeProduct.js","components/content/Home.js","components/content/About.js","components/content/product/ProductDetailCarousel.js","components/content/product/ProductDetailBody.js","components/content/product/ProductDetailModal.js","components/content/product/ProductDetail.js","components/content/Product.js","components/content/Developing.js","components/content/Contact.js","Content.js","App.js","aws-exports.js","index.js"],"names":["initSchema","PageContent","Product","Category","Loading","className","src","alt","Header","props","pageHeader","React","createRef","item","headerContent","imageUrl","page_image_1","useEffect","window","innerWidth","updateScroll","windowScrollTop","pageYOffset","current","style","transform","addEventListener","removeEventListener","backgroundImage","ref","Container","page_content_1","page_content_2","page_content_3","DarkFooter","footerContent","id","Row","Col","md","Nav","navbar","NavItem","NavLink","href","rel","target","page_image_3","Date","getFullYear","CustomNavbar","useState","navbarColor","setNavbarColor","collapseOpen","setCollapseOpen","updateNavbarColor","document","documentElement","scrollTop","body","onClick","classList","toggle","Navbar","color","expand","NavbarBrand","tag","Link","to","type","Collapse","isOpen","active","UncontrolledDropdown","nav","DropdownToggle","caret","e","preventDefault","DropdownMenu","categories","map","DropdownItem","name","HomeAbout","str","num","aboutContent","lg","length","slice","Button","size","HomeProduct","Card","CardImg","image_url","top","width","height","CardBody","CardTitle","CardText","description","Home","scrollTo","About","page_image_2","ProductDetailCarousel","items","product","activeIndex","setActiveIndex","animating","setAnimating","onExiting","onExited","next","nextIndex","previous","Carousel","CarouselIndicators","onClickHandler","newIndex","CarouselItem","role","ProductDetailBody","cpu_brand","cpu_type","cpu_core","cpu_speed","turbo_boost_speed","memory","memory_type","memory_speed","memory_slot_total","memory_slot_available","ssd_interface","ssd_configuration","ssd_capacity","screen_size","resolution","display_type","has_front_camera","front_camera_resolution","front_camera_feature","speakers","microphone","wlan","wireless","bluetooth","usb","number_of_usb_port","number_of_hdmi_port","number_of_vga_port","number_of_audio_port","keybroad","battery","power_supply","depth","weight","warranty","ProductDetailModal","modal","setModal","Modal","ModalBody","ProductDetail","products","setProducts","a","DataStore","query","p","categoryID","categoryId","is_sale","data","fetchProducts","price","category","setCategory","history","useHistory","fetchCategories","c","content","location","split","pop","listen","Developing","Contact","contactContent","xs","Content","add","remove","exact","path","Footer","App","isLoading","setIsLoading","setCategories","setAboutContent","setHeaderContent","setFooterContent","setContactContent","console","log","fetchContents","contents","page_name","fetchData","listener","Hub","hubData","payload","event","start","awsmobile","Amplify","configure","awsconfig","ReactDOM","render","getElementById"],"mappings":"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","file":"static/js/main.bf9040f5.chunk.js","sourcesContent":["// @ts-check\nimport { initSchema } from '@aws-amplify/datastore';\nimport { schema } from './schema';\n\n\n\nconst { PageContent, Product, Category } = initSchema(schema);\n\nexport {\n PageContent,\n Product,\n Category\n};","export const schema = {\n \"models\": {\n \"PageContent\": {\n \"name\": \"PageContent\",\n \"fields\": {\n \"id\": {\n \"name\": \"id\",\n \"isArray\": false,\n \"type\": \"ID\",\n \"isRequired\": true,\n \"attributes\": []\n },\n \"page_name\": {\n \"name\": \"page_name\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": true,\n \"attributes\": []\n },\n \"page_content_1\": {\n \"name\": \"page_content_1\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"page_image_1\": {\n \"name\": \"page_image_1\",\n \"isArray\": false,\n \"type\": \"AWSURL\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"page_content_2\": {\n \"name\": \"page_content_2\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"page_image_2\": {\n \"name\": \"page_image_2\",\n \"isArray\": false,\n \"type\": \"AWSURL\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"page_content_3\": {\n \"name\": \"page_content_3\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"page_image_3\": {\n \"name\": \"page_image_3\",\n \"isArray\": false,\n \"type\": \"AWSURL\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"page_content_4\": {\n \"name\": \"page_content_4\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"page_image_4\": {\n \"name\": \"page_image_4\",\n \"isArray\": false,\n \"type\": \"AWSURL\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"page_content_5\": {\n \"name\": \"page_content_5\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"page_image_5\": {\n \"name\": \"page_image_5\",\n \"isArray\": false,\n \"type\": \"AWSURL\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"createdAt\": {\n \"name\": \"createdAt\",\n \"isArray\": false,\n \"type\": \"AWSDateTime\",\n \"isRequired\": false,\n \"attributes\": [],\n \"isReadOnly\": true\n },\n \"updatedAt\": {\n \"name\": \"updatedAt\",\n \"isArray\": false,\n \"type\": \"AWSDateTime\",\n \"isRequired\": false,\n \"attributes\": [],\n \"isReadOnly\": true\n }\n },\n \"syncable\": true,\n \"pluralName\": \"PageContents\",\n \"attributes\": [\n {\n \"type\": \"model\",\n \"properties\": {}\n },\n {\n \"type\": \"auth\",\n \"properties\": {\n \"rules\": [\n {\n \"allow\": \"public\",\n \"operations\": [\n \"create\",\n \"update\",\n \"delete\",\n \"read\"\n ]\n }\n ]\n }\n }\n ]\n },\n \"Product\": {\n \"name\": \"Product\",\n \"fields\": {\n \"id\": {\n \"name\": \"id\",\n \"isArray\": false,\n \"type\": \"ID\",\n \"isRequired\": true,\n \"attributes\": []\n },\n \"name\": {\n \"name\": \"name\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": true,\n \"attributes\": []\n },\n \"price\": {\n \"name\": \"price\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": true,\n \"attributes\": []\n },\n \"image_url\": {\n \"name\": \"image_url\",\n \"isArray\": true,\n \"type\": \"AWSURL\",\n \"isRequired\": true,\n \"attributes\": [],\n \"isArrayNullable\": false\n },\n \"is_sale\": {\n \"name\": \"is_sale\",\n \"isArray\": false,\n \"type\": \"Boolean\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"description\": {\n \"name\": \"description\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": true,\n \"attributes\": []\n },\n \"is_sold_out\": {\n \"name\": \"is_sold_out\",\n \"isArray\": false,\n \"type\": \"Boolean\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"cpu_brand\": {\n \"name\": \"cpu_brand\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"cpu_core\": {\n \"name\": \"cpu_core\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"cpu_speed\": {\n \"name\": \"cpu_speed\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"turbo_boost_speed\": {\n \"name\": \"turbo_boost_speed\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"memory\": {\n \"name\": \"memory\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"memory_type\": {\n \"name\": \"memory_type\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"memory_speed\": {\n \"name\": \"memory_speed\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"memory_slot_total\": {\n \"name\": \"memory_slot_total\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"memory_slot_available\": {\n \"name\": \"memory_slot_available\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"ssd_interface\": {\n \"name\": \"ssd_interface\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"cpu_type\": {\n \"name\": \"cpu_type\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"ssd_configuration\": {\n \"name\": \"ssd_configuration\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"screen_size\": {\n \"name\": \"screen_size\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"display_type\": {\n \"name\": \"display_type\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"resolution\": {\n \"name\": \"resolution\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"has_front_camera\": {\n \"name\": \"has_front_camera\",\n \"isArray\": false,\n \"type\": \"Boolean\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"front_camera_resolution\": {\n \"name\": \"front_camera_resolution\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"front_camera_feature\": {\n \"name\": \"front_camera_feature\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"ssd_capacity\": {\n \"name\": \"ssd_capacity\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"video_memory\": {\n \"name\": \"video_memory\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"speakers\": {\n \"name\": \"speakers\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"microphone\": {\n \"name\": \"microphone\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"wlan\": {\n \"name\": \"wlan\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"wireless\": {\n \"name\": \"wireless\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"bluetooth\": {\n \"name\": \"bluetooth\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"usb\": {\n \"name\": \"usb\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"gpu\": {\n \"name\": \"gpu\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"number_of_hdmi_port\": {\n \"name\": \"number_of_hdmi_port\",\n \"isArray\": false,\n \"type\": \"Int\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"number_of_vga_port\": {\n \"name\": \"number_of_vga_port\",\n \"isArray\": false,\n \"type\": \"Int\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"number_of_audio_port\": {\n \"name\": \"number_of_audio_port\",\n \"isArray\": false,\n \"type\": \"Int\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"keybroad\": {\n \"name\": \"keybroad\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"power_supply\": {\n \"name\": \"power_supply\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"number_of_usb_port\": {\n \"name\": \"number_of_usb_port\",\n \"isArray\": false,\n \"type\": \"Int\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"width\": {\n \"name\": \"width\",\n \"isArray\": false,\n \"type\": \"Float\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"depth\": {\n \"name\": \"depth\",\n \"isArray\": false,\n \"type\": \"Float\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"height\": {\n \"name\": \"height\",\n \"isArray\": false,\n \"type\": \"Float\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"weight\": {\n \"name\": \"weight\",\n \"isArray\": false,\n \"type\": \"Float\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"warranty\": {\n \"name\": \"warranty\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"categoryID\": {\n \"name\": \"categoryID\",\n \"isArray\": false,\n \"type\": \"ID\",\n \"isRequired\": true,\n \"attributes\": []\n },\n \"battery\": {\n \"name\": \"battery\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"createdAt\": {\n \"name\": \"createdAt\",\n \"isArray\": false,\n \"type\": \"AWSDateTime\",\n \"isRequired\": false,\n \"attributes\": [],\n \"isReadOnly\": true\n },\n \"updatedAt\": {\n \"name\": \"updatedAt\",\n \"isArray\": false,\n \"type\": \"AWSDateTime\",\n \"isRequired\": false,\n \"attributes\": [],\n \"isReadOnly\": true\n }\n },\n \"syncable\": true,\n \"pluralName\": \"Products\",\n \"attributes\": [\n {\n \"type\": \"model\",\n \"properties\": {}\n },\n {\n \"type\": \"key\",\n \"properties\": {\n \"name\": \"byCategory\",\n \"fields\": [\n \"categoryID\"\n ]\n }\n },\n {\n \"type\": \"auth\",\n \"properties\": {\n \"rules\": [\n {\n \"allow\": \"public\",\n \"operations\": [\n \"create\",\n \"update\",\n \"delete\",\n \"read\"\n ]\n }\n ]\n }\n }\n ]\n },\n \"Category\": {\n \"name\": \"Category\",\n \"fields\": {\n \"id\": {\n \"name\": \"id\",\n \"isArray\": false,\n \"type\": \"ID\",\n \"isRequired\": true,\n \"attributes\": []\n },\n \"name\": {\n \"name\": \"name\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": true,\n \"attributes\": []\n },\n \"description\": {\n \"name\": \"description\",\n \"isArray\": false,\n \"type\": \"String\",\n \"isRequired\": false,\n \"attributes\": []\n },\n \"image_url\": {\n \"name\": \"image_url\",\n \"isArray\": false,\n \"type\": \"AWSURL\",\n \"isRequired\": true,\n \"attributes\": []\n },\n \"Products\": {\n \"name\": \"Products\",\n \"isArray\": true,\n \"type\": {\n \"model\": \"Product\"\n },\n \"isRequired\": false,\n \"attributes\": [],\n \"isArrayNullable\": true,\n \"association\": {\n \"connectionType\": \"HAS_MANY\",\n \"associatedWith\": \"categoryID\"\n }\n },\n \"createdAt\": {\n \"name\": \"createdAt\",\n \"isArray\": false,\n \"type\": \"AWSDateTime\",\n \"isRequired\": false,\n \"attributes\": [],\n \"isReadOnly\": true\n },\n \"updatedAt\": {\n \"name\": \"updatedAt\",\n \"isArray\": false,\n \"type\": \"AWSDateTime\",\n \"isRequired\": false,\n \"attributes\": [],\n \"isReadOnly\": true\n }\n },\n \"syncable\": true,\n \"pluralName\": \"Categories\",\n \"attributes\": [\n {\n \"type\": \"model\",\n \"properties\": {}\n },\n {\n \"type\": \"auth\",\n \"properties\": {\n \"rules\": [\n {\n \"allow\": \"public\",\n \"operations\": [\n \"create\",\n \"update\",\n \"delete\",\n \"read\"\n ]\n }\n ]\n }\n }\n ]\n }\n },\n \"enums\": {},\n \"nonModels\": {},\n \"version\": \"cf4ff19626cffec030b0d4bd0afe47c2\"\n};","import './assets/css/App.css';\n\nfunction Loading() {\n return (\n <div className=\"App\">\n <header className=\"App-header\"> \n <img src=\"logo.gif\" className=\"logo-container\" alt=\"loading\" />\n </header>\n </div>\n );\n}\n\nexport default Loading;\n","import React from \"react\";\n\nimport { Container } from \"reactstrap\";\n\nfunction Header(props) {\n let pageHeader = React.createRef();\n let item = props.headerContent;\n let imageUrl = item.page_image_1;\n\n React.useEffect(() => {\n if (window.innerWidth > 991) {\n const updateScroll = () => {\n let windowScrollTop = window.pageYOffset / 3;\n pageHeader.current.style.transform =\n \"translate3d(0,\" + windowScrollTop + \"px,0)\";\n };\n window.addEventListener(\"scroll\", updateScroll);\n return function cleanup() {\n window.removeEventListener(\"scroll\", updateScroll);\n };\n }\n });\n\n return (\n <>\n <div className=\"page-header clear-filter\">\n <div\n className=\"page-header-image\"\n style={{\n backgroundImage:\n \"url(\" + imageUrl + \")\",\n }}\n ref={pageHeader}\n ></div>\n <Container>\n <div className=\"content-center brand\">\n <h1 className=\"h1-seo\">{item.page_content_1}</h1>\n <h3>{item.page_content_2}</h3>\n </div>\n <h6 className=\"category category-absolute\">\n {item.page_content_3}\n </h6>\n </Container>\n </div>\n </>\n );\n}\n\nexport default Header;\n","/*eslint-disable*/\nimport React from \"react\";\n\nimport { Container, Row, Col, Nav, NavItem, NavLink } from \"reactstrap\";\n\nfunction DarkFooter(props) {\n let item = props.footerContent;\n return (\n <footer id=\"contact\" className=\"footer\" data-background-color=\"black\">\n <Container>\n <Row>\n <Col md=\"8\">\n <Nav className=\"ml-auto\" navbar>\n <NavItem>\n <NavLink \n href={item.page_image_1}\n rel=\"noopener noreferrer\"\n target=\"_blank\" \n >\n <i className=\"now-ui-icons location_pin\"></i> {item.page_content_1}\n </NavLink>\n </NavItem>\n <NavItem>\n <NavLink\n href={`tel:${item.page_content_2}`} \n >\n <i className=\"now-ui-icons tech_mobile\"></i> {item.page_content_2}\n </NavLink>\n </NavItem>\n <NavItem>\n <NavLink\n href={item.page_image_3}\n target=\"_blank\" \n >\n <i className=\"now-ui-icons ui-1_email-85\"></i> {item.page_content_3}\n </NavLink>\n </NavItem>\n </Nav>\n </Col>\n <Col md=\"4\">\n <div className=\"copyright\" id=\"copyright\">\n © Emachines Viet Nam {new Date().getFullYear()}\n </div>\n </Col>\n </Row>\n </Container>\n </footer>\n );\n}\n\nexport default DarkFooter;\n","/*eslint-disable*/\nimport React, { useEffect } from \"react\";\nimport {Link} from 'react-router-dom';\nimport {\n Collapse,\n DropdownToggle,\n DropdownMenu,\n DropdownItem,\n UncontrolledDropdown,\n NavbarBrand,\n Navbar,\n NavItem,\n NavLink,\n Nav,\n Container,\n} from \"reactstrap\";\n\nfunction CustomNavbar(props) {\n\n const [navbarColor, setNavbarColor] = React.useState(\"navbar-transparent\");\n const [collapseOpen, setCollapseOpen] = React.useState(false);\n\n useEffect(() => {\n const updateNavbarColor = () => {\n if (document.documentElement.scrollTop > 399 || document.body.scrollTop > 399) {\n setNavbarColor(\"\");\n } else if (document.documentElement.scrollTop < 400 || document.body.scrollTop < 400) {\n setNavbarColor(\"navbar-transparent\");\n }\n };\n window.addEventListener(\"scroll\", updateNavbarColor);\n return function cleanup() {\n window.removeEventListener(\"scroll\", updateNavbarColor);\n };\n });\n\n return (\n <>\n {collapseOpen ? (\n <div\n id=\"bodyClick\"\n onClick={() => {\n document.documentElement.classList.toggle(\"nav-open\");\n setCollapseOpen(false);\n }}\n />\n ) : null}\n <Navbar className={\"fixed-top \" + navbarColor} color=\"info\" expand=\"lg\">\n <Container>\n <div className=\"navbar-translate\">\n <NavbarBrand\n tag={Link} to=\"/\"\n id=\"navbar-brand\"\n >\n <img src=\"logo.png\" className=\"logo-container\" alt=\"logo\" />\n </NavbarBrand>\n <button\n className=\"navbar-toggler navbar-toggler\"\n onClick={() => {\n document.documentElement.classList.toggle(\"nav-open\");\n setCollapseOpen(!collapseOpen);\n }}\n aria-expanded={collapseOpen}\n type=\"button\"\n >\n <span className=\"navbar-toggler-bar top-bar\"></span>\n <span className=\"navbar-toggler-bar middle-bar\"></span>\n <span className=\"navbar-toggler-bar bottom-bar\"></span>\n </button>\n </div>\n <Collapse\n className=\"justify-content-end\"\n isOpen={collapseOpen}\n navbar\n >\n <Nav navbar>\n <NavItem>\n <NavLink\n active\n tag={Link} to=\"/\"\n >\n <p>Trang chủ</p>\n </NavLink>\n </NavItem>\n <NavItem>\n <NavLink\n tag={Link} to=\"/about\"\n >\n <p>Giá»›i thiệu</p>\n </NavLink>\n </NavItem>\n <UncontrolledDropdown nav>\n <DropdownToggle\n caret\n color=\"default\"\n href=\"#\"\n nav\n onClick={(e) => e.preventDefault()}\n >\n <p>Sản phẩm</p>\n </DropdownToggle>\n <DropdownMenu>\n {props.categories.map(item => (\n <DropdownItem key={`DropdownItem-${item.id}`}\n tag={Link} to={`/product/${item.id}`} \n >\n {item.name}\n </DropdownItem>\n ))}\n </DropdownMenu>\n </UncontrolledDropdown>\n <NavItem>\n <NavLink\n tag={Link} to=\"/developing\"\n >\n <p>Kiến thức</p>\n </NavLink>\n </NavItem>\n <NavItem>\n <NavLink\n tag={Link} to=\"/contact\"\n >\n <p>Liên lạc</p>\n </NavLink>\n </NavItem>\n </Nav>\n </Collapse>\n </Container>\n </Navbar>\n </>\n );\n}\n\nexport default CustomNavbar;\n","import React from \"react\";\nimport { Button, Container, Row, Col } from \"reactstrap\";\nimport {Link} from 'react-router-dom';\n\nfunction HomeAbout(props) {\n\n function shortenContent(str, num) { \n if (typeof str === 'undefined') { \n return str;\n } else {\n if (str.length > num) {\n return str.slice(0, num) + '...';\n } else {\n return str;\n }\n }\n }\n\n let item = props.aboutContent;\n return (\n <>\n <div className=\"section section-nucleo-icons\">\n <Container>\n <Row>\n <Col lg=\"6\" md=\"12\">\n <h2 className=\"title\">GIỚI THIỆU</h2>\n <h5 className=\"description\" style={{ 'text-align': 'justify' }}>\n {shortenContent(item.page_content_1, 380)}\n </h5>\n <Button\n className=\"btn-round mr-1\"\n color=\"primary\"\n tag={Link} to=\"/about\"\n size=\"lg\"\n >\n Tìm hiểu thêm\n </Button>\n </Col>\n <Col lg=\"6\" md=\"12\">\n <div className=\"nucleo-container\">\n <img\n alt=\"...\"\n src={item.page_image_1}\n ></img>\n </div>\n </Col>\n </Row>\n </Container>\n </div>\n </>\n );\n}\n\nexport default HomeAbout;","/* eslint-disable */\nimport React from 'react';\n\nimport { Card, CardImg, CardTitle, CardText, CardBody, Button, Container, Row, Col } from \"reactstrap\";\nimport { EqualHeight, EqualHeightElement } from 'react-equal-height';\nimport {Link} from 'react-router-dom';\n\nfunction HomeProduct(props) {\n\n return (\n <>\n <div className=\"section bg-light\">\n <Container>\n <Row>\n <Col lg=\"6\" md=\"12\">\n <h2 className=\"title\">SẢN PHẨM</h2>\n </Col>\n </Row>\n <Row>\n <EqualHeight>\n {props.categories.map(item => (\n <Col lg=\"4\" key={`HomeProduct-${item.id}`}>\n <Card>\n <EqualHeightElement name=\"CardImage\">\n <CardImg\n alt=\"Category Image\"\n src={item.image_url}\n top\n width=\"100%\"\n height=\"300px\"\n />\n </EqualHeightElement>\n <EqualHeightElement name=\"CardBody\">\n <CardBody>\n <EqualHeightElement name=\"CardTitle\">\n <CardTitle\n tag=\"h3\"\n className=\"font-weight-bold\">\n {item.name}\n </CardTitle>\n </EqualHeightElement>\n <EqualHeightElement name=\"CardText\">\n <CardText>\n {item.description}\n </CardText>\n </EqualHeightElement>\n <EqualHeightElement name=\"CardButton\">\n <Button\n className=\"btn-round\"\n color=\"primary\"\n tag={Link} to={`/product/${item.id}`} \n size=\"lg\" \n >\n Xem thêm\n </Button>\n </EqualHeightElement>\n </CardBody>\n </EqualHeightElement>\n </Card>\n </Col>\n ))}\n </EqualHeight>\n </Row>\n </Container>\n </div>\n </>\n );\n}\nexport default HomeProduct;\n","import React from \"react\";\n\nimport HomeAbout from \"./home/HomeAbout.js\";\nimport HomeProduct from \"./home/HomeProduct.js\";\n\nfunction Home(props) {\n\n React.useEffect(() => {\n\t\twindow.scrollTo(0, 0);\n\t}, []);\n\n return (\n <>\n <HomeAbout aboutContent={props.aboutContent} />\n <HomeProduct categories={props.categories} />\n </>\n );\n}\n\nexport default Home;","import React from \"react\";\nimport { Container, Row, Col } from \"reactstrap\";\n\nfunction About(props) {\n let item = props.aboutContent;\n\n React.useEffect(() => {\n window.scrollTo(0, 700);\n }, []);\n\n return (\n <>\n <div className=\"section section-about-us\">\n <Container>\n <Row>\n <Col className=\"ml-auto mr-auto text-center\" md=\"8\">\n <h2 className=\"title\">Giá»›i thiệu</h2>\n <h5 className=\"description\" style={{ 'text-align': 'justify' }}>\n {item.page_content_1}\n </h5>\n </Col>\n </Row>\n <div className=\"separator separator-primary\"></div>\n <div className=\"section-story-overview\">\n <Row>\n <Col md=\"6\">\n <div\n className=\"image-container image-left\"\n style={{ backgroundImage: `url(${item.page_image_1})` }}\n >\n </div>\n </Col>\n <Col md=\"6\">\n <div\n className=\"image-container image-right\"\n style={{ backgroundImage: `url(${item.page_image_2})` }}\n >\n </div>\n </Col>\n </Row>\n\n <Row style={{ 'margin-top': '80px' }}>\n <Col md=\"6\" style={{ 'margin-bottom': '80px' }}>\n <div\n className=\"image-container\"\n style={{ backgroundImage: `url(${item.page_image_3})` }}\n ></div>\n </Col>\n <Col md=\"6\" style={{ 'text-align': 'justify' }}>\n <h5>\n {item.page_content_2}\n </h5>\n <h5>\n {item.page_content_3}\n </h5>\n </Col>\n </Row>\n </div>\n </Container>\n </div>\n </>\n );\n}\nexport default About;\n\n","/* eslint-disable */\nimport React from 'react';\nimport {\n Row,\n Col,\n Carousel,\n CarouselItem,\n CarouselIndicators,\n} from \"reactstrap\";\n\nfunction ProductDetailCarousel(props) {\n\n let items = props.product.image_url;\n const [activeIndex, setActiveIndex] = React.useState(0);\n const [animating, setAnimating] = React.useState(false);\n const onExiting = () => {\n setAnimating(true);\n };\n const onExited = () => {\n setAnimating(false);\n };\n const next = () => {\n if (animating) return;\n const nextIndex = activeIndex === items.length - 1 ? 0 : activeIndex + 1;\n setActiveIndex(nextIndex);\n };\n const previous = () => {\n if (animating) return;\n const nextIndex = activeIndex === 0 ? items.length - 1 : activeIndex - 1;\n setActiveIndex(nextIndex);\n };\n const goToIndex = (newIndex) => {\n if (animating) return;\n setActiveIndex(newIndex);\n };\n return (\n <>\n <Row className=\"justify-content-center\">\n <Col lg=\"12\" md=\"12\">\n <Carousel\n activeIndex={activeIndex}\n next={next}\n previous={previous}\n >\n <CarouselIndicators\n items={items}\n activeIndex={activeIndex}\n onClickHandler={goToIndex}\n />\n {items.map((item) => {\n return (\n <CarouselItem\n onExiting={onExiting}\n onExited={onExited}\n key={`CarouselItem-${item}`}\n >\n <img key={`CarouselItemImg-${item}`} src={item} alt=\"Product Image\" />\n </CarouselItem>\n );\n })}\n <a\n className=\"carousel-control-prev\"\n data-slide=\"prev\"\n href=\"#pablo\"\n onClick={(e) => {\n e.preventDefault();\n previous();\n }}\n role=\"button\"\n >\n <i className=\"now-ui-icons arrows-1_minimal-left\"></i>\n </a>\n <a\n className=\"carousel-control-next\"\n data-slide=\"next\"\n href=\"#pablo\"\n onClick={(e) => {\n e.preventDefault();\n next();\n }}\n role=\"button\"\n >\n <i className=\"now-ui-icons arrows-1_minimal-right\"></i>\n </a>\n </Carousel>\n </Col>\n </Row>\n </>\n );\n}\n\nexport default ProductDetailCarousel;","import React from \"react\";\n\n// reactstrap components\nimport { Row, Col } from \"reactstrap\";\n\nfunction ProductDetailBody(props) {\n\n let item = props.product;\n return (\n <>\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Công nghệ CPU:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.cpu_brand} {item.cpu_type}\n </Col>\n </Row>\n\n <Row className=\"section-tabs\">\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Số nhân:\n </Col>\n <Col lg=\"7\" md=\"7\" >\n {item.cpu_core}\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Tốc Ä‘á»™ CPU:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.cpu_speed}\n </Col>\n </Row>\n\n <Row className=\"section-tabs align-middle\">\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Tốc Ä‘á»™ tối Ä‘a:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.turbo_boost_speed}\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n RAM:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.memory}\n </Col>\n </Row>\n\n <Row className=\"section-tabs\">\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Loại RAM:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.memory_type}\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Tốc Ä‘á»™ Bus RAM:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.memory_speed}\n </Col>\n </Row>\n\n <Row className=\"section-tabs\">\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Khe RAM:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.memory_slot_total}\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Khe RAM nâng cấp:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.memory_slot_available}\n </Col>\n </Row>\n\n <Row className=\"section-tabs\">\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n á»” cứng:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.ssd_interface} {item.ssd_configuration} {item.ssd_capacity}\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Mà n hình:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.screen_size}\n </Col>\n </Row>\n\n <Row className=\"section-tabs\">\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Äá»™ phân giải:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.resolution}\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Công nghệ mà n hình:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.display_type}\n </Col>\n </Row>\n\n <Row className=\"section-tabs\">\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Camera trÆ°á»›c:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.has_front_camera}\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Äá»™ phân giải camera trÆ°á»›c:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.front_camera_resolution}\n </Col>\n </Row>\n\n <Row className=\"section-tabs\">\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Công nghệ camera:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.front_camera_feature}\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Loa:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.speakers}\n </Col>\n </Row>\n\n <Row className=\"section-tabs\">\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Microphone:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.microphone}\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n WLAN:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.wlan}\n </Col>\n </Row>\n\n <Row className=\"section-tabs\">\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Wireless:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.wireless}\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Kết nối không dây:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.bluetooth}\n </Col>\n </Row>\n\n <Row className=\"section-tabs\">\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n USB:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.usb}\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Số cổng USB:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.number_of_usb_port}\n </Col>\n </Row>\n\n <Row className=\"section-tabs\">\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Số cổng HDMI:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.number_of_hdmi_port}\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Số cổng VGA:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.number_of_vga_port}\n </Col>\n </Row>\n\n <Row className=\"section-tabs\">\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Số cổng Audio:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.number_of_audio_port}\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Bà n phÃm:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.keybroad}\n </Col>\n </Row>\n\n <Row className=\"section-tabs\">\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n PIN:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.battery}\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Nguồn:\n </Col>\n <Col lg=\"7\" md=\"7\">\n {item.power_supply}\n </Col>\n </Row>\n\n <Row className=\"section-tabs\">\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n KÃnh thÆ°á»›c:\n </Col>\n <Col lg=\"7\" md=\"7\">\n Dà i {item.width} - Rá»™ng {item.depth} - Dà y {item.height} - Nặng {item.weight}\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"5\" md=\"5\" className=\"font-weight-bold\">\n Bảo hà nh:\n </Col>\n <Col lg=\"7\" md=\"7\">\n\n {item.warranty}\n\n </Col>\n </Row>\n </>\n );\n}\n\nexport default ProductDetailBody;\n","/* eslint-disable */\nimport React from \"react\";\nimport { Modal, ModalBody, Button, Container } from \"reactstrap\";\n\nimport ProductDetailCarousel from \"./ProductDetailCarousel\";\nimport ProductDetailBody from \"./ProductDetailBody\";\n\nfunction ProductDetailModal(props) {\n\n const [modal, setModal] = React.useState(false);\n\n return (\n <>\n <div>\n <Button\n className=\"btn-round\"\n color=\"primary\"\n size=\"lg\"\n onClick={() => setModal(true)}\n >\n Xem thêm\n </Button>\n <Modal isOpen={modal} toggle={() => setModal(false)}>\n <div className=\"modal-header justify-content-center\">\n <button\n className=\"close\"\n style={{ color: 'black' }}\n type=\"button\"\n onClick={() => setModal(false)}\n >\n <i className=\"now-ui-icons ui-1_simple-remove\"></i>\n </button>\n <h4 className=\"title title-up\">{props.product.name}</h4>\n </div>\n <ModalBody>\n <Container>\n <ProductDetailCarousel product={props.product} />\n <br></br>\n <br></br>\n <ProductDetailBody product={props.product} />\n </Container>\n </ModalBody>\n <div className=\"modal-footer\">\n <Button className=\"btn-round\"\n size=\"lg\"\n target=\"_blank\"\n color=\"danger\"\n href=\"http://m.me/106323714562177\">\n Äặt mua\n </Button>\n </div>\n </Modal>\n </div>\n </>\n );\n}\nexport default ProductDetailModal;\n","/* eslint-disable */\nimport React, { useState } from \"react\";\nimport { Card, CardImg, CardTitle, CardText, CardBody, Button, Container, Row, Col } from \"reactstrap\";\nimport { EqualHeight, EqualHeightElement } from 'react-equal-height';\nimport { Product } from \"../../../models\";\nimport { DataStore } from '@aws-amplify/datastore';\n\nimport ProductDetailModal from \"./ProductDetailModal.js\";\n\nfunction ProductDetail(props) {\n\n const [products, setProducts] = useState([]);\n\n async function fetchProducts() {\n const data = await DataStore.query(Product, p => p.categoryID(\"eq\", props.categoryId).is_sale(\"eq\", false));\n setProducts(data);\n }\n\n React.useEffect(() => {\n fetchProducts();\n }, []);\n\n return (\n <>\n {products.length > 0 ?\n <div className=\"section bg-light\">\n <Container>\n <Row>\n <EqualHeight>\n {products.map(item => (\n <Col lg=\"4\" key={`ProductDetail-${item.id}`}>\n <Card>\n <EqualHeightElement name=\"CardImage\">\n <CardImg\n alt=\"Product Image\"\n src={item.image_url[0]}\n top\n width=\"100%\"\n height=\"250px\"\n />\n </EqualHeightElement>\n <EqualHeightElement name=\"CardBody\">\n <CardBody>\n <EqualHeightElement name=\"CardTitle\">\n <CardTitle\n tag=\"h3\"\n className=\"font-weight-bold\">\n {item.name} {item.is_sale}\n </CardTitle>\n </EqualHeightElement>\n <EqualHeightElement name=\"CardText1\">\n <CardText style={{ color: 'red' }}>\n {item.price} VNÄ\n </CardText>\n </EqualHeightElement>\n <EqualHeightElement name=\"CardText2\">\n <CardText>\n {item.description}\n </CardText>\n </EqualHeightElement>\n <EqualHeightElement name=\"CardButton\">\n < ProductDetailModal product={item} />\n </EqualHeightElement>\n </CardBody>\n </EqualHeightElement>\n </Card>\n </Col>\n ))}\n </EqualHeight>\n </Row>\n </Container>\n </div>\n :\n <div className=\"section bg-light\">\n <Container>\n <Row>\n <p>\n Không có sản phẩm!\n </p>\n </Row>\n </Container>\n </div>\n }\n\n </>\n );\n}\nexport default ProductDetail;\n","import React, { useState } from \"react\";\nimport { useHistory } from 'react-router-dom'\nimport { Container, Row, Col } from \"reactstrap\";\nimport { Category } from \"../../models\";\nimport { DataStore } from '@aws-amplify/datastore';\nimport ProductDetail from \"./product/ProductDetail.js\";\n\nfunction Product() {\n\n const [category, setCategory] = useState([]);\n const history = useHistory()\n\n async function fetchCategories(categoryId) {\n const content = await DataStore.query(Category, c => c.id(\"eq\", categoryId));\n setCategory(content[0]);\n }\n\n React.useEffect(() => {\n let url = window.location.href;\n let lastSegment = url.split(\"/\").pop();\n fetchCategories(lastSegment);\n window.scrollTo(0, 700);\n return history.listen((location) => {\n let url = window.location.href;\n let lastSegment = url.split(\"/\").pop();\n fetchCategories(lastSegment); \n window.scrollTo(0, 700);\n })\n }, [history]);\n\n return (\n <>\n <div className=\"section bg-light\">\n <Container>\n <Row key={`Product-${category.id}`}>\n <Col lg=\"12\" md=\"12\" >\n <h2 className=\"title\">{category.name}</h2>\n </Col>\n <Col lg=\"12\" md=\"12\" >\n <ProductDetail categoryId={category.id} />\n </Col>\n </Row>\n </Container>\n </div>\n </>\n );\n}\n\nexport default Product;","import '../../assets/css/App.css';\nimport React from \"react\";\n\nfunction Developing() {\n\n React.useEffect(() => {\n\t\twindow.scrollTo(0, 700);\n\t}, []);\n\n return (\n <div className=\"App\">\n <header className=\"App-header\"> \n <p>\n Chức năng nà y Ä‘ang được phát triển!\n </p>\n </header>\n </div>\n );\n}\n\nexport default Developing;\n","import React from \"react\";\nimport { Container, Row, Col } from \"reactstrap\";\n\nfunction Contact(props) {\n let item = props.contactContent;\n\n React.useEffect(() => {\n window.scrollTo(0, 600);\n }, []);\n\n return (\n <div className=\"section section-about-us\">\n <Container>\n <Row>\n <Col lg=\"12\" md=\"12\">\n <h2 className=\"title\">E-Machines Việt Nam</h2>\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"2\" md=\"3\" xs=\"4\">\n <h5 className=\"description\">\n <strong>Äịa chỉ:</strong>\n </h5>\n </Col>\n <Col lg=\"10\" md=\"9\" xs=\"8\">\n <h5 className=\"description\">\n {item.page_content_1}\n </h5>\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"2\" md=\"3\" xs=\"4\">\n <h5 className=\"description\">\n <strong>Số Ä‘iện thoại:</strong>\n </h5>\n </Col>\n <Col lg=\"10\" md=\"9\" xs=\"8\">\n <h5 className=\"description\">\n {item.page_content_2}\n </h5>\n </Col>\n </Row>\n\n <Row>\n <Col lg=\"2\" md=\"3\" xs=\"4\">\n\n <h5 className=\"description\">\n <strong>Email:</strong>\n </h5>\n </Col>\n <Col lg=\"10\" md=\"9\" xs=\"8\">\n\n <h5 className=\"description\">\n {item.page_content_3}\n </h5>\n </Col>\n </Row>\n </Container>\n </div >\n );\n}\n\nexport default Contact;\n\n","import React from \"react\";\nimport { Route, Redirect } from \"react-router-dom\";\n\nimport Header from \"./components/Header.js\";\nimport Footer from \"./components/Footer.js\";\nimport CustomNavbar from \"./components/CustomNavbar.js\";\n\nimport Home from \"./components/content/Home.js\";\nimport About from \"./components/content/About.js\";\nimport Product from \"./components/content/Product.js\";\nimport Developing from \"./components/content/Developing.js\";\nimport Contact from \"./components/content/Contact.js\";\n\nfunction Content(props) {\n\n React.useEffect(() => {\n document.body.classList.add(\"index-page\");\n document.body.classList.add(\"sidebar-collapse\");\n document.documentElement.classList.remove(\"nav-open\");\n window.scrollTo(0, 0);\n document.body.scrollTop = 0;\n return function cleanup() {\n document.body.classList.remove(\"index-page\");\n document.body.classList.remove(\"sidebar-collapse\");\n };\n }, []);\n\n return (\n <>\n <CustomNavbar categories={props.categories} />\n <div className=\"wrapper\">\n <Header headerContent={props.headerContent} />\n <div className=\"main\">\n <Route exact path=\"/\">\n <Home categories={props.categories}\n aboutContent={props.aboutContent} />\n </Route>\n <Route path=\"/about\">\n <About aboutContent={props.aboutContent} />\n </Route>\n <Route path=\"/product\">\n <Product />\n </Route>\n <Route path=\"/developing\">\n <Developing />\n </Route>\n <Route path=\"/contact\">\n <Contact contactContent={props.contactContent}/>\n </Route>\n <Redirect to=\"/\" />\n </div>\n <Footer footerContent={props.footerContent}/>\n </div>\n </>\n );\n}\n\nexport default Content;","/*eslint-disable*/\nimport React, { useState } from \"react\";\n\nimport { Category } from \"./models\";\nimport { PageContent } from \"./models\";\nimport { DataStore } from '@aws-amplify/datastore';\nimport { Hub } from \"@aws-amplify/core\";\n\nimport Loading from \"./Loading.js\";\nimport Content from \"./Content.js\";\n\nfunction App() {\n\n\tconst [isLoading, setIsLoading] = useState(true);\n\tconst [categories, setCategories] = useState([]);\n\tconst [aboutContent, setAboutContent] = useState([]);\n\tconst [headerContent, setHeaderContent] = useState([]);\n\tconst [footerContent, setFooterContent] = useState([]);\n\tconst [contactContent, setContactContent] = useState([]);\n\n\tasync function fetchCategories() {\n\t\tconst data = await DataStore.query(Category);\n\t\tsetCategories(data);\n\t\tconsole.log(\"fetchCategories\")\n\t}\n\n\tasync function fetchContents() {\n\t\tconst contents = await DataStore.query(PageContent);\n\t\tfor (const content of contents) {\n\t\t\tif (content.page_name === \"about\") {\n\t\t\t\tsetAboutContent(content);\n\t\t\t} else if (content.page_name === \"header\") {\n\t\t\t\tsetHeaderContent(content);\n\t\t\t} else if (content.page_name === \"footer\") {\n\t\t\t\tsetFooterContent(content);\n\t\t\t} else if (content.page_name === \"contact\") {\n\t\t\t\tsetContactContent(content);\n\t\t\t} else {\n\t\t\t\tconsole.log(\"Welcome to Emachinesvn!!!\");\n\t\t\t}\n\t\t}\n\t\tconsole.log(\"fetchContents\")\n\t}\n\n\tReact.useEffect(() => {\n\t\tconst fetchData = async () => {\n\t\t\tawait fetchCategories();\n\t\t\tawait fetchContents();\n\t\t\tsetIsLoading(false);\n\t\t};\n\n\t\tconst listener = Hub.listen(\"datastore\", async hubData => {\n\t\t\tconst { event, data } = hubData.payload;\n\t\t\tif (event === \"ready\") {\n\t\t\t\tconsole.log(\"ready\")\n\t\t\t\tfetchData();\n\t\t\t}\n\t\t})\n\n\t\tDataStore.start();\n\t\treturn () => {\n\t\t\tlistener();\t\t\n\t\t};\t\t\n\t}, []);\n\n\n\treturn (\n\t\t<>\n\t\t\t{isLoading ?\n\t\t\t\t<Loading />\n\t\t\t\t:\n\t\t\t\t<Content\n\t\t\t\t\tcategories={categories}\n\t\t\t\t\taboutContent={aboutContent}\n\t\t\t\t\theaderContent={headerContent}\n\t\t\t\t\tfooterContent={footerContent}\n\t\t\t\t\tcontactContent={contactContent}\n\t\t\t\t/>\n\t\t\t}\n\t\t</>\n\t);\n}\n\nexport default App;","/* eslint-disable */\n// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.\n\nconst awsmobile = {\n \"aws_project_region\": \"ap-southeast-1\",\n \"aws_appsync_graphqlEndpoint\": \"https://5vxlasp26fhb7k5kjhzrr64zc4.appsync-api.ap-southeast-1.amazonaws.com/graphql\",\n \"aws_appsync_region\": \"ap-southeast-1\",\n \"aws_appsync_authenticationType\": \"API_KEY\",\n \"aws_appsync_apiKey\": \"da2-qf72lmiv5nhlthhqjba67xn3ca\",\n \"aws_cognito_identity_pool_id\": \"ap-southeast-1:ff407f78-584c-465c-95fa-daf43db176e7\",\n \"aws_cognito_region\": \"ap-southeast-1\",\n \"aws_user_pools_id\": \"ap-southeast-1_dGIQXq3TR\",\n \"aws_user_pools_web_client_id\": \"75doav8f31a0tmo1u291te8k7n\",\n \"oauth\": {},\n \"aws_cognito_username_attributes\": [\n \"EMAIL\"\n ],\n \"aws_cognito_social_providers\": [],\n \"aws_cognito_signup_attributes\": [\n \"EMAIL\"\n ],\n \"aws_cognito_mfa_configuration\": \"OFF\",\n \"aws_cognito_mfa_types\": [\n \"SMS\"\n ],\n \"aws_cognito_password_protection_settings\": {\n \"passwordPolicyMinLength\": 8,\n \"passwordPolicyCharacters\": [\n \"REQUIRES_LOWERCASE\",\n \"REQUIRES_NUMBERS\",\n \"REQUIRES_SYMBOLS\",\n \"REQUIRES_UPPERCASE\"\n ]\n },\n \"aws_cognito_verification_mechanisms\": [\n \"EMAIL\"\n ],\n \"aws_user_files_s3_bucket\": \"emachinesvn-storage-d3ufw3wca6pbi2113626-staging\",\n \"aws_user_files_s3_bucket_region\": \"ap-southeast-1\"\n};\n\n\nexport default awsmobile;\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport { BrowserRouter } from \"react-router-dom\";\nimport \"./assets/css/bootstrap.min.css\";\nimport \"./assets/css/style.css\";\nimport \"./assets/scss/now-ui-kit.scss\";\n\nimport App from './App.js';\n\nimport Amplify from 'aws-amplify';\nimport \"@aws-amplify/ui-react/styles.css\";\nimport { AmplifyProvider } from \"@aws-amplify/ui-react\";\nimport awsconfig from './aws-exports';\nAmplify.configure(awsconfig);\n\nReactDOM.render(\n\t<AmplifyProvider>\n\t\t<BrowserRouter>\n\t\t\t<App />\n\t\t</BrowserRouter>\n\t</AmplifyProvider>,\n\tdocument.getElementById('root')\n);"],"sourceRoot":""}