{"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>&nbsp; {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>&nbsp; {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>&nbsp; {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":""}