Commit 1f2eae00 authored by Kim, Subin's avatar Kim, Subin
Browse files

AdminPage

parent 0d3b4406
[{"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\index.js":"1","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\reportWebVitals.js":"2","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\App.js":"3","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Login.js":"4","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Admin.js":"5","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Signup.js":"6","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Home.js":"7","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\ShoppingCart.js":"8","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Payment.js":"9","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Components\\MainNav.js":"10","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Components\\SubNav.js":"11","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Components\\Pagination.js":"12","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\ProductsRegist.js":"13"},{"size":1364,"mtime":1609237678376,"results":"14","hashOfConfig":"15"},{"size":375,"mtime":1609228982944,"results":"16","hashOfConfig":"15"},{"size":528,"mtime":499162500000,"results":"17","hashOfConfig":"15"},{"size":299,"mtime":1609228981316,"results":"18","hashOfConfig":"15"},{"size":4826,"mtime":1609236815513,"results":"19","hashOfConfig":"15"},{"size":1463,"mtime":1609237678361,"results":"20","hashOfConfig":"15"},{"size":6208,"mtime":1609237678279,"results":"21","hashOfConfig":"15"},{"size":4675,"mtime":1609237678340,"results":"22","hashOfConfig":"15"},{"size":6324,"mtime":1609237678326,"results":"23","hashOfConfig":"15"},{"size":1188,"mtime":1609228980628,"results":"24","hashOfConfig":"15"},{"size":5929,"mtime":1609228980995,"results":"25","hashOfConfig":"15"},{"size":533,"mtime":1609228980905,"results":"26","hashOfConfig":"15"},{"size":319,"mtime":1609228981879,"results":"27","hashOfConfig":"15"},{"filePath":"28","messages":"29","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"zu2uto",{"filePath":"30","messages":"31","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},{"filePath":"33","messages":"34","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"35","messages":"36","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"37","usedDeprecatedRules":"32"},{"filePath":"38","messages":"39","errorCount":0,"warningCount":5,"fixableErrorCount":0,"fixableWarningCount":0,"source":"40","usedDeprecatedRules":"32"},{"filePath":"41","messages":"42","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"43","usedDeprecatedRules":"32"},{"filePath":"44","messages":"45","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"46","usedDeprecatedRules":"32"},{"filePath":"47","messages":"48","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"49","usedDeprecatedRules":"32"},{"filePath":"50","messages":"51","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"52","usedDeprecatedRules":"32"},{"filePath":"53","messages":"54","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"55","usedDeprecatedRules":"32"},{"filePath":"56","messages":"57","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"58","usedDeprecatedRules":"32"},{"filePath":"59","messages":"60","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"61","usedDeprecatedRules":"32"},{"filePath":"62","messages":"63","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\index.js",[],"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\reportWebVitals.js",[],["64","65"],"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\App.js",[],"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Login.js",["66","67","68"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport MainNav from '../Components/MainNav';\r\nimport SubNav from '../Components/SubNav';\r\nfunction Login() {\r\n\r\n return (\r\n <div>\r\n <MainNav />\r\n <SubNav />\r\n </div>\r\n )\r\n}\r\n\r\nexport default Login","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Admin.js",["69","70","71","72","73"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport MainNav from '../Components/MainNav';\r\nimport SubNav from '../Components/SubNav';\r\nimport Pagination from '../Components/Pagination';\r\nimport search from '../search.svg';\r\nimport { Row, Col, Form, FormControl, Button, Card } from 'react-bootstrap';\r\n\r\nfunction Admin() {\r\n\r\n return (\r\n <div>\r\n <MainNav />\r\n <SubNav />\r\n <Row className=\"justify-content-end mt-5 mr-3\">\r\n <Col md={4} sm={5} xs={8} as={Form} inline className=\"justify-content-end\">\r\n <FormControl type=\"text\" placeholder=\"Search\" className=\"mr-1\" />\r\n <Button bg=\"dark\" variant=\"dark\" type=\"submit\" className=\"px-2\">\r\n <img src={search} width=\"20\" height=\"20\" />\r\n </Button>\r\n </Col>\r\n <Col sm={2} xs={3} as={Button} variant=\"dark\" type=\"button\" href=\"/:id/productsregist\">상품 등록</Col>\r\n </Row>\r\n <Row className=\"mt-5 m-auto justify-content-start\">\r\n <Card className=\"m-4\" style={{width: \"18rem\"}}>\r\n <Card.Img variant=\"top\" src=\"https://img.sonyunara.com/files/goods/67460/1607053816_0.jpg\" />\r\n <Card.Body>\r\n <Card.Title>케이시앵글부츠(SH)</Card.Title>\r\n <Card.Text>\r\n 재고: 8\r\n 구매자 수: 10\r\n </Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"m-4\" style={{width: \"18rem\"}}>\r\n <Card.Img variant=\"top\" src=\"https://img.sonyunara.com/files/goods/48705/1552562469_0.jpg\" />\r\n <Card.Body>\r\n <Card.Title>메리제인플랫(SH)</Card.Title>\r\n <Card.Text>\r\n 재고: 20\r\n 구매자 수: 60\r\n </Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"m-4\" style={{width: \"18rem\"}}>\r\n <Card.Img variant=\"top\" src=\"https://img.sonyunara.com/files/goods/53386/1567390097_2.jpg\" />\r\n <Card.Body>\r\n <Card.Title>솔티드스니커즈(SH)</Card.Title>\r\n <Card.Text>\r\n 재고: 34\r\n 구매자 수: 5\r\n </Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"m-4\" style={{width: \"18rem\"}}>\r\n <Card.Img variant=\"top\" src=\"https://img.sonyunara.com/files/goods/61286/1587540563_0.jpg\" />\r\n <Card.Body>\r\n <Card.Title>버켄슬리퍼(SH)</Card.Title>\r\n <Card.Text>\r\n 재고:\r\n 구매자 수:\r\n </Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"m-4\" style={{width: \"18rem\"}}>\r\n <Card.Img variant=\"top\" src=\"https://hotping.co.kr/web/product/big/202011/b8f4c6471955b80fc3991b7d6df8926a.jpg\" />\r\n <Card.Body>\r\n <Card.Title>크레센도 하이힐펌프스</Card.Title>\r\n <Card.Text>\r\n 재고: 35\r\n 구매자 수: 70\r\n </Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"m-4\" style={{width: \"18rem\"}}>\r\n <Card.Img variant=\"top\" src=\"https://hotping.co.kr/web/product/big/202011/888e4e8d6a2c2e7da385b079151fcba2.jpg\" />\r\n <Card.Body>\r\n <Card.Title>어텀솔져1cm 스웨이드로퍼</Card.Title>\r\n <Card.Text>\r\n 재고: 40\r\n 구매자 수: 30\r\n </Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"m-4\" style={{width: \"18rem\"}}>\r\n <Card.Img variant=\"top\" src=\"https://hotping.co.kr/web/product/big/202007/3308564012eb14e6c11ed621fa7555fb.jpg\" />\r\n <Card.Body>\r\n <Card.Title>포웰3.5cm 스니커즈</Card.Title>\r\n <Card.Text>\r\n 재고: 15\r\n 구매자 수: 50\r\n </Card.Text>\r\n </Card.Body>\r\n </Card>\r\n </Row>\r\n <Pagination />\r\n </div>\r\n\r\n )\r\n}\r\n\r\nexport default Admin","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Signup.js",["74","75","76","77"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\n<<<<<<< HEAD\r\nimport MainNav from '../Components/MainNav';\r\nimport SubNav from '../Components/SubNav';\r\n=======\r\nimport Nav1 from '../Components/MainNav';\r\nimport Nav2 from '../Components/SubNav';\r\n>>>>>>> origin/jiwon\r\n\r\nfunction Signup() {\r\n\r\n\r\n return (\r\n <div class=\"form-container\">\r\n <MainNav />\r\n <SubNav />\r\n <form id=\"form\" class=\"form\">\r\n <h1>회원가입</h1>\r\n <div class=\"form-control\">\r\n <label for=\"id\">아이디</label>\r\n <input type=\"text\" id=\"id\" placeholder=\"아이디를 입력하세요\"></input>\r\n\r\n <label for=\"name\">본명</label>\r\n <input type=\"text\" id=\"name\" placeholder=\"본명을 입력하세요\"></input>\r\n\r\n <label for=\"password\">비밀번호</label>\r\n <input type=\"password\" id=\"password\" placeholder=\"비밀번호를 입력하세요\"></input>\r\n\r\n <label for=\"password2\">비밀번호 확인</label>\r\n <input type=\"password\" id=\"password2\" placeholder=\"비밀번호를 한번 더 입력하세요\"></input>\r\n\r\n <label for=\"tel\">휴대폰 번호</label>\r\n <input type=\"text\" id=\"tel\" placeholder=\"휴대폰 번호를 입력하세요\"></input>\r\n\r\n <label for=\"add\">주소</label>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n )\r\n}\r\n\r\nexport default Signup","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Home.js",["78","79","80"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport MainNav from '../Components/MainNav';\r\nimport SubNav from '../Components/SubNav';\r\n\r\nfunction Home() {\r\n\r\n return (\r\n <div>\r\n <MainNav />\r\n <SubNav />\r\n </div>\r\n )\r\n}\r\n\r\nexport default Home","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\ShoppingCart.js",["81","82","83","84","85","86"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport MainNav from '../Components/MainNav';\r\nimport SubNav from '../Components/SubNav';\r\n\r\nfunction ShoppingCart() {\r\n\r\n return (\r\n <div>\r\n <MainNav />\r\n <SubNav />\r\n </div>\r\n )\r\n}\r\n\r\nexport default ShoppingCart","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Payment.js",["87","88","89"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport MainNav from '../Components/MainNav';\r\nimport SubNav from '../Components/SubNav';\r\n\r\nfunction Payment() {\r\n\r\n return (\r\n <div>\r\n <MainNav />\r\n <SubNav />\r\n </div>\r\n )\r\n}\r\n\r\nexport default Payment","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Components\\MainNav.js",["90","91","92","93","94","95"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport { Navbar, Nav } from 'react-bootstrap';\r\nimport logo from '../footprint.svg';\r\nimport cart from '../cart.svg';\r\nimport option from '../option.svg';\r\n\r\nfunction MainNav() {\r\n function handleClick() {\r\n alert('로그아웃이 완료되었습니다.')\r\n }\r\n\r\n return (\r\n <Navbar fixed=\"top\" bg=\"dark\" variant=\"dark\" style={{position: \"sticky\"}}>\r\n <Navbar.Brand href=\"/home\">\r\n <img src={logo} width=\"23\" height=\"23\" />\r\n {' '}KU#\r\n </Navbar.Brand>\r\n <Nav className=\"justify-content-end\">\r\n <Nav.Link href=\"/login\">Login</Nav.Link>\r\n <Nav.Link href=\"/signup\">Signup</Nav.Link>\r\n <Nav.Link href=\"/shoppingcart\">\r\n <img src={cart} width=\"30\" height=\"30\" />\r\n </Nav.Link>\r\n <Nav.Link onClick={() => handleClick()}>Logout</Nav.Link>\r\n <Nav.Link href=\"/admin/:id\">\r\n <img src={option} width=\"30\" height=\"30\" />\r\n </Nav.Link>\r\n </Nav>\r\n </Navbar>\r\n )\r\n}\r\n\r\nexport default MainNav","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Components\\SubNav.js",["96","97"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Nav, NavDropdown } from 'react-bootstrap';\r\n\r\nfunction SubNav() {\r\n const [toggle, setToggle] = useState({ \"dress\": false, \"outer\": false, \"top\": false, \"pants\": false, \"skirt\": false, \"training\": false, \"shoes\": false });\r\n\r\n function handleMouseEnter(id) {\r\n setToggle({ [id]: true })\r\n }\r\n\r\n function handleMouseLeave(id) {\r\n setToggle({ [id]: false })\r\n }\r\n\r\n function handleToggle(id) {\r\n setToggle({ [id]: !toggle[`${id}`] })\r\n }\r\n\r\n function handleClick(url) {\r\n return <Redirect to={url} />\r\n }\r\n\r\n return (\r\n <Nav fixed=\"top\" className=\"flex-nowrap\">\r\n <NavDropdown title=\"DRESS\" onMouseEnter={() => handleMouseEnter(\"dress\")} onMouseLeave={() => handleMouseLeave(\"dress\")} show={toggle.dress} toggle={() => handleToggle(\"dress\")} onClick={() => handleClick(\"/dress\")}>\r\n <NavDropdown.Item href=\"/dress/long\">LONG DRESS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/dress/short\">SHORT DRESS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/dress/knit\">KNIT DRESS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/dress/shirt\">SHIRT DRESS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/dress/pattern\">PATTERN DRESS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/dress/bustier\">BUSTIER DRESS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/dress/two-piece\">TWO-PIECE DRESS</NavDropdown.Item>\r\n </NavDropdown>\r\n <NavDropdown title=\"OUTER\" onMouseEnter={() => handleMouseEnter(\"outer\")} onMouseLeave={() => handleMouseLeave(\"outer\")} show={toggle.outer} toggle={() => handleToggle(\"outer\")} onClick={() => handleClick(\"/outer\")}>\r\n <NavDropdown.Item href=\"/outer/padded-jacket\">PADDED JACKET</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/outer/jacket\">JACKET</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/outer/jumper\">JUMPER</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/outer/coat\">COAT</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/outer/fleece\">FLEECE</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/outer/cardigan_vest\">CARDIGAN / VEST</NavDropdown.Item>\r\n </NavDropdown>\r\n <NavDropdown title=\"TOP\" onMouseEnter={() => handleMouseEnter(\"top\")} onMouseLeave={() => handleMouseLeave(\"top\")} show={toggle.top} toggle={() => handleToggle(\"top\")} onClick={() => handleClick(\"/top\")}>\r\n <NavDropdown.Item href=\"/top/knit\">KNIT</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/top/hoody\">HOODY</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/top/blouse\">BLOUSE</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/top/shirt\">SHIRT</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/top/sweatshirt\">SWEATSHIRT</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/top/long-sleeve-shirt\">LONG SLEEVE SHIRT</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/top/short-sleeved-shirt_sleeveless-shirt\">SHORT SLEEVE / SLEEVELESS SHIRT</NavDropdown.Item>\r\n </NavDropdown>\r\n <NavDropdown title=\"PANTS\" onMouseEnter={() => handleMouseEnter(\"pants\")} onMouseLeave={() => handleMouseLeave(\"pants\")} show={toggle.pants} toggle={() => handleToggle(\"pants\")} onClick={() => handleClick(\"/pants\")}>\r\n <NavDropdown.Item href=\"/pants/jeans\">JEANS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/skinny-jeans\">SKINNY JEANS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/banding\">BANDING PANTS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/wide-fit\">WIDE-FIT PANTS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/boot-cut\">BOOT-CUT PANTS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/straight-fit\">STRAIGHT-FIT PANTS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/wide-fit\">WIDE-FIT PANTS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/shorts\">SHORTS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/trousers\">TROUSERS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/leggings\">LEGGINGS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/jumpsuit_overalls\">JUMPSUIT / OVERALLS</NavDropdown.Item>\r\n </NavDropdown>\r\n <NavDropdown title=\"SKIRT\" onMouseEnter={() => handleMouseEnter(\"skirt\")} onMouseLeave={() => handleMouseLeave(\"skirt\")} show={toggle.skirt} toggle={() => handleToggle(\"skirt\")} onClick={() => handleClick(\"/skirt\")}>\r\n <NavDropdown.Item href=\"/skirt/long\">LONG SKIRT</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/skirt/midi\">MIDI SKIRT</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/skirt/mini\">MINI SKIRT</NavDropdown.Item>\r\n </NavDropdown>\r\n <Nav.Item>\r\n <Nav.Link href=\"/training\">TRAINING</Nav.Link>\r\n </Nav.Item>\r\n <NavDropdown title=\"SHOES\" onMouseEnter={() => handleMouseEnter(\"shoes\")} onMouseLeave={() => handleMouseLeave(\"shoes\")} show={toggle.shoes} toggle={() => handleToggle(\"shoes\")} onClick={() => handleClick(\"/shoes\")}>\r\n <NavDropdown.Item href=\"/skirt/sneakers_slip-on\">SNEAKERS / SLIP-ON</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/skirt/flat_loafer\">FLAT / LOAFER</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/skirt/heel_pump\">HEEL / PUMP</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/skirt/boots\">BOOTS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/skirt/sandal_slipper\">SANDAL / SLIPPER</NavDropdown.Item>\r\n </NavDropdown>\r\n </Nav>\r\n )\r\n}\r\n\r\nexport default SubNav","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Components\\Pagination.js",["98","99","100"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport { Pagination } from 'react-bootstrap';\r\n\r\nfunction pagination() {\r\n let active = 1;\r\n let items = [];\r\n for (let number = 1; number <= 5; number++) {\r\n items.push(\r\n <Pagination.Item key={number} active={number === active}>\r\n {number}\r\n </Pagination.Item>,\r\n );\r\n }\r\n\r\n return (\r\n <Pagination className=\"justify-content-center mt-5\">{items}</Pagination>\r\n )\r\n}\r\n\r\nexport default pagination","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\ProductsRegist.js",["101","102","103"],{"ruleId":"104","replacedBy":"105"},{"ruleId":"106","replacedBy":"107"},{"ruleId":"108","severity":1,"message":"109","line":1,"column":17,"nodeType":"110","messageId":"111","endLine":1,"endColumn":25},{"ruleId":"108","severity":1,"message":"112","line":1,"column":27,"nodeType":"110","messageId":"111","endLine":1,"endColumn":36},{"ruleId":"108","severity":1,"message":"113","line":1,"column":38,"nodeType":"110","messageId":"111","endLine":1,"endColumn":44},{"ruleId":"108","severity":1,"message":"109","line":1,"column":17,"nodeType":"110","messageId":"111","endLine":1,"endColumn":25},{"ruleId":"108","severity":1,"message":"112","line":1,"column":27,"nodeType":"110","messageId":"111","endLine":1,"endColumn":36},{"ruleId":"108","severity":1,"message":"113","line":1,"column":38,"nodeType":"110","messageId":"111","endLine":1,"endColumn":44},{"ruleId":"108","severity":1,"message":"114","line":2,"column":10,"nodeType":"110","messageId":"111","endLine":2,"endColumn":18},{"ruleId":"115","severity":1,"message":"116","line":19,"column":25,"nodeType":"117","endLine":19,"endColumn":68},{"ruleId":"108","severity":1,"message":"109","line":1,"column":17,"nodeType":"110","messageId":"111","endLine":1,"endColumn":25},{"ruleId":"108","severity":1,"message":"112","line":1,"column":27,"nodeType":"110","messageId":"111","endLine":1,"endColumn":36},{"ruleId":"108","severity":1,"message":"113","line":1,"column":38,"nodeType":"110","messageId":"111","endLine":1,"endColumn":44},{"ruleId":"108","severity":1,"message":"114","line":2,"column":10,"nodeType":"110","messageId":"111","endLine":2,"endColumn":18},{"ruleId":"108","severity":1,"message":"109","line":1,"column":17,"nodeType":"110","messageId":"111","endLine":1,"endColumn":25},{"ruleId":"108","severity":1,"message":"112","line":1,"column":27,"nodeType":"110","messageId":"111","endLine":1,"endColumn":36},{"ruleId":"108","severity":1,"message":"113","line":1,"column":38,"nodeType":"110","messageId":"111","endLine":1,"endColumn":44},{"ruleId":"108","severity":1,"message":"109","line":1,"column":17,"nodeType":"110","messageId":"111","endLine":1,"endColumn":25},{"ruleId":"108","severity":1,"message":"112","line":1,"column":27,"nodeType":"110","messageId":"111","endLine":1,"endColumn":36},{"ruleId":"108","severity":1,"message":"113","line":1,"column":38,"nodeType":"110","messageId":"111","endLine":1,"endColumn":44},{"ruleId":"108","severity":1,"message":"114","line":2,"column":10,"nodeType":"110","messageId":"111","endLine":2,"endColumn":18},{"ruleId":"115","severity":1,"message":"116","line":25,"column":37,"nodeType":"117","endLine":25,"endColumn":147},{"ruleId":"115","severity":1,"message":"116","line":47,"column":37,"nodeType":"117","endLine":47,"endColumn":147},{"ruleId":"108","severity":1,"message":"109","line":1,"column":17,"nodeType":"110","messageId":"111","endLine":1,"endColumn":25},{"ruleId":"108","severity":1,"message":"112","line":1,"column":27,"nodeType":"110","messageId":"111","endLine":1,"endColumn":36},{"ruleId":"108","severity":1,"message":"113","line":1,"column":38,"nodeType":"110","messageId":"111","endLine":1,"endColumn":44},{"ruleId":"108","severity":1,"message":"109","line":1,"column":17,"nodeType":"110","messageId":"111","endLine":1,"endColumn":25},{"ruleId":"108","severity":1,"message":"112","line":1,"column":27,"nodeType":"110","messageId":"111","endLine":1,"endColumn":36},{"ruleId":"108","severity":1,"message":"113","line":1,"column":38,"nodeType":"110","messageId":"111","endLine":1,"endColumn":44},{"ruleId":"115","severity":1,"message":"116","line":15,"column":17,"nodeType":"117","endLine":15,"endColumn":58},{"ruleId":"115","severity":1,"message":"116","line":22,"column":21,"nodeType":"117","endLine":22,"endColumn":62},{"ruleId":"115","severity":1,"message":"116","line":26,"column":21,"nodeType":"117","endLine":26,"endColumn":64},{"ruleId":"108","severity":1,"message":"112","line":1,"column":27,"nodeType":"110","messageId":"111","endLine":1,"endColumn":36},{"ruleId":"108","severity":1,"message":"113","line":1,"column":38,"nodeType":"110","messageId":"111","endLine":1,"endColumn":44},{"ruleId":"108","severity":1,"message":"109","line":1,"column":17,"nodeType":"110","messageId":"111","endLine":1,"endColumn":25},{"ruleId":"108","severity":1,"message":"112","line":1,"column":27,"nodeType":"110","messageId":"111","endLine":1,"endColumn":36},{"ruleId":"108","severity":1,"message":"113","line":1,"column":38,"nodeType":"110","messageId":"111","endLine":1,"endColumn":44},{"ruleId":"108","severity":1,"message":"109","line":1,"column":17,"nodeType":"110","messageId":"111","endLine":1,"endColumn":25},{"ruleId":"108","severity":1,"message":"112","line":1,"column":27,"nodeType":"110","messageId":"111","endLine":1,"endColumn":36},{"ruleId":"108","severity":1,"message":"113","line":1,"column":38,"nodeType":"110","messageId":"111","endLine":1,"endColumn":44},"no-native-reassign",["118"],"no-negated-in-lhs",["119"],"no-unused-vars","'useState' is defined but never used.","Identifier","unusedVar","'useEffect' is defined but never used.","'useRef' is defined but never used.","'Redirect' is defined but never used.","jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","JSXOpeningElement","no-global-assign","no-unsafe-negation"] [{"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\index.js":"1","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\reportWebVitals.js":"2","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\App.js":"3","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Login.js":"4","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Admin.js":"5","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Signup.js":"6","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Home.js":"7","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\ShoppingCart.js":"8","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Payment.js":"9","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Components\\MainNav.js":"10","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Components\\SubNav.js":"11","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Components\\Pagination.js":"12","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\ProductsRegist.js":"13","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Products.js":"14"},{"size":1459,"mtime":1609269609016,"results":"15","hashOfConfig":"16"},{"size":375,"mtime":1609228982944,"results":"17","hashOfConfig":"16"},{"size":528,"mtime":499162500000,"results":"18","hashOfConfig":"16"},{"size":299,"mtime":1609228981316,"results":"19","hashOfConfig":"16"},{"size":6585,"mtime":1609306694784,"results":"20","hashOfConfig":"16"},{"size":1463,"mtime":1609237678361,"results":"21","hashOfConfig":"16"},{"size":6185,"mtime":1609291798698,"results":"22","hashOfConfig":"16"},{"size":4675,"mtime":1609237678340,"results":"23","hashOfConfig":"16"},{"size":6324,"mtime":1609237678326,"results":"24","hashOfConfig":"16"},{"size":1257,"mtime":1609269031207,"results":"25","hashOfConfig":"16"},{"size":7044,"mtime":1609268803334,"results":"26","hashOfConfig":"16"},{"size":528,"mtime":1609294129110,"results":"27","hashOfConfig":"16"},{"size":319,"mtime":1609228981879,"results":"28","hashOfConfig":"16"},{"size":3694,"mtime":1609273107803,"results":"29","hashOfConfig":"16"},{"filePath":"30","messages":"31","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},"zu2uto",{"filePath":"33","messages":"34","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"32"},{"filePath":"35","messages":"36","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"37","messages":"38","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"39","usedDeprecatedRules":"32"},{"filePath":"40","messages":"41","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"42","usedDeprecatedRules":"32"},{"filePath":"43","messages":"44","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"45","usedDeprecatedRules":"32"},{"filePath":"46","messages":"47","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"48","usedDeprecatedRules":"32"},{"filePath":"49","messages":"50","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"51","usedDeprecatedRules":"32"},{"filePath":"52","messages":"53","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"54","usedDeprecatedRules":"32"},{"filePath":"55","messages":"56","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"57","usedDeprecatedRules":"32"},{"filePath":"58","messages":"59","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"60","usedDeprecatedRules":"32"},{"filePath":"61","messages":"62","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"63"},{"filePath":"64","messages":"65","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"66","usedDeprecatedRules":"32"},{"filePath":"67","messages":"68","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"69","usedDeprecatedRules":"32"},"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\index.js",[],["70","71"],"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\reportWebVitals.js",[],"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\App.js",[],"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Login.js",["72","73","74"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport MainNav from '../Components/MainNav';\r\nimport SubNav from '../Components/SubNav';\r\nfunction Login() {\r\n\r\n return (\r\n <div>\r\n <MainNav />\r\n <SubNav />\r\n </div>\r\n )\r\n}\r\n\r\nexport default Login","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Admin.js",["75","76","77","78"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport MainNav from '../Components/MainNav';\r\nimport SubNav from '../Components/SubNav';\r\nimport Pagination from '../Components/Pagination';\r\nimport search from '../search.svg';\r\nimport { Row, Col, Form, FormControl, Button, Card } from 'react-bootstrap';\r\n\r\nfunction Admin() {\r\n function handleClick(e) {\r\n const card = e.target.parentNode.parentNode\r\n console.log(card)\r\n alert('해당 상품을 성공적으로 삭제하였습니다.')\r\n }\r\n\r\n return (\r\n <div>\r\n <style type=\"text/css\">\r\n {`\r\n .btn {\r\n background-color: #CDC5C2;\r\n border-color: #CDC5C2;\r\n }\r\n\r\n .btn:hover, .btn:active, .btn:focus {\r\n background-color: #91877F;\r\n border-color: #91877F;\r\n }\r\n `}\r\n </style>\r\n <MainNav />\r\n <SubNav />\r\n <Row className=\"justify-content-end mt-5 mr-3 mb-5\">\r\n <Col as={Form} inline className=\"justify-content-end\">\r\n <FormControl type=\"text\" placeholder=\"Search\" className=\"mr-1\" />\r\n <Button type=\"submit\" className=\"px-2\">\r\n <img src={search} width=\"20\" height=\"20\" />\r\n </Button>\r\n </Col>\r\n <Col sm={2} xs={3} as={Button} type=\"button\" href=\"/regist\">상품 등록</Col>\r\n </Row>\r\n <Row className=\"justify-content-start m-5\">\r\n <Card className=\"my-5\" style={{ width: \"18rem\", margin: \"auto\"}}>\r\n <Card.Img variant=\"top\" src=\"https://img.sonyunara.com/files/goods/67460/1607053816_0.jpg\" style={{ objectFit: \"contain\", height: \"22rem\" }} />\r\n <Card.Body>\r\n <Card.Title>케이시앵글부츠(SH)</Card.Title>\r\n <Card.Text>\r\n 재고: 8<br />\r\n 구매자 수: 10\r\n </Card.Text>\r\n <Button className=\"float-right\" onClick={(e) => handleClick(e)}>삭제</Button>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"my-5\" style={{ width: \"18rem\", margin: \"auto\"}}>\r\n <Card.Img variant=\"top\" src=\"https://img.sonyunara.com/files/goods/48705/1552562469_0.jpg\" style={{ objectFit: \"contain\", height: \"22rem\" }} />\r\n <Card.Body>\r\n <Card.Title>메리제인플랫(SH)</Card.Title>\r\n <Card.Text>\r\n 재고: 20<br />\r\n 구매자 수: 60\r\n </Card.Text>\r\n <Button className=\"float-right\" onClick={(e) => handleClick(e)}>삭제</Button>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"my-5\" style={{ width: \"18rem\", margin: \"auto\"}}>\r\n <Card.Img variant=\"top\" src=\"https://img.sonyunara.com/files/goods/53386/1567390097_2.jpg\" style={{ objectFit: \"contain\", height: \"22rem\" }} />\r\n <Card.Body>\r\n <Card.Title>솔티드스니커즈(SH)</Card.Title>\r\n <Card.Text>\r\n 재고: 34<br />\r\n 구매자 수: 5\r\n </Card.Text>\r\n <Button className=\"float-right\" onClick={(e) => handleClick(e)}>삭제</Button>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"my-5\" style={{ width: \"18rem\", margin: \"auto\"}}>\r\n <Card.Img variant=\"top\" src=\"https://img.sonyunara.com/files/goods/61286/1587540563_0.jpg\" style={{ objectFit: \"contain\", height: \"22rem\" }} />\r\n <Card.Body>\r\n <Card.Title>버켄슬리퍼(SH)</Card.Title>\r\n <Card.Text>\r\n 재고: 50<br />\r\n 구매자 수: 18\r\n </Card.Text>\r\n <Button className=\"float-right\" onClick={(e) => handleClick(e)}>삭제</Button>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"my-5\" style={{ width: \"18rem\", margin: \"auto\"}}>\r\n <Card.Img variant=\"top\" src=\"https://hotping.co.kr/web/product/big/202011/b8f4c6471955b80fc3991b7d6df8926a.jpg\" style={{ objectFit: \"contain\", height: \"22rem\" }} />\r\n <Card.Body>\r\n <Card.Title>크레센도 하이힐펌프스</Card.Title>\r\n <Card.Text>\r\n 재고: 35<br />\r\n 구매자 수: 70\r\n </Card.Text>\r\n <Button className=\"float-right\" onClick={(e) => handleClick(e)}>삭제</Button>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"my-5\" style={{ width: \"18rem\", margin: \"auto\"}}>\r\n <Card.Img variant=\"top\" src=\"https://hotping.co.kr/web/product/big/202011/888e4e8d6a2c2e7da385b079151fcba2.jpg\" style={{ objectFit: \"contain\", height: \"22rem\" }} />\r\n <Card.Body>\r\n <Card.Title>어텀솔져1cm 스웨이드로퍼</Card.Title>\r\n <Card.Text>\r\n 재고: 40<br />\r\n 구매자 수: 30\r\n </Card.Text>\r\n <Button className=\"float-right\" onClick={(e) => handleClick(e)}>삭제</Button>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"my-5\" style={{ width: \"18rem\", margin: \"auto\"}}>\r\n <Card.Img variant=\"top\" src=\"https://hotping.co.kr/web/product/big/202007/3308564012eb14e6c11ed621fa7555fb.jpg\" style={{ objectFit: \"contain\", height: \"22rem\" }} />\r\n <Card.Body>\r\n <Card.Title>포웰3.5cm 스니커즈</Card.Title>\r\n <Card.Text>\r\n 재고: 15<br />\r\n 구매자 수: 50\r\n </Card.Text>\r\n <Button className=\"float-right\" onClick={(e) => handleClick(e)}>삭제</Button>\r\n </Card.Body>\r\n </Card>\r\n </Row>\r\n <Pagination />\r\n </div>\r\n\r\n )\r\n}\r\n\r\nexport default Admin","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Signup.js",["79","80","81","82"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\n<<<<<<< HEAD\r\nimport MainNav from '../Components/MainNav';\r\nimport SubNav from '../Components/SubNav';\r\n=======\r\nimport Nav1 from '../Components/MainNav';\r\nimport Nav2 from '../Components/SubNav';\r\n>>>>>>> origin/jiwon\r\n\r\nfunction Signup() {\r\n\r\n\r\n return (\r\n <div class=\"form-container\">\r\n <MainNav />\r\n <SubNav />\r\n <form id=\"form\" class=\"form\">\r\n <h1>회원가입</h1>\r\n <div class=\"form-control\">\r\n <label for=\"id\">아이디</label>\r\n <input type=\"text\" id=\"id\" placeholder=\"아이디를 입력하세요\"></input>\r\n\r\n <label for=\"name\">본명</label>\r\n <input type=\"text\" id=\"name\" placeholder=\"본명을 입력하세요\"></input>\r\n\r\n <label for=\"password\">비밀번호</label>\r\n <input type=\"password\" id=\"password\" placeholder=\"비밀번호를 입력하세요\"></input>\r\n\r\n <label for=\"password2\">비밀번호 확인</label>\r\n <input type=\"password\" id=\"password2\" placeholder=\"비밀번호를 한번 더 입력하세요\"></input>\r\n\r\n <label for=\"tel\">휴대폰 번호</label>\r\n <input type=\"text\" id=\"tel\" placeholder=\"휴대폰 번호를 입력하세요\"></input>\r\n\r\n <label for=\"add\">주소</label>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n )\r\n}\r\n\r\nexport default Signup","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Home.js",["83","84","85"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport MainNav from '../Components/MainNav';\r\nimport SubNav from '../Components/SubNav';\r\nimport { Card, Container, Row } from 'react-bootstrap';\r\n\r\n\r\nfunction Home() {\r\n\r\n return (\r\n <div>\r\n <MainNav />\r\n <SubNav />\r\n <Container>\r\n <div className=\"my-3\">\r\n <h3 ><u>Best</u></h3>\r\n <Row className=\"justify-content-center\">\r\n <Card className=\"mx-1\" style={{ width: '18rem' }}>\r\n <Card.Img className=\"img-fluid\" variant=\"top\" src=\"img/asd.jpg\" />\r\n <Card.Body>\r\n <Card.Title className=\"font-weight-bold\">제품명</Card.Title>\r\n <Card.Text>가격</Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"mx-1\" style={{ width: '18rem' }}>\r\n <Card.Img className=\"img-fluid\" variant=\"top\" src=\"img/asd.jpg\" />\r\n <Card.Body>\r\n <Card.Title className=\"font-weight-bold\">제품명</Card.Title>\r\n <Card.Text>가격</Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"mx-1\" style={{ width: '18rem' }}>\r\n <Card.Img className=\"img-fluid\" variant=\"top\" src=\"img/asd.jpg\" />\r\n <Card.Body>\r\n <Card.Title className=\"font-weight-bold\">제품명</Card.Title>\r\n <Card.Text>가격</Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"mx-1\" style={{ width: '18rem' }}>\r\n <Card.Img className=\"img-fluid\" variant=\"top\" src=\"img/asd.jpg\" />\r\n <Card.Body>\r\n <Card.Title className=\"font-weight-bold\">제품명</Card.Title>\r\n <Card.Text>가격</Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"mx-1\" style={{ width: '18rem' }}>\r\n <Card.Img className=\"img-fluid\" variant=\"top\" src=\"img/asd.jpg\" />\r\n <Card.Body>\r\n <Card.Title className=\"font-weight-bold\">제품명</Card.Title>\r\n <Card.Text>가격</Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"mx-1\" style={{ width: '18rem' }}>\r\n <Card.Img className=\"img-fluid\" variant=\"top\" src=\"img/asd.jpg\" />\r\n <Card.Body>\r\n <Card.Title className=\"font-weight-bold\">제품명</Card.Title>\r\n <Card.Text>가격</Card.Text>\r\n </Card.Body>\r\n </Card>\r\n </Row>\r\n </div>\r\n <div className=\"my-3\">\r\n <h3><u>New Arrival</u></h3>\r\n <Row className=\"justify-content-center\">\r\n <Card className=\"mx-1\" style={{ width: '18rem' }}>\r\n <Card.Img className=\"img-fluid\" variant=\"top\" src=\"img/asd.jpg\" />\r\n <Card.Body>\r\n <Card.Title className=\"font-weight-bold\">제품명</Card.Title>\r\n <Card.Text>가격</Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"mx-1\" style={{ width: '18rem' }}>\r\n <Card.Img className=\"img-fluid\" variant=\"top\" src=\"img/asd.jpg\" />\r\n <Card.Body>\r\n <Card.Title className=\"font-weight-bold\">제품명</Card.Title>\r\n <Card.Text>가격</Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"mx-1\" style={{ width: '18rem' }}>\r\n <Card.Img className=\"img-fluid\" variant=\"top\" src=\"img/asd.jpg\" />\r\n <Card.Body>\r\n <Card.Title className=\"font-weight-bold\">제품명</Card.Title>\r\n <Card.Text>가격</Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"mx-1\" style={{ width: '18rem' }}>\r\n <Card.Img className=\"img-fluid\" variant=\"top\" src=\"img/asd.jpg\" />\r\n <Card.Body>\r\n <Card.Title className=\"font-weight-bold\">제품명</Card.Title>\r\n <Card.Text>가격</Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"mx-1\" style={{ width: '18rem' }}>\r\n <Card.Img className=\"img-fluid\" variant=\"top\" src=\"img/asd.jpg\" />\r\n <Card.Body>\r\n <Card.Title className=\"font-weight-bold\">제품명</Card.Title>\r\n <Card.Text>가격</Card.Text>\r\n </Card.Body>\r\n </Card>\r\n <Card className=\"mx-1\" style={{ width: '18rem' }}>\r\n <Card.Img className=\"img-fluid\" variant=\"top\" src=\"img/asd.jpg\" />\r\n <Card.Body>\r\n <Card.Title className=\"font-weight-bold\">제품명</Card.Title>\r\n <Card.Text>가격</Card.Text>\r\n </Card.Body>\r\n </Card>\r\n </Row>\r\n </div>\r\n </Container>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Home","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\ShoppingCart.js",["86","87","88","89","90","91"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport MainNav from '../Components/MainNav';\r\nimport SubNav from '../Components/SubNav';\r\n\r\nfunction ShoppingCart() {\r\n\r\n return (\r\n <div>\r\n <MainNav />\r\n <SubNav />\r\n </div>\r\n )\r\n}\r\n\r\nexport default ShoppingCart","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Payment.js",["92","93","94"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport MainNav from '../Components/MainNav';\r\nimport SubNav from '../Components/SubNav';\r\n\r\nfunction Payment() {\r\n\r\n return (\r\n <div>\r\n <MainNav />\r\n <SubNav />\r\n </div>\r\n )\r\n}\r\n\r\nexport default Payment","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Components\\MainNav.js",["95","96","97","98","99","100"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport { Navbar, Nav } from 'react-bootstrap';\r\nimport logo from '../footprint.svg';\r\nimport cart from '../cart.svg';\r\nimport option from '../option.svg';\r\n\r\nfunction MainNav() {\r\n function handleClick() {\r\n alert('로그아웃이 완료되었습니다.')\r\n }\r\n\r\n return (\r\n <Navbar sticky=\"top\" style={{ background: \"#CDC5C2\" }}>\r\n <Navbar.Brand href=\"/home\" className=\"text-light\">\r\n <img src={logo} width=\"24\" height=\"24\" />\r\n {' '}KU#\r\n </Navbar.Brand>\r\n <Nav className=\"justify-content-end\">\r\n <Nav.Link className=\"text-light\" href=\"/login\">Login</Nav.Link>\r\n <Nav.Link className=\"text-light\" href=\"/signup\">Signup</Nav.Link>\r\n <Nav.Link href=\"/shoppingcart\">\r\n <img src={cart} width=\"30\" height=\"30\" />\r\n </Nav.Link>\r\n <Nav.Link className=\"text-light\" onClick={() => handleClick()}>Logout</Nav.Link>\r\n <Nav.Link href=\"/admin\">\r\n <img src={option} width=\"30\" height=\"30\" />\r\n </Nav.Link>\r\n </Nav>\r\n </Navbar>\r\n )\r\n}\r\n\r\nexport default MainNav","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Components\\SubNav.js",["101","102"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport { Redirect } from 'react-router-dom';\r\nimport { Navbar, Nav, NavDropdown } from 'react-bootstrap';\r\n\r\nfunction SubNav() {\r\n const [toggle, setToggle] = useState({ \"dress\": false, \"outer\": false, \"top\": false, \"pants\": false, \"skirt\": false, \"training\": false, \"shoes\": false });\r\n\r\n function handleMouseEnter(id) {\r\n setToggle({ [id]: true })\r\n }\r\n\r\n function handleMouseLeave(id) {\r\n setToggle({ [id]: false })\r\n }\r\n\r\n function handleToggle(id) {\r\n setToggle({ [id]: !toggle[`${id}`] })\r\n }\r\n\r\n function handleClick(url) {\r\n return <Redirect to={url} />\r\n }\r\n\r\n return (\r\n <Navbar sticky=\"top\" className=\"flex-nowrap\" style={{ top: \"62px\", paddingTop: \"0\", paddingBottom: \"0\", backgroundColor: \"#fff\" }}>\r\n <style type=\"text/css\">\r\n {`\r\n .nav-link, .nav-link:hover, .nav-link:active {\r\n color: #91877F;\r\n }\r\n \r\n .dropdown-toggle:after {\r\n display: none;\r\n }\r\n\r\n .dropdown-menu {\r\n background-color: #91877F;\r\n }\r\n\r\n .dropdown-item {\r\n color: #f8f9fa;\r\n }\r\n\r\n .dropdown-item:focus, .dropdown-item:hover {\r\n color: #91877F;\r\n }\r\n\r\n .dropdown-item:active {\r\n background-color: #f8f9fa;\r\n }\r\n `}\r\n </style>\r\n <Nav>\r\n <NavDropdown title=\"DRESS\" onMouseEnter={() => handleMouseEnter(\"dress\")} onMouseLeave={() => handleMouseLeave(\"dress\")} show={toggle.dress} toggle={() => handleToggle(\"dress\")} onClick={() => handleClick(\"/dress\")}>\r\n <NavDropdown.Item href=\"/dress/long\">LONG DRESS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/dress/short\">SHORT DRESS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/dress/knit\">KNIT DRESS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/dress/shirt\">SHIRT DRESS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/dress/pattern\">PATTERN DRESS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/dress/bustier\">BUSTIER DRESS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/dress/two-piece\">TWO-PIECE DRESS</NavDropdown.Item>\r\n </NavDropdown>\r\n <NavDropdown title=\"OUTER\" onMouseEnter={() => handleMouseEnter(\"outer\")} onMouseLeave={() => handleMouseLeave(\"outer\")} show={toggle.outer} toggle={() => handleToggle(\"outer\")} onClick={() => handleClick(\"/outer\")}>\r\n <NavDropdown.Item href=\"/outer/padded-jacket\">PADDED JACKET</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/outer/jacket\">JACKET</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/outer/jumper\">JUMPER</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/outer/coat\">COAT</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/outer/fleece\">FLEECE</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/outer/cardigan_vest\">CARDIGAN / VEST</NavDropdown.Item>\r\n </NavDropdown>\r\n <NavDropdown title=\"TOP\" onMouseEnter={() => handleMouseEnter(\"top\")} onMouseLeave={() => handleMouseLeave(\"top\")} show={toggle.top} toggle={() => handleToggle(\"top\")} onClick={() => handleClick(\"/top\")}>\r\n <NavDropdown.Item href=\"/top/knit\">KNIT</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/top/hoody\">HOODY</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/top/blouse\">BLOUSE</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/top/shirt\">SHIRT</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/top/sweatshirt\">SWEATSHIRT</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/top/long-sleeve-shirt\">LONG SLEEVE SHIRT</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/top/short-sleeved-shirt_sleeveless-shirt\">SHORT SLEEVE / SLEEVELESS SHIRT</NavDropdown.Item>\r\n </NavDropdown>\r\n <NavDropdown title=\"PANTS\" onMouseEnter={() => handleMouseEnter(\"pants\")} onMouseLeave={() => handleMouseLeave(\"pants\")} show={toggle.pants} toggle={() => handleToggle(\"pants\")} onClick={() => handleClick(\"/pants\")}>\r\n <NavDropdown.Item href=\"/pants/jeans\">JEANS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/skinny-jeans\">SKINNY JEANS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/banding\">BANDING PANTS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/wide-fit\">WIDE-FIT PANTS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/boot-cut\">BOOT-CUT PANTS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/straight-fit\">STRAIGHT-FIT PANTS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/wide-fit\">WIDE-FIT PANTS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/shorts\">SHORTS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/trousers\">TROUSERS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/leggings\">LEGGINGS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/pants/jumpsuit_overalls\">JUMPSUIT / OVERALLS</NavDropdown.Item>\r\n </NavDropdown>\r\n <NavDropdown title=\"SKIRT\" onMouseEnter={() => handleMouseEnter(\"skirt\")} onMouseLeave={() => handleMouseLeave(\"skirt\")} show={toggle.skirt} toggle={() => handleToggle(\"skirt\")} onClick={() => handleClick(\"/skirt\")}>\r\n <NavDropdown.Item href=\"/skirt/long\">LONG SKIRT</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/skirt/midi\">MIDI SKIRT</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/skirt/mini\">MINI SKIRT</NavDropdown.Item>\r\n </NavDropdown>\r\n <Nav.Item>\r\n <Nav.Link href=\"/training\">TRAINING</Nav.Link>\r\n </Nav.Item>\r\n <NavDropdown title=\"SHOES\" onMouseEnter={() => handleMouseEnter(\"shoes\")} onMouseLeave={() => handleMouseLeave(\"shoes\")} show={toggle.shoes} toggle={() => handleToggle(\"shoes\")} onClick={() => handleClick(\"/shoes\")}>\r\n <NavDropdown.Item href=\"/skirt/sneakers_slip-on\">SNEAKERS / SLIP-ON</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/skirt/flat_loafer\">FLAT / LOAFER</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/skirt/heel_pump\">HEEL / PUMP</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/skirt/boots\">BOOTS</NavDropdown.Item>\r\n <NavDropdown.Item href=\"/skirt/sandal_slipper\">SANDAL / SLIPPER</NavDropdown.Item>\r\n </NavDropdown>\r\n </Nav>\r\n </Navbar>\r\n )\r\n}\r\n\r\nexport default SubNav","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Components\\Pagination.js",["103","104","105"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport { Pagination } from 'react-bootstrap';\r\n\r\nfunction pagination() {\r\n let active = 1;\r\n let items = [];\r\n for (let number = 1; number <= 5; number++) {\r\n items.push(\r\n <Pagination.Item key={number} active={number === active}>\r\n {number}\r\n </Pagination.Item>,\r\n );\r\n }\r\n\r\n return (\r\n <Pagination className=\"justify-content-center\">{items}</Pagination>\r\n )\r\n}\r\n\r\nexport default pagination","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\ProductsRegist.js",["106","107","108"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport MainNav from '../Components/MainNav';\r\nimport SubNav from '../Components/SubNav';\r\n\r\nfunction ProductsRegist() {\r\n\r\n return (\r\n <div>\r\n <MainNav />\r\n <SubNav />\r\n </div>\r\n )\r\n}\r\n\r\nexport default ProductsRegist","C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Products.js",["109","110","111","112"],"import React, { useState, useEffect, useRef } from 'react';\r\nimport MainNav from '../Components/MainNav';\r\nimport SubNav from '../Components/SubNav';\r\nimport { Row, Col, Form, Card } from 'react-bootstrap';\r\n\r\nfunction Products() {\r\n\r\n return (\r\n <div>\r\n <MainNav />\r\n <SubNav />\r\n <Row className=\"justify-content-center mt-5\">\r\n <Col md={4}>\r\n <img src=\"https://img.sonyunara.com/files/goods/65976/1601953605_0.jpg\" style={{ objectFit: \"contain\", width: \"100%\" }} />\r\n </Col>\r\n <Col md={4} className=\"align-middle\">\r\n <Form>\r\n <Form.Group>\r\n <Form.Label>옵션</Form.Label>\r\n <Form.Control as=\"select\" defaultValue=\"옵션 선택\">\r\n <option>옵션 선택</option>\r\n <option>브릭레드(스트랩포함)</option>\r\n <option>베이지(스트랩포함)</option>\r\n <option>블랙(스트랩포함)</option>\r\n </Form.Control>\r\n </Form.Group>\r\n </Form>\r\n </Col>\r\n </Row>\r\n <Row className=\"justify-content-center mt-5\">\r\n <Col md={8}>\r\n <h3 style={{ borderBottom: \"1px solid #91877F\", paddingBottom: \"5px\", marginBottom: \"1em\" }}>설명</h3>\r\n <div></div>\r\n </Col>\r\n </Row>\r\n <div className=\"m-5\">\r\n <h6 style={{ borderBottom: \"1px solid\", paddingBottom: \"5px\", marginBottom: \"1em\" }}>회원님이 선호할만한 상품 추천</h6>\r\n <Row className=\"justify-content-space\" style={{ objectFit: \"contain\", width: \"100%\" }}>\r\n <Col as={Card} style={{ width: \"16rem\" }}>\r\n <Card.Img variant=\"top\" src=\"https://img.sonyunara.com/files/goods/67504/1607328307_0.jpg\" />\r\n <Card.Body>\r\n <Card.Title>클로타탄원피스</Card.Title>\r\n <Card.Text>구매자 수: 30</Card.Text>\r\n </Card.Body>\r\n </Col>\r\n <Col as={Card} style={{ width: \"16rem\" }}>\r\n <Card.Img variant=\"top\" src=\"https://img.sonyunara.com/files/goods/67504/1607328307_0.jpg\" />\r\n <Card.Body>\r\n <Card.Title>클로타탄원피스</Card.Title>\r\n <Card.Text>구매자 수: 30</Card.Text>\r\n </Card.Body>\r\n </Col>\r\n <Col as={Card} style={{ width: \"16rem\" }}>\r\n <Card.Img variant=\"top\" src=\"https://img.sonyunara.com/files/goods/67504/1607328307_0.jpg\" />\r\n <Card.Body>\r\n <Card.Title>클로타탄원피스</Card.Title>\r\n <Card.Text>구매자 수: 30</Card.Text>\r\n </Card.Body>\r\n </Col>\r\n <Col as={Card} style={{ width: \"16rem\" }}>\r\n <Card.Img variant=\"top\" src=\"https://img.sonyunara.com/files/goods/67504/1607328307_0.jpg\" />\r\n <Card.Body>\r\n <Card.Title>클로타탄원피스</Card.Title>\r\n <Card.Text>구매자 수: 30</Card.Text>\r\n </Card.Body>\r\n </Col>\r\n </Row>\r\n </div>\r\n </div>\r\n )\r\n}\r\n\r\nexport default Products",{"ruleId":"113","replacedBy":"114"},{"ruleId":"115","replacedBy":"116"},{"ruleId":"117","severity":1,"message":"118","line":1,"column":17,"nodeType":"119","messageId":"120","endLine":1,"endColumn":25},{"ruleId":"117","severity":1,"message":"121","line":1,"column":27,"nodeType":"119","messageId":"120","endLine":1,"endColumn":36},{"ruleId":"117","severity":1,"message":"122","line":1,"column":38,"nodeType":"119","messageId":"120","endLine":1,"endColumn":44},{"ruleId":"117","severity":1,"message":"118","line":1,"column":17,"nodeType":"119","messageId":"120","endLine":1,"endColumn":25},{"ruleId":"117","severity":1,"message":"121","line":1,"column":27,"nodeType":"119","messageId":"120","endLine":1,"endColumn":36},{"ruleId":"117","severity":1,"message":"122","line":1,"column":38,"nodeType":"119","messageId":"120","endLine":1,"endColumn":44},{"ruleId":"123","severity":1,"message":"124","line":36,"column":25,"nodeType":"125","endLine":36,"endColumn":68},{"ruleId":"117","severity":1,"message":"118","line":1,"column":17,"nodeType":"119","messageId":"120","endLine":1,"endColumn":25},{"ruleId":"117","severity":1,"message":"121","line":1,"column":27,"nodeType":"119","messageId":"120","endLine":1,"endColumn":36},{"ruleId":"117","severity":1,"message":"122","line":1,"column":38,"nodeType":"119","messageId":"120","endLine":1,"endColumn":44},{"ruleId":"117","severity":1,"message":"126","line":2,"column":10,"nodeType":"119","messageId":"120","endLine":2,"endColumn":18},{"ruleId":"117","severity":1,"message":"118","line":1,"column":17,"nodeType":"119","messageId":"120","endLine":1,"endColumn":25},{"ruleId":"117","severity":1,"message":"121","line":1,"column":27,"nodeType":"119","messageId":"120","endLine":1,"endColumn":36},{"ruleId":"117","severity":1,"message":"122","line":1,"column":38,"nodeType":"119","messageId":"120","endLine":1,"endColumn":44},{"ruleId":"117","severity":1,"message":"118","line":1,"column":17,"nodeType":"119","messageId":"120","endLine":1,"endColumn":25},{"ruleId":"117","severity":1,"message":"121","line":1,"column":27,"nodeType":"119","messageId":"120","endLine":1,"endColumn":36},{"ruleId":"117","severity":1,"message":"122","line":1,"column":38,"nodeType":"119","messageId":"120","endLine":1,"endColumn":44},{"ruleId":"117","severity":1,"message":"126","line":2,"column":10,"nodeType":"119","messageId":"120","endLine":2,"endColumn":18},{"ruleId":"123","severity":1,"message":"124","line":25,"column":37,"nodeType":"125","endLine":25,"endColumn":147},{"ruleId":"123","severity":1,"message":"124","line":47,"column":37,"nodeType":"125","endLine":47,"endColumn":147},{"ruleId":"117","severity":1,"message":"118","line":1,"column":17,"nodeType":"119","messageId":"120","endLine":1,"endColumn":25},{"ruleId":"117","severity":1,"message":"121","line":1,"column":27,"nodeType":"119","messageId":"120","endLine":1,"endColumn":36},{"ruleId":"117","severity":1,"message":"122","line":1,"column":38,"nodeType":"119","messageId":"120","endLine":1,"endColumn":44},{"ruleId":"117","severity":1,"message":"118","line":1,"column":17,"nodeType":"119","messageId":"120","endLine":1,"endColumn":25},{"ruleId":"117","severity":1,"message":"121","line":1,"column":27,"nodeType":"119","messageId":"120","endLine":1,"endColumn":36},{"ruleId":"117","severity":1,"message":"122","line":1,"column":38,"nodeType":"119","messageId":"120","endLine":1,"endColumn":44},{"ruleId":"123","severity":1,"message":"124","line":15,"column":17,"nodeType":"125","endLine":15,"endColumn":58},{"ruleId":"123","severity":1,"message":"124","line":22,"column":21,"nodeType":"125","endLine":22,"endColumn":62},{"ruleId":"123","severity":1,"message":"124","line":26,"column":21,"nodeType":"125","endLine":26,"endColumn":64},{"ruleId":"117","severity":1,"message":"121","line":1,"column":27,"nodeType":"119","messageId":"120","endLine":1,"endColumn":36},{"ruleId":"117","severity":1,"message":"122","line":1,"column":38,"nodeType":"119","messageId":"120","endLine":1,"endColumn":44},{"ruleId":"117","severity":1,"message":"118","line":1,"column":17,"nodeType":"119","messageId":"120","endLine":1,"endColumn":25},{"ruleId":"117","severity":1,"message":"121","line":1,"column":27,"nodeType":"119","messageId":"120","endLine":1,"endColumn":36},{"ruleId":"117","severity":1,"message":"122","line":1,"column":38,"nodeType":"119","messageId":"120","endLine":1,"endColumn":44},{"ruleId":"117","severity":1,"message":"118","line":1,"column":17,"nodeType":"119","messageId":"120","endLine":1,"endColumn":25},{"ruleId":"117","severity":1,"message":"121","line":1,"column":27,"nodeType":"119","messageId":"120","endLine":1,"endColumn":36},{"ruleId":"117","severity":1,"message":"122","line":1,"column":38,"nodeType":"119","messageId":"120","endLine":1,"endColumn":44},{"ruleId":"117","severity":1,"message":"118","line":1,"column":17,"nodeType":"119","messageId":"120","endLine":1,"endColumn":25},{"ruleId":"117","severity":1,"message":"121","line":1,"column":27,"nodeType":"119","messageId":"120","endLine":1,"endColumn":36},{"ruleId":"117","severity":1,"message":"122","line":1,"column":38,"nodeType":"119","messageId":"120","endLine":1,"endColumn":44},{"ruleId":"123","severity":1,"message":"124","line":14,"column":21,"nodeType":"125","endLine":14,"endColumn":143},"no-native-reassign",["127"],"no-negated-in-lhs",["128"],"no-unused-vars","'useState' is defined but never used.","Identifier","unusedVar","'useEffect' is defined but never used.","'useRef' is defined but never used.","jsx-a11y/alt-text","img elements must have an alt prop, either with meaningful text, or an empty string for decorative images.","JSXOpeningElement","'Redirect' is defined but never used.","no-global-assign","no-unsafe-negation"]
\ No newline at end of file \ No newline at end of file
...@@ -10,19 +10,19 @@ function MainNav() { ...@@ -10,19 +10,19 @@ function MainNav() {
} }
return ( return (
<Navbar fixed="top" bg="dark" variant="dark" style={{position: "sticky"}}> <Navbar sticky="top" style={{ background: "#CDC5C2" }}>
<Navbar.Brand href="/home"> <Navbar.Brand href="/home" className="text-light">
<img src={logo} width="23" height="23" /> <img src={logo} width="24" height="24" />
{' '}KU# {' '}KU#
</Navbar.Brand> </Navbar.Brand>
<Nav className="justify-content-end"> <Nav className="justify-content-end">
<Nav.Link href="/login">Login</Nav.Link> <Nav.Link className="text-light" href="/login">Login</Nav.Link>
<Nav.Link href="/signup">Signup</Nav.Link> <Nav.Link className="text-light" href="/signup">Signup</Nav.Link>
<Nav.Link href="/shoppingcart"> <Nav.Link href="/shoppingcart">
<img src={cart} width="30" height="30" /> <img src={cart} width="30" height="30" />
</Nav.Link> </Nav.Link>
<Nav.Link onClick={() => handleClick()}>Logout</Nav.Link> <Nav.Link className="text-light" onClick={() => handleClick()}>Logout</Nav.Link>
<Nav.Link href="/admin/:id"> <Nav.Link href="/admin">
<img src={option} width="30" height="30" /> <img src={option} width="30" height="30" />
</Nav.Link> </Nav.Link>
</Nav> </Nav>
......
...@@ -13,7 +13,7 @@ function pagination() { ...@@ -13,7 +13,7 @@ function pagination() {
} }
return ( return (
<Pagination className="justify-content-center mt-5">{items}</Pagination> <Pagination className="justify-content-center">{items}</Pagination>
) )
} }
......
import React, { useState, useEffect, useRef } from 'react'; import React, { useState, useEffect, useRef } from 'react';
import { Redirect } from 'react-router-dom'; import { Redirect } from 'react-router-dom';
import { Nav, NavDropdown } from 'react-bootstrap'; import { Navbar, Nav, NavDropdown } from 'react-bootstrap';
function SubNav() { function SubNav() {
const [toggle, setToggle] = useState({ "dress": false, "outer": false, "top": false, "pants": false, "skirt": false, "training": false, "shoes": false }); const [toggle, setToggle] = useState({ "dress": false, "outer": false, "top": false, "pants": false, "skirt": false, "training": false, "shoes": false });
...@@ -22,62 +22,91 @@ function SubNav() { ...@@ -22,62 +22,91 @@ function SubNav() {
} }
return ( return (
<Nav fixed="top" className="flex-nowrap"> <Navbar sticky="top" className="flex-nowrap" style={{ top: "62px", paddingTop: "0", paddingBottom: "0", backgroundColor: "#fff" }}>
<NavDropdown title="DRESS" onMouseEnter={() => handleMouseEnter("dress")} onMouseLeave={() => handleMouseLeave("dress")} show={toggle.dress} toggle={() => handleToggle("dress")} onClick={() => handleClick("/dress")}> <style type="text/css">
<NavDropdown.Item href="/dress/long">LONG DRESS</NavDropdown.Item> {`
<NavDropdown.Item href="/dress/short">SHORT DRESS</NavDropdown.Item> .nav-link, .nav-link:hover, .nav-link:active {
<NavDropdown.Item href="/dress/knit">KNIT DRESS</NavDropdown.Item> color: #91877F;
<NavDropdown.Item href="/dress/shirt">SHIRT DRESS</NavDropdown.Item> }
<NavDropdown.Item href="/dress/pattern">PATTERN DRESS</NavDropdown.Item>
<NavDropdown.Item href="/dress/bustier">BUSTIER DRESS</NavDropdown.Item> .dropdown-toggle:after {
<NavDropdown.Item href="/dress/two-piece">TWO-PIECE DRESS</NavDropdown.Item> display: none;
</NavDropdown> }
<NavDropdown title="OUTER" onMouseEnter={() => handleMouseEnter("outer")} onMouseLeave={() => handleMouseLeave("outer")} show={toggle.outer} toggle={() => handleToggle("outer")} onClick={() => handleClick("/outer")}>
<NavDropdown.Item href="/outer/padded-jacket">PADDED JACKET</NavDropdown.Item> .dropdown-menu {
<NavDropdown.Item href="/outer/jacket">JACKET</NavDropdown.Item> background-color: #91877F;
<NavDropdown.Item href="/outer/jumper">JUMPER</NavDropdown.Item> }
<NavDropdown.Item href="/outer/coat">COAT</NavDropdown.Item>
<NavDropdown.Item href="/outer/fleece">FLEECE</NavDropdown.Item> .dropdown-item {
<NavDropdown.Item href="/outer/cardigan_vest">CARDIGAN / VEST</NavDropdown.Item> color: #f8f9fa;
</NavDropdown> }
<NavDropdown title="TOP" onMouseEnter={() => handleMouseEnter("top")} onMouseLeave={() => handleMouseLeave("top")} show={toggle.top} toggle={() => handleToggle("top")} onClick={() => handleClick("/top")}>
<NavDropdown.Item href="/top/knit">KNIT</NavDropdown.Item> .dropdown-item:focus, .dropdown-item:hover {
<NavDropdown.Item href="/top/hoody">HOODY</NavDropdown.Item> color: #91877F;
<NavDropdown.Item href="/top/blouse">BLOUSE</NavDropdown.Item> }
<NavDropdown.Item href="/top/shirt">SHIRT</NavDropdown.Item>
<NavDropdown.Item href="/top/sweatshirt">SWEATSHIRT</NavDropdown.Item> .dropdown-item:active {
<NavDropdown.Item href="/top/long-sleeve-shirt">LONG SLEEVE SHIRT</NavDropdown.Item> background-color: #f8f9fa;
<NavDropdown.Item href="/top/short-sleeved-shirt_sleeveless-shirt">SHORT SLEEVE / SLEEVELESS SHIRT</NavDropdown.Item> }
</NavDropdown> `}
<NavDropdown title="PANTS" onMouseEnter={() => handleMouseEnter("pants")} onMouseLeave={() => handleMouseLeave("pants")} show={toggle.pants} toggle={() => handleToggle("pants")} onClick={() => handleClick("/pants")}> </style>
<NavDropdown.Item href="/pants/jeans">JEANS</NavDropdown.Item> <Nav>
<NavDropdown.Item href="/pants/skinny-jeans">SKINNY JEANS</NavDropdown.Item> <NavDropdown title="DRESS" onMouseEnter={() => handleMouseEnter("dress")} onMouseLeave={() => handleMouseLeave("dress")} show={toggle.dress} toggle={() => handleToggle("dress")} onClick={() => handleClick("/dress")}>
<NavDropdown.Item href="/pants/banding">BANDING PANTS</NavDropdown.Item> <NavDropdown.Item href="/dress/long">LONG DRESS</NavDropdown.Item>
<NavDropdown.Item href="/pants/wide-fit">WIDE-FIT PANTS</NavDropdown.Item> <NavDropdown.Item href="/dress/short">SHORT DRESS</NavDropdown.Item>
<NavDropdown.Item href="/pants/boot-cut">BOOT-CUT PANTS</NavDropdown.Item> <NavDropdown.Item href="/dress/knit">KNIT DRESS</NavDropdown.Item>
<NavDropdown.Item href="/pants/straight-fit">STRAIGHT-FIT PANTS</NavDropdown.Item> <NavDropdown.Item href="/dress/shirt">SHIRT DRESS</NavDropdown.Item>
<NavDropdown.Item href="/pants/wide-fit">WIDE-FIT PANTS</NavDropdown.Item> <NavDropdown.Item href="/dress/pattern">PATTERN DRESS</NavDropdown.Item>
<NavDropdown.Item href="/pants/shorts">SHORTS</NavDropdown.Item> <NavDropdown.Item href="/dress/bustier">BUSTIER DRESS</NavDropdown.Item>
<NavDropdown.Item href="/pants/trousers">TROUSERS</NavDropdown.Item> <NavDropdown.Item href="/dress/two-piece">TWO-PIECE DRESS</NavDropdown.Item>
<NavDropdown.Item href="/pants/leggings">LEGGINGS</NavDropdown.Item> </NavDropdown>
<NavDropdown.Item href="/pants/jumpsuit_overalls">JUMPSUIT / OVERALLS</NavDropdown.Item> <NavDropdown title="OUTER" onMouseEnter={() => handleMouseEnter("outer")} onMouseLeave={() => handleMouseLeave("outer")} show={toggle.outer} toggle={() => handleToggle("outer")} onClick={() => handleClick("/outer")}>
</NavDropdown> <NavDropdown.Item href="/outer/padded-jacket">PADDED JACKET</NavDropdown.Item>
<NavDropdown title="SKIRT" onMouseEnter={() => handleMouseEnter("skirt")} onMouseLeave={() => handleMouseLeave("skirt")} show={toggle.skirt} toggle={() => handleToggle("skirt")} onClick={() => handleClick("/skirt")}> <NavDropdown.Item href="/outer/jacket">JACKET</NavDropdown.Item>
<NavDropdown.Item href="/skirt/long">LONG SKIRT</NavDropdown.Item> <NavDropdown.Item href="/outer/jumper">JUMPER</NavDropdown.Item>
<NavDropdown.Item href="/skirt/midi">MIDI SKIRT</NavDropdown.Item> <NavDropdown.Item href="/outer/coat">COAT</NavDropdown.Item>
<NavDropdown.Item href="/skirt/mini">MINI SKIRT</NavDropdown.Item> <NavDropdown.Item href="/outer/fleece">FLEECE</NavDropdown.Item>
</NavDropdown> <NavDropdown.Item href="/outer/cardigan_vest">CARDIGAN / VEST</NavDropdown.Item>
<Nav.Item> </NavDropdown>
<Nav.Link href="/training">TRAINING</Nav.Link> <NavDropdown title="TOP" onMouseEnter={() => handleMouseEnter("top")} onMouseLeave={() => handleMouseLeave("top")} show={toggle.top} toggle={() => handleToggle("top")} onClick={() => handleClick("/top")}>
</Nav.Item> <NavDropdown.Item href="/top/knit">KNIT</NavDropdown.Item>
<NavDropdown title="SHOES" onMouseEnter={() => handleMouseEnter("shoes")} onMouseLeave={() => handleMouseLeave("shoes")} show={toggle.shoes} toggle={() => handleToggle("shoes")} onClick={() => handleClick("/shoes")}> <NavDropdown.Item href="/top/hoody">HOODY</NavDropdown.Item>
<NavDropdown.Item href="/skirt/sneakers_slip-on">SNEAKERS / SLIP-ON</NavDropdown.Item> <NavDropdown.Item href="/top/blouse">BLOUSE</NavDropdown.Item>
<NavDropdown.Item href="/skirt/flat_loafer">FLAT / LOAFER</NavDropdown.Item> <NavDropdown.Item href="/top/shirt">SHIRT</NavDropdown.Item>
<NavDropdown.Item href="/skirt/heel_pump">HEEL / PUMP</NavDropdown.Item> <NavDropdown.Item href="/top/sweatshirt">SWEATSHIRT</NavDropdown.Item>
<NavDropdown.Item href="/skirt/boots">BOOTS</NavDropdown.Item> <NavDropdown.Item href="/top/long-sleeve-shirt">LONG SLEEVE SHIRT</NavDropdown.Item>
<NavDropdown.Item href="/skirt/sandal_slipper">SANDAL / SLIPPER</NavDropdown.Item> <NavDropdown.Item href="/top/short-sleeved-shirt_sleeveless-shirt">SHORT SLEEVE / SLEEVELESS SHIRT</NavDropdown.Item>
</NavDropdown> </NavDropdown>
</Nav> <NavDropdown title="PANTS" onMouseEnter={() => handleMouseEnter("pants")} onMouseLeave={() => handleMouseLeave("pants")} show={toggle.pants} toggle={() => handleToggle("pants")} onClick={() => handleClick("/pants")}>
<NavDropdown.Item href="/pants/jeans">JEANS</NavDropdown.Item>
<NavDropdown.Item href="/pants/skinny-jeans">SKINNY JEANS</NavDropdown.Item>
<NavDropdown.Item href="/pants/banding">BANDING PANTS</NavDropdown.Item>
<NavDropdown.Item href="/pants/wide-fit">WIDE-FIT PANTS</NavDropdown.Item>
<NavDropdown.Item href="/pants/boot-cut">BOOT-CUT PANTS</NavDropdown.Item>
<NavDropdown.Item href="/pants/straight-fit">STRAIGHT-FIT PANTS</NavDropdown.Item>
<NavDropdown.Item href="/pants/wide-fit">WIDE-FIT PANTS</NavDropdown.Item>
<NavDropdown.Item href="/pants/shorts">SHORTS</NavDropdown.Item>
<NavDropdown.Item href="/pants/trousers">TROUSERS</NavDropdown.Item>
<NavDropdown.Item href="/pants/leggings">LEGGINGS</NavDropdown.Item>
<NavDropdown.Item href="/pants/jumpsuit_overalls">JUMPSUIT / OVERALLS</NavDropdown.Item>
</NavDropdown>
<NavDropdown title="SKIRT" onMouseEnter={() => handleMouseEnter("skirt")} onMouseLeave={() => handleMouseLeave("skirt")} show={toggle.skirt} toggle={() => handleToggle("skirt")} onClick={() => handleClick("/skirt")}>
<NavDropdown.Item href="/skirt/long">LONG SKIRT</NavDropdown.Item>
<NavDropdown.Item href="/skirt/midi">MIDI SKIRT</NavDropdown.Item>
<NavDropdown.Item href="/skirt/mini">MINI SKIRT</NavDropdown.Item>
</NavDropdown>
<Nav.Item>
<Nav.Link href="/training">TRAINING</Nav.Link>
</Nav.Item>
<NavDropdown title="SHOES" onMouseEnter={() => handleMouseEnter("shoes")} onMouseLeave={() => handleMouseLeave("shoes")} show={toggle.shoes} toggle={() => handleToggle("shoes")} onClick={() => handleClick("/shoes")}>
<NavDropdown.Item href="/skirt/sneakers_slip-on">SNEAKERS / SLIP-ON</NavDropdown.Item>
<NavDropdown.Item href="/skirt/flat_loafer">FLAT / LOAFER</NavDropdown.Item>
<NavDropdown.Item href="/skirt/heel_pump">HEEL / PUMP</NavDropdown.Item>
<NavDropdown.Item href="/skirt/boots">BOOTS</NavDropdown.Item>
<NavDropdown.Item href="/skirt/sandal_slipper">SANDAL / SLIPPER</NavDropdown.Item>
</NavDropdown>
</Nav>
</Navbar>
) )
} }
......
import React, { useState, useEffect, useRef } from 'react'; import React, { useState, useEffect, useRef } from 'react';
import { Redirect } from 'react-router-dom';
import MainNav from '../Components/MainNav'; import MainNav from '../Components/MainNav';
import SubNav from '../Components/SubNav'; import SubNav from '../Components/SubNav';
import Pagination from '../Components/Pagination'; import Pagination from '../Components/Pagination';
...@@ -7,89 +6,114 @@ import search from '../search.svg'; ...@@ -7,89 +6,114 @@ import search from '../search.svg';
import { Row, Col, Form, FormControl, Button, Card } from 'react-bootstrap'; import { Row, Col, Form, FormControl, Button, Card } from 'react-bootstrap';
function Admin() { function Admin() {
function handleClick(e) {
const card = e.target.parentNode.parentNode
console.log(card)
alert('해당 상품을 성공적으로 삭제하였습니다.')
}
return ( return (
<div> <div>
<style type="text/css">
{`
.btn {
background-color: #CDC5C2;
border-color: #CDC5C2;
}
.btn:hover, .btn:active, .btn:focus {
background-color: #91877F;
border-color: #91877F;
}
`}
</style>
<MainNav /> <MainNav />
<SubNav /> <SubNav />
<Row className="justify-content-end mt-5 mr-3"> <Row className="justify-content-end mt-5 mr-3 mb-5">
<Col md={4} sm={5} xs={8} as={Form} inline className="justify-content-end"> <Col as={Form} inline className="justify-content-end">
<FormControl type="text" placeholder="Search" className="mr-1" /> <FormControl type="text" placeholder="Search" className="mr-1" />
<Button bg="dark" variant="dark" type="submit" className="px-2"> <Button type="submit" className="px-2">
<img src={search} width="20" height="20" /> <img src={search} width="20" height="20" />
</Button> </Button>
</Col> </Col>
<Col sm={2} xs={3} as={Button} variant="dark" type="button" href="/:id/productsregist">상품 등록</Col> <Col sm={2} xs={3} as={Button} type="button" href="/regist">상품 등록</Col>
</Row> </Row>
<Row className="mt-5 m-auto justify-content-start"> <Row className="justify-content-start m-5">
<Card className="m-4" style={{width: "18rem"}}> <Card className="my-5" style={{ width: "18rem", margin: "auto"}}>
<Card.Img variant="top" src="https://img.sonyunara.com/files/goods/67460/1607053816_0.jpg" /> <Card.Img variant="top" src="https://img.sonyunara.com/files/goods/67460/1607053816_0.jpg" style={{ objectFit: "contain", height: "22rem" }} />
<Card.Body> <Card.Body>
<Card.Title>케이시앵글부츠(SH)</Card.Title> <Card.Title>케이시앵글부츠(SH)</Card.Title>
<Card.Text> <Card.Text>
재고: 8 재고: 8<br />
구매자 : 10 구매자 : 10
</Card.Text> </Card.Text>
<Button className="float-right" onClick={(e) => handleClick(e)}>삭제</Button>
</Card.Body> </Card.Body>
</Card> </Card>
<Card className="m-4" style={{width: "18rem"}}> <Card className="my-5" style={{ width: "18rem", margin: "auto"}}>
<Card.Img variant="top" src="https://img.sonyunara.com/files/goods/48705/1552562469_0.jpg" /> <Card.Img variant="top" src="https://img.sonyunara.com/files/goods/48705/1552562469_0.jpg" style={{ objectFit: "contain", height: "22rem" }} />
<Card.Body> <Card.Body>
<Card.Title>메리제인플랫(SH)</Card.Title> <Card.Title>메리제인플랫(SH)</Card.Title>
<Card.Text> <Card.Text>
재고: 20 재고: 20<br />
구매자 : 60 구매자 : 60
</Card.Text> </Card.Text>
<Button className="float-right" onClick={(e) => handleClick(e)}>삭제</Button>
</Card.Body> </Card.Body>
</Card> </Card>
<Card className="m-4" style={{width: "18rem"}}> <Card className="my-5" style={{ width: "18rem", margin: "auto"}}>
<Card.Img variant="top" src="https://img.sonyunara.com/files/goods/53386/1567390097_2.jpg" /> <Card.Img variant="top" src="https://img.sonyunara.com/files/goods/53386/1567390097_2.jpg" style={{ objectFit: "contain", height: "22rem" }} />
<Card.Body> <Card.Body>
<Card.Title>솔티드스니커즈(SH)</Card.Title> <Card.Title>솔티드스니커즈(SH)</Card.Title>
<Card.Text> <Card.Text>
재고: 34 재고: 34<br />
구매자 : 5 구매자 : 5
</Card.Text> </Card.Text>
<Button className="float-right" onClick={(e) => handleClick(e)}>삭제</Button>
</Card.Body> </Card.Body>
</Card> </Card>
<Card className="m-4" style={{width: "18rem"}}> <Card className="my-5" style={{ width: "18rem", margin: "auto"}}>
<Card.Img variant="top" src="https://img.sonyunara.com/files/goods/61286/1587540563_0.jpg" /> <Card.Img variant="top" src="https://img.sonyunara.com/files/goods/61286/1587540563_0.jpg" style={{ objectFit: "contain", height: "22rem" }} />
<Card.Body> <Card.Body>
<Card.Title>버켄슬리퍼(SH)</Card.Title> <Card.Title>버켄슬리퍼(SH)</Card.Title>
<Card.Text> <Card.Text>
재고: 재고: 50<br />
구매자 : 구매자 : 18
</Card.Text> </Card.Text>
<Button className="float-right" onClick={(e) => handleClick(e)}>삭제</Button>
</Card.Body> </Card.Body>
</Card> </Card>
<Card className="m-4" style={{width: "18rem"}}> <Card className="my-5" style={{ width: "18rem", margin: "auto"}}>
<Card.Img variant="top" src="https://hotping.co.kr/web/product/big/202011/b8f4c6471955b80fc3991b7d6df8926a.jpg" /> <Card.Img variant="top" src="https://hotping.co.kr/web/product/big/202011/b8f4c6471955b80fc3991b7d6df8926a.jpg" style={{ objectFit: "contain", height: "22rem" }} />
<Card.Body> <Card.Body>
<Card.Title>크레센도 하이힐펌프스</Card.Title> <Card.Title>크레센도 하이힐펌프스</Card.Title>
<Card.Text> <Card.Text>
재고: 35 재고: 35<br />
구매자 : 70 구매자 : 70
</Card.Text> </Card.Text>
<Button className="float-right" onClick={(e) => handleClick(e)}>삭제</Button>
</Card.Body> </Card.Body>
</Card> </Card>
<Card className="m-4" style={{width: "18rem"}}> <Card className="my-5" style={{ width: "18rem", margin: "auto"}}>
<Card.Img variant="top" src="https://hotping.co.kr/web/product/big/202011/888e4e8d6a2c2e7da385b079151fcba2.jpg" /> <Card.Img variant="top" src="https://hotping.co.kr/web/product/big/202011/888e4e8d6a2c2e7da385b079151fcba2.jpg" style={{ objectFit: "contain", height: "22rem" }} />
<Card.Body> <Card.Body>
<Card.Title>어텀솔져1cm 스웨이드로퍼</Card.Title> <Card.Title>어텀솔져1cm 스웨이드로퍼</Card.Title>
<Card.Text> <Card.Text>
재고: 40 재고: 40<br />
구매자 : 30 구매자 : 30
</Card.Text> </Card.Text>
<Button className="float-right" onClick={(e) => handleClick(e)}>삭제</Button>
</Card.Body> </Card.Body>
</Card> </Card>
<Card className="m-4" style={{width: "18rem"}}> <Card className="my-5" style={{ width: "18rem", margin: "auto"}}>
<Card.Img variant="top" src="https://hotping.co.kr/web/product/big/202007/3308564012eb14e6c11ed621fa7555fb.jpg" /> <Card.Img variant="top" src="https://hotping.co.kr/web/product/big/202007/3308564012eb14e6c11ed621fa7555fb.jpg" style={{ objectFit: "contain", height: "22rem" }} />
<Card.Body> <Card.Body>
<Card.Title>포웰3.5cm 스니커즈</Card.Title> <Card.Title>포웰3.5cm 스니커즈</Card.Title>
<Card.Text> <Card.Text>
재고: 15 재고: 15<br />
구매자 : 50 구매자 : 50
</Card.Text> </Card.Text>
<Button className="float-right" onClick={(e) => handleClick(e)}>삭제</Button>
</Card.Body> </Card.Body>
</Card> </Card>
</Row> </Row>
......
import React, { useState, useEffect, useRef } from 'react'; import React, { useState, useEffect, useRef } from 'react';
import MainNav from '../Components/MainNav'; import MainNav from '../Components/MainNav';
import SubNav from '../Components/SubNav'; import SubNav from '../Components/SubNav';
import { Card, CardDeck, CardColumns, Container, Row } from 'react-bootstrap'; import { Card, Container, Row } from 'react-bootstrap';
function Home() { function Home() {
......
import React, { useState, useEffect, useRef } from 'react'; import React, { useState, useEffect, useRef } from 'react';
import MainNav from '../Components/MainNav'; import MainNav from '../Components/MainNav';
import SubNav from '../Components/SubNav'; import SubNav from '../Components/SubNav';
import { Row, Col, Form, Card } from 'react-bootstrap';
function Products() { function Products() {
...@@ -8,6 +9,63 @@ function Products() { ...@@ -8,6 +9,63 @@ function Products() {
<div> <div>
<MainNav /> <MainNav />
<SubNav /> <SubNav />
<Row className="justify-content-center mt-5">
<Col md={4}>
<img src="https://img.sonyunara.com/files/goods/65976/1601953605_0.jpg" style={{ objectFit: "contain", width: "100%" }} />
</Col>
<Col md={4} className="align-middle">
<Form>
<Form.Group>
<Form.Label>옵션</Form.Label>
<Form.Control as="select" defaultValue="옵션 선택">
<option>옵션 선택</option>
<option>브릭레드(스트랩포함)</option>
<option>베이지(스트랩포함)</option>
<option>블랙(스트랩포함)</option>
</Form.Control>
</Form.Group>
</Form>
</Col>
</Row>
<Row className="justify-content-center mt-5">
<Col md={8}>
<h3 style={{ borderBottom: "1px solid #91877F", paddingBottom: "5px", marginBottom: "1em" }}>설명</h3>
<div></div>
</Col>
</Row>
<div className="m-5">
<h6 style={{ borderBottom: "1px solid", paddingBottom: "5px", marginBottom: "1em" }}>회원님이 선호할만한 상품 추천</h6>
<Row className="justify-content-space" style={{ objectFit: "contain", width: "100%" }}>
<Col as={Card} style={{ width: "16rem" }}>
<Card.Img variant="top" src="https://img.sonyunara.com/files/goods/67504/1607328307_0.jpg" />
<Card.Body>
<Card.Title>클로타탄원피스</Card.Title>
<Card.Text>구매자 : 30</Card.Text>
</Card.Body>
</Col>
<Col as={Card} style={{ width: "16rem" }}>
<Card.Img variant="top" src="https://img.sonyunara.com/files/goods/67504/1607328307_0.jpg" />
<Card.Body>
<Card.Title>클로타탄원피스</Card.Title>
<Card.Text>구매자 : 30</Card.Text>
</Card.Body>
</Col>
<Col as={Card} style={{ width: "16rem" }}>
<Card.Img variant="top" src="https://img.sonyunara.com/files/goods/67504/1607328307_0.jpg" />
<Card.Body>
<Card.Title>클로타탄원피스</Card.Title>
<Card.Text>구매자 : 30</Card.Text>
</Card.Body>
</Col>
<Col as={Card} style={{ width: "16rem" }}>
<Card.Img variant="top" src="https://img.sonyunara.com/files/goods/67504/1607328307_0.jpg" />
<Card.Body>
<Card.Title>클로타탄원피스</Card.Title>
<Card.Text>구매자 : 30</Card.Text>
</Card.Body>
</Col>
</Row>
</div>
</div> </div>
) )
} }
......
<?xml version="1.0" ?><svg viewBox="0 0 32 32" style="fill:rgba(255,255,255,.5)" xmlns="http://www.w3.org/2000/svg"><defs><style>.cls-1{fill:none;}</style></defs><title/><g data-name="Layer 2" id="Layer_2"><path d="M23.52,29h-15a5.48,5.48,0,0,1-5.31-6.83L6.25,9.76a1,1,0,0,1,1-.76H24a1,1,0,0,1,1,.7l3.78,12.16a5.49,5.49,0,0,1-.83,4.91A5.41,5.41,0,0,1,23.52,29ZM8,11,5.11,22.65A3.5,3.5,0,0,0,8.48,27h15a3.44,3.44,0,0,0,2.79-1.42,3.5,3.5,0,0,0,.53-3.13L23.28,11Z"/><path d="M20,17a1,1,0,0,1-1-1V8a3,3,0,0,0-6,0v8a1,1,0,0,1-2,0V8A5,5,0,0,1,21,8v8A1,1,0,0,1,20,17Z"/></g><g id="frame"><rect class="cls-1" height="32" width="32"/></g></svg> <?xml version="1.0" ?><svg viewBox="0 0 32 32" style="fill: #f8f9fa" xmlns="http://www.w3.org/2000/svg"><defs><style>.cls-1{fill:none;}</style></defs><title/><g data-name="Layer 2" id="Layer_2"><path d="M23.52,29h-15a5.48,5.48,0,0,1-5.31-6.83L6.25,9.76a1,1,0,0,1,1-.76H24a1,1,0,0,1,1,.7l3.78,12.16a5.49,5.49,0,0,1-.83,4.91A5.41,5.41,0,0,1,23.52,29ZM8,11,5.11,22.65A3.5,3.5,0,0,0,8.48,27h15a3.44,3.44,0,0,0,2.79-1.42,3.5,3.5,0,0,0,.53-3.13L23.28,11Z"/><path d="M20,17a1,1,0,0,1-1-1V8a3,3,0,0,0-6,0v8a1,1,0,0,1-2,0V8A5,5,0,0,1,21,8v8A1,1,0,0,1,20,17Z"/></g><g id="frame"><rect class="cls-1" height="32" width="32"/></g></svg>
\ No newline at end of file \ No newline at end of file
...@@ -6,7 +6,7 @@ ...@@ -6,7 +6,7 @@
preserveAspectRatio="xMidYMid meet"> preserveAspectRatio="xMidYMid meet">
<g transform="translate(0.000000,32.000000) scale(0.100000,-0.100000)" <g transform="translate(0.000000,32.000000) scale(0.100000,-0.100000)"
fill="#fff" stroke="none"> fill="#f8f9fa" stroke="none">
<path d="M86 288 c-19 -27 -20 -39 -4 -73 13 -28 52 -35 62 -9 10 26 7 79 -6 <path d="M86 288 c-19 -27 -20 -39 -4 -73 13 -28 52 -35 62 -9 10 26 7 79 -6
92 -18 18 -35 15 -52 -10z m52 -21 c6 -30 -7 -67 -23 -67 -22 0 -38 46 -24 71 92 -18 18 -35 15 -52 -10z m52 -21 c6 -30 -7 -67 -23 -67 -22 0 -38 46 -24 71
12 24 42 21 47 -4z"/> 12 24 42 21 47 -4z"/>
......
...@@ -4,6 +4,7 @@ import { BrowserRouter as Router, Route, Redirect, Switch } from 'react-router-d ...@@ -4,6 +4,7 @@ import { BrowserRouter as Router, Route, Redirect, Switch } from 'react-router-d
import Home from './Pages/Home'; import Home from './Pages/Home';
import Login from './Pages/Login'; import Login from './Pages/Login';
import Signup from './Pages/Signup'; import Signup from './Pages/Signup';
import Product from "./Pages/Products";
import Admin from './Pages/Admin'; import Admin from './Pages/Admin';
import ProductsRegist from './Pages/ProductsRegist'; import ProductsRegist from './Pages/ProductsRegist';
import ShoppingCart from './Pages/ShoppingCart'; import ShoppingCart from './Pages/ShoppingCart';
...@@ -18,6 +19,7 @@ ReactDOM.render( ...@@ -18,6 +19,7 @@ ReactDOM.render(
<Route exact path="/" component={Home} /> <Route exact path="/" component={Home} />
<Route path="/login" component={Login} /> <Route path="/login" component={Login} />
<Route path="/signup" component={Signup} /> <Route path="/signup" component={Signup} />
<Route path="/product"component={Product} />
<Route path="/admin" component={Admin} /> <Route path="/admin" component={Admin} />
<Route path="/regist" component={ProductsRegist} /> <Route path="/regist" component={ProductsRegist} />
<Route path="/shoppingcart" component={ShoppingCart} /> <Route path="/shoppingcart" component={ShoppingCart} />
......
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 595.3"><g fill="#61DAFB"><path d="M666.3 296.5c0-32.5-40.7-63.3-103.1-82.4 14.4-63.6 8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6 0 8.3.9 11.4 2.6 13.6 7.8 19.5 37.5 14.9 75.7-1.1 9.4-2.9 19.3-5.1 29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50 32.6-30.3 63.2-46.9 84-46.9V78c-27.5 0-63.5 19.6-99.9 53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7 0 51.4 16.5 84 46.6-14 14.7-28 31.4-41.3 49.9-22.6 2.4-44 6.1-63.6 11-2.3-10-4-19.7-5.2-29-4.7-38.2 1.1-67.9 14.6-75.8 3-1.8 6.9-2.6 11.5-2.6V78.5c-8.4 0-16 1.8-22.6 5.6-28.1 16.2-34.4 66.7-19.9 130.1-62.2 19.2-102.7 49.9-102.7 82.3 0 32.5 40.7 63.3 103.1 82.4-14.4 63.6-8 114.2 20.2 130.4 6.5 3.8 14.1 5.6 22.5 5.6 27.5 0 63.5-19.6 99.9-53.6 36.4 33.8 72.4 53.2 99.9 53.2 8.4 0 16-1.8 22.6-5.6 28.1-16.2 34.4-66.7 19.9-130.1 62-19.1 102.5-49.9 102.5-82.3zm-130.2-66.7c-3.7 12.9-8.3 26.2-13.5 39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4 14.2 2.1 27.9 4.7 41 7.9zm-45.8 106.5c-7.8 13.5-15.8 26.3-24.1 38.2-14.9 1.3-30 2-45.2 2-15.1 0-30.2-.7-45-1.9-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8 6.2-13.4 13.2-26.8 20.7-39.9 7.8-13.5 15.8-26.3 24.1-38.2 14.9-1.3 30-2 45.2-2 15.1 0 30.2.7 45 1.9 8.3 11.9 16.4 24.6 24.2 38 7.6 13.1 14.5 26.4 20.8 39.8-6.3 13.4-13.2 26.8-20.7 39.9zm32.3-13c5.4 13.4 10 26.8 13.8 39.8-13.1 3.2-26.9 5.9-41.2 8 4.9-7.7 9.8-15.6 14.4-23.7 4.6-8 8.9-16.1 13-24.1zM421.2 430c-9.3-9.6-18.6-20.3-27.8-32 9 .4 18.2.7 27.5.7 9.4 0 18.7-.2 27.8-.7-9 11.7-18.3 22.4-27.5 32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9 3.7-12.9 8.3-26.2 13.5-39.5 4.1 8 8.4 16 13.1 24 4.7 8 9.5 15.8 14.4 23.4zM420.7 163c9.3 9.6 18.6 20.3 27.8 32-9-.4-18.2-.7-27.5-.7-9.4 0-18.7.2-27.8.7 9-11.7 18.3-22.4 27.5-32zm-74 58.9c-4.9 7.7-9.8 15.6-14.4 23.7-4.6 8-8.9 16-13 24-5.4-13.4-10-26.8-13.8-39.8 13.1-3.1 26.9-5.8 41.2-7.9zm-90.5 125.2c-35.4-15.1-58.3-34.9-58.3-50.6 0-15.7 22.9-35.6 58.3-50.6 8.6-3.7 18-7 27.7-10.1 5.7 19.6 13.2 40 22.5 60.9-9.2 20.8-16.6 41.1-22.2 60.6-9.9-3.1-19.3-6.5-28-10.2zM310 490c-13.6-7.8-19.5-37.5-14.9-75.7 1.1-9.4 2.9-19.3 5.1-29.4 19.6 4.8 41 8.5 63.5 10.9 13.5 18.5 27.5 35.3 41.6 50-32.6 30.3-63.2 46.9-84 46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7 38.2-1.1 67.9-14.6 75.8-3 1.8-6.9 2.6-11.5 2.6-20.7 0-51.4-16.5-84-46.6 14-14.7 28-31.4 41.3-49.9 22.6-2.4 44-6.1 63.6-11 2.3 10.1 4.1 19.8 5.2 29.1zm38.5-66.7c-8.6 3.7-18 7-27.7 10.1-5.7-19.6-13.2-40-22.5-60.9 9.2-20.8 16.6-41.1 22.2-60.6 9.9 3.1 19.3 6.5 28.1 10.2 35.4 15.1 58.3 34.9 58.3 50.6-.1 15.7-23 35.6-58.4 50.6zM320.8 78.4z"/><circle cx="420.9" cy="296.5" r="45.7"/><path d="M520.5 78.1z"/></g></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 841.9 595.3"><g fill="#f8f9fa"><path d="M666.3 296.5c0-32.5-40.7-63.3-103.1-82.4 14.4-63.6 8-114.2-20.2-130.4-6.5-3.8-14.1-5.6-22.4-5.6v22.3c4.6 0 8.3.9 11.4 2.6 13.6 7.8 19.5 37.5 14.9 75.7-1.1 9.4-2.9 19.3-5.1 29.4-19.6-4.8-41-8.5-63.5-10.9-13.5-18.5-27.5-35.3-41.6-50 32.6-30.3 63.2-46.9 84-46.9V78c-27.5 0-63.5 19.6-99.9 53.6-36.4-33.8-72.4-53.2-99.9-53.2v22.3c20.7 0 51.4 16.5 84 46.6-14 14.7-28 31.4-41.3 49.9-22.6 2.4-44 6.1-63.6 11-2.3-10-4-19.7-5.2-29-4.7-38.2 1.1-67.9 14.6-75.8 3-1.8 6.9-2.6 11.5-2.6V78.5c-8.4 0-16 1.8-22.6 5.6-28.1 16.2-34.4 66.7-19.9 130.1-62.2 19.2-102.7 49.9-102.7 82.3 0 32.5 40.7 63.3 103.1 82.4-14.4 63.6-8 114.2 20.2 130.4 6.5 3.8 14.1 5.6 22.5 5.6 27.5 0 63.5-19.6 99.9-53.6 36.4 33.8 72.4 53.2 99.9 53.2 8.4 0 16-1.8 22.6-5.6 28.1-16.2 34.4-66.7 19.9-130.1 62-19.1 102.5-49.9 102.5-82.3zm-130.2-66.7c-3.7 12.9-8.3 26.2-13.5 39.5-4.1-8-8.4-16-13.1-24-4.6-8-9.5-15.8-14.4-23.4 14.2 2.1 27.9 4.7 41 7.9zm-45.8 106.5c-7.8 13.5-15.8 26.3-24.1 38.2-14.9 1.3-30 2-45.2 2-15.1 0-30.2-.7-45-1.9-8.3-11.9-16.4-24.6-24.2-38-7.6-13.1-14.5-26.4-20.8-39.8 6.2-13.4 13.2-26.8 20.7-39.9 7.8-13.5 15.8-26.3 24.1-38.2 14.9-1.3 30-2 45.2-2 15.1 0 30.2.7 45 1.9 8.3 11.9 16.4 24.6 24.2 38 7.6 13.1 14.5 26.4 20.8 39.8-6.3 13.4-13.2 26.8-20.7 39.9zm32.3-13c5.4 13.4 10 26.8 13.8 39.8-13.1 3.2-26.9 5.9-41.2 8 4.9-7.7 9.8-15.6 14.4-23.7 4.6-8 8.9-16.1 13-24.1zM421.2 430c-9.3-9.6-18.6-20.3-27.8-32 9 .4 18.2.7 27.5.7 9.4 0 18.7-.2 27.8-.7-9 11.7-18.3 22.4-27.5 32zm-74.4-58.9c-14.2-2.1-27.9-4.7-41-7.9 3.7-12.9 8.3-26.2 13.5-39.5 4.1 8 8.4 16 13.1 24 4.7 8 9.5 15.8 14.4 23.4zM420.7 163c9.3 9.6 18.6 20.3 27.8 32-9-.4-18.2-.7-27.5-.7-9.4 0-18.7.2-27.8.7 9-11.7 18.3-22.4 27.5-32zm-74 58.9c-4.9 7.7-9.8 15.6-14.4 23.7-4.6 8-8.9 16-13 24-5.4-13.4-10-26.8-13.8-39.8 13.1-3.1 26.9-5.8 41.2-7.9zm-90.5 125.2c-35.4-15.1-58.3-34.9-58.3-50.6 0-15.7 22.9-35.6 58.3-50.6 8.6-3.7 18-7 27.7-10.1 5.7 19.6 13.2 40 22.5 60.9-9.2 20.8-16.6 41.1-22.2 60.6-9.9-3.1-19.3-6.5-28-10.2zM310 490c-13.6-7.8-19.5-37.5-14.9-75.7 1.1-9.4 2.9-19.3 5.1-29.4 19.6 4.8 41 8.5 63.5 10.9 13.5 18.5 27.5 35.3 41.6 50-32.6 30.3-63.2 46.9-84 46.9-4.5-.1-8.3-1-11.3-2.7zm237.2-76.2c4.7 38.2-1.1 67.9-14.6 75.8-3 1.8-6.9 2.6-11.5 2.6-20.7 0-51.4-16.5-84-46.6 14-14.7 28-31.4 41.3-49.9 22.6-2.4 44-6.1 63.6-11 2.3 10.1 4.1 19.8 5.2 29.1zm38.5-66.7c-8.6 3.7-18 7-27.7 10.1-5.7-19.6-13.2-40-22.5-60.9 9.2-20.8 16.6-41.1 22.2-60.6 9.9 3.1 19.3 6.5 28.1 10.2 35.4 15.1 58.3 34.9 58.3 50.6-.1 15.7-23 35.6-58.4 50.6zM320.8 78.4z"/><circle cx="420.9" cy="296.5" r="45.7"/><path d="M520.5 78.1z"/></g></svg>
\ No newline at end of file \ No newline at end of file
<?xml version="1.0" ?><svg viewBox="0 0 32 32" style="fill:rgba(255,255,255,.5)" xmlns="http://www.w3.org/2000/svg"><title/><g id="setting"><path d="M19.06,32H12.94A1.94,1.94,0,0,1,11,30.06V28.38c-.19-.08-.38-.15-.57-.24L9.21,29.37a1.92,1.92,0,0,1-2.68,0l-3.9-3.9a1.92,1.92,0,0,1,0-2.68l1.24-1.23c-.09-.19-.16-.38-.24-.57H1.94A1.94,1.94,0,0,1,0,19.06V12.94A1.94,1.94,0,0,1,1.94,11H3.62c.08-.19.15-.38.24-.57L2.63,9.21a1.92,1.92,0,0,1,0-2.68l3.9-3.9a1.92,1.92,0,0,1,2.68,0l1.23,1.24c.19-.09.38-.16.57-.24V1.94A1.94,1.94,0,0,1,12.94,0h6.12A1.94,1.94,0,0,1,21,1.94V3.62l.57.24,1.22-1.23a1.92,1.92,0,0,1,2.68,0l3.9,3.9a1.92,1.92,0,0,1,0,2.68l-1.24,1.23c.09.19.16.38.24.57h1.68A1.94,1.94,0,0,1,32,12.94v6.12A1.94,1.94,0,0,1,30.06,21H28.38c-.08.19-.15.38-.24.57l1.23,1.22a1.92,1.92,0,0,1,0,2.68l-3.9,3.9a1.92,1.92,0,0,1-2.68,0l-1.23-1.24c-.19.09-.38.16-.57.24v1.68A1.94,1.94,0,0,1,19.06,32Zm-9-7,.63.32a10.57,10.57,0,0,0,1.6.66l.67.22V30l5.62-.06-.06-3.05.7-.22A11.36,11.36,0,0,0,20.93,26l.65-.32,2.29,2.2L27.81,24,25.52,21.9l.31-.59a10.72,10.72,0,0,0,.73-1.71l.21-.6H30l-.06-6H26.89l-.2-.62A11.72,11.72,0,0,0,26,10.71l-.31-.61,2.2-2.2L24,4.11,21.9,6.31,21.27,6a10.57,10.57,0,0,0-1.6-.66L19,5.11V2l-6.06.06L13,5.11l-.67.22a10.57,10.57,0,0,0-1.6.66l-.63.32L7.9,4.11,4.11,8l2.2,2.12L6,10.73a10.57,10.57,0,0,0-.66,1.6L5.11,13H2l.06,5.41,3.05-.06.22.67A10.57,10.57,0,0,0,6,20.62l.32.63-2.2,2.2L8,27.24Z"/><path d="M16,24a8,8,0,1,1,8-8A8,8,0,0,1,16,24Zm0-14a6,6,0,1,0,6,6A6,6,0,0,0,16,10Z"/></g></svg> <?xml version="1.0" ?><svg viewBox="0 0 32 32" style="fill: #f8f9fa" xmlns="http://www.w3.org/2000/svg"><title/><g id="setting"><path d="M19.06,32H12.94A1.94,1.94,0,0,1,11,30.06V28.38c-.19-.08-.38-.15-.57-.24L9.21,29.37a1.92,1.92,0,0,1-2.68,0l-3.9-3.9a1.92,1.92,0,0,1,0-2.68l1.24-1.23c-.09-.19-.16-.38-.24-.57H1.94A1.94,1.94,0,0,1,0,19.06V12.94A1.94,1.94,0,0,1,1.94,11H3.62c.08-.19.15-.38.24-.57L2.63,9.21a1.92,1.92,0,0,1,0-2.68l3.9-3.9a1.92,1.92,0,0,1,2.68,0l1.23,1.24c.19-.09.38-.16.57-.24V1.94A1.94,1.94,0,0,1,12.94,0h6.12A1.94,1.94,0,0,1,21,1.94V3.62l.57.24,1.22-1.23a1.92,1.92,0,0,1,2.68,0l3.9,3.9a1.92,1.92,0,0,1,0,2.68l-1.24,1.23c.09.19.16.38.24.57h1.68A1.94,1.94,0,0,1,32,12.94v6.12A1.94,1.94,0,0,1,30.06,21H28.38c-.08.19-.15.38-.24.57l1.23,1.22a1.92,1.92,0,0,1,0,2.68l-3.9,3.9a1.92,1.92,0,0,1-2.68,0l-1.23-1.24c-.19.09-.38.16-.57.24v1.68A1.94,1.94,0,0,1,19.06,32Zm-9-7,.63.32a10.57,10.57,0,0,0,1.6.66l.67.22V30l5.62-.06-.06-3.05.7-.22A11.36,11.36,0,0,0,20.93,26l.65-.32,2.29,2.2L27.81,24,25.52,21.9l.31-.59a10.72,10.72,0,0,0,.73-1.71l.21-.6H30l-.06-6H26.89l-.2-.62A11.72,11.72,0,0,0,26,10.71l-.31-.61,2.2-2.2L24,4.11,21.9,6.31,21.27,6a10.57,10.57,0,0,0-1.6-.66L19,5.11V2l-6.06.06L13,5.11l-.67.22a10.57,10.57,0,0,0-1.6.66l-.63.32L7.9,4.11,4.11,8l2.2,2.12L6,10.73a10.57,10.57,0,0,0-.66,1.6L5.11,13H2l.06,5.41,3.05-.06.22.67A10.57,10.57,0,0,0,6,20.62l.32.63-2.2,2.2L8,27.24Z"/><path d="M16,24a8,8,0,1,1,8-8A8,8,0,0,1,16,24Zm0-14a6,6,0,1,0,6,6A6,6,0,0,0,16,10Z"/></g></svg>
\ No newline at end of file \ No newline at end of file
<svg width="128" height="128" style="enable-background:new 0 0 128 128;" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="Layer_2">
<g>
<g>
<linearGradient id="SVGID_1_" gradientUnits="userSpaceOnUse" x1="7.1665" x2="41.611" y1="25.8911" y2="25.8911">
<stop offset="0.5" style="stop-color:#FFB700"/>
<stop offset="0.6437" style="stop-color:#FFB503"/>
<stop offset="0.7668" style="stop-color:#FFB10E"/>
<stop offset="0.882" style="stop-color:#FFA920"/>
<stop offset="0.9" style="stop-color:#FFA723"/>
</linearGradient>
<circle cx="24.39" cy="25.89" r="17.22" style="fill:url(#SVGID_1_);stroke:#DE8900;stroke-width:3;stroke-linejoin:round;stroke-miterlimit:10;"/>
<circle cx="24.39" cy="25.89" r="9.82" style="fill:#FFFFFF;"/>
</g>
<g>
<linearGradient id="SVGID_2_" gradientUnits="userSpaceOnUse" x1="86.389" x2="120.8335" y1="25.8911" y2="25.8911">
<stop offset="0.5" style="stop-color:#FFB700"/>
<stop offset="0.6437" style="stop-color:#FFB503"/>
<stop offset="0.7668" style="stop-color:#FFB10E"/>
<stop offset="0.882" style="stop-color:#FFA920"/>
<stop offset="0.9" style="stop-color:#FFA723"/>
</linearGradient>
<circle cx="103.61" cy="25.89" r="17.22" style="fill:url(#SVGID_2_);stroke:#DE8900;stroke-width:3;stroke-linejoin:round;stroke-miterlimit:10;"/>
<circle cx="103.61" cy="25.89" r="9.82" style="fill:#FFFFFF;"/>
</g>
</g>
<g>
<linearGradient id="SVGID_3_" gradientUnits="userSpaceOnUse" x1="64" x2="64" y1="13.6818" y2="116.8519">
<stop offset="0.5" style="stop-color:#FFB700"/>
<stop offset="0.6341" style="stop-color:#FCB402"/>
<stop offset="0.7489" style="stop-color:#F2A90A"/>
<stop offset="0.8564" style="stop-color:#E29717"/>
<stop offset="0.9" style="stop-color:#D98E1E"/>
</linearGradient>
<path d="M64,117.83c-25.77,0-53.5-16.43-53.5-52.5c0-36.07,27.73-52.5,53.5-52.5 c14.27,0,27.48,4.81,37.21,13.54c10.66,9.57,16.29,23.04,16.29,38.96c0,15.84-5.63,29.29-16.29,38.89 C91.45,113,78.24,117.83,64,117.83z" style="fill:url(#SVGID_3_);"/>
<path d="M64,14.33L64,14.33c13.9,0,26.75,4.67,36.2,13.16c10.33,9.28,15.8,22.37,15.8,37.84 c0,15.4-5.46,28.46-15.8,37.77c-9.47,8.53-22.33,13.23-36.2,13.23c-25.04,0-52-15.96-52-51c0-15.65,5.46-28.8,15.79-38.01 C37.18,18.94,50.04,14.33,64,14.33 M64,11.33L64,11.33L64,11.33L64,11.33c-28.56,0-55,18.66-55,54c0,35.15,26.44,54,55,54h0h0h0 c28.55,0,55-19.33,55-54C119,30.47,92.56,11.33,64,11.33L64,11.33z" style="fill:#DE8900;"/>
</g>
<g>
<ellipse cx="37.14" cy="58.34" rx="8.84" ry="10" style="fill:#404040;"/>
<ellipse cx="90.86" cy="58.22" rx="8.84" ry="10" style="fill:#404040;"/>
</g>
<path d="M64,91.51c10.62,0,19.23-4.43,19.23,0.99c0,5.43-8.61,21.25-19.23,21.25S44.77,97.93,44.77,92.5 C44.77,87.08,53.38,91.51,64,91.51z" style="fill:#CCCCCC;"/>
<path d="M64,86.35c14.11,0,25.54-4.02,25.54,0.9S78.11,106.5,64,106.5S38.46,92.17,38.46,87.25 S49.89,86.35,64,86.35z" style="fill:#231F20;"/>
<g>
<path d="M57.52,47.03c0,0,0.11-0.17,0.32-0.45c0.05-0.07,0.11-0.14,0.18-0.23 c0.09-0.09,0.2-0.18,0.31-0.29c0.23-0.21,0.5-0.43,0.78-0.62c0.28-0.21,0.61-0.41,0.97-0.59c0.36-0.2,0.76-0.33,1.18-0.49 c0.42-0.12,0.87-0.25,1.33-0.31c0.46-0.09,0.94-0.1,1.41-0.12c0.47,0.02,0.95,0.03,1.41,0.12c0.46,0.06,0.91,0.19,1.33,0.31 c0.42,0.15,0.82,0.29,1.18,0.49c0.36,0.18,0.69,0.38,0.97,0.59c0.29,0.19,0.53,0.4,0.74,0.59c0.21,0.18,0.38,0.36,0.51,0.52 c0.26,0.31,0.39,0.5,0.39,0.5c0.52,0.77,0.32,1.81-0.44,2.33c-0.34,0.23-0.73,0.32-1.11,0.28l-0.33-0.03c0,0-0.18-0.02-0.46-0.07 c-0.28-0.06-0.68-0.12-1.12-0.19c-0.89-0.14-1.99-0.25-3.07-0.26c-1.09,0-2.18,0.12-3.08,0.25c-0.21,0.03-0.41,0.06-0.58,0.08 c-0.09,0.01-0.16,0.02-0.25,0.03c-0.1,0.03-0.19,0.05-0.27,0.07c-0.34,0.09-0.54,0.12-0.54,0.12c-0.95,0.16-1.85-0.48-2.02-1.43 C57.2,47.82,57.3,47.39,57.52,47.03z" style="fill:#404040;"/>
<path d="M52.63,37.06c0,0,0.22-0.3,0.65-0.76c0.11-0.12,0.23-0.25,0.36-0.39 c0.16-0.15,0.35-0.29,0.54-0.46c0.39-0.33,0.85-0.7,1.36-1c0.26-0.16,0.52-0.33,0.8-0.5c0.29-0.15,0.59-0.3,0.9-0.45 c0.62-0.33,1.32-0.54,2.04-0.8c0.73-0.19,1.5-0.42,2.3-0.51c0.79-0.15,1.61-0.16,2.43-0.2c0.82,0.04,1.64,0.05,2.43,0.2 c0.8,0.09,1.56,0.32,2.3,0.51c0.72,0.26,1.42,0.48,2.04,0.8c0.31,0.16,0.61,0.31,0.9,0.45c0.28,0.17,0.54,0.34,0.8,0.5 c0.52,0.3,0.95,0.66,1.32,0.97c0.38,0.3,0.68,0.59,0.92,0.85c0.48,0.51,0.72,0.82,0.72,0.82c0.56,0.72,0.43,1.76-0.28,2.32 c-0.41,0.32-0.91,0.42-1.38,0.31l-0.21-0.05c0,0-0.34-0.08-0.88-0.25c-0.26-0.1-0.6-0.18-0.97-0.29 c-0.37-0.11-0.78-0.23-1.23-0.33c-0.44-0.12-0.93-0.22-1.44-0.32c-0.5-0.13-1.05-0.17-1.59-0.28c-0.56-0.05-1.11-0.14-1.69-0.17 C65.17,37.99,64.58,38,64,37.97c-0.58,0.02-1.17,0.01-1.74,0.07c-0.58,0.02-1.14,0.12-1.69,0.17c-0.54,0.11-1.09,0.15-1.59,0.28 c-0.51,0.1-1,0.19-1.44,0.32c-0.44,0.11-0.84,0.22-1.19,0.31c-0.18,0.04-0.34,0.09-0.5,0.13c-0.18,0.06-0.34,0.12-0.49,0.17 c-0.6,0.21-0.95,0.3-0.95,0.3c-0.9,0.24-1.82-0.31-2.06-1.21C52.21,37.99,52.33,37.46,52.63,37.06z" style="fill:#404040;"/>
<path d="M51.12,27.09c0,0,0.26-0.33,0.76-0.85c0.13-0.13,0.26-0.27,0.42-0.43 c0.18-0.16,0.39-0.32,0.61-0.5c0.45-0.36,0.96-0.77,1.54-1.1c0.29-0.18,0.59-0.36,0.9-0.56c0.32-0.17,0.67-0.33,1.02-0.5 c0.7-0.36,1.49-0.6,2.3-0.89c0.83-0.21,1.69-0.46,2.59-0.57c0.89-0.16,1.82-0.18,2.74-0.22c0.92,0.04,1.84,0.05,2.74,0.22 c0.9,0.1,1.76,0.35,2.59,0.56c0.81,0.29,1.6,0.53,2.3,0.89c0.35,0.17,0.69,0.34,1.02,0.5c0.31,0.19,0.61,0.38,0.9,0.56 c0.59,0.34,1.07,0.73,1.5,1.08c0.43,0.33,0.78,0.66,1.05,0.95c0.55,0.56,0.83,0.9,0.83,0.9c0.57,0.7,0.47,1.74-0.23,2.31 c-0.42,0.34-0.96,0.45-1.45,0.32l-0.19-0.05c0,0-0.39-0.1-1-0.32c-0.3-0.12-0.69-0.23-1.11-0.36c-0.43-0.13-0.9-0.28-1.42-0.41 c-0.51-0.15-1.08-0.27-1.67-0.39c-0.58-0.16-1.22-0.21-1.84-0.35c-0.65-0.06-1.3-0.18-1.97-0.21c-0.67-0.07-1.35-0.06-2.03-0.09 c-0.68,0.03-1.36,0.02-2.03,0.09c-0.67,0.03-1.33,0.15-1.97,0.21c-0.63,0.14-1.27,0.19-1.84,0.35c-0.59,0.12-1.16,0.24-1.67,0.4 c-0.53,0.14-0.98,0.27-1.38,0.39c-0.2,0.06-0.39,0.12-0.58,0.16c-0.2,0.08-0.39,0.14-0.55,0.21c-0.67,0.25-1.08,0.37-1.08,0.37 c-0.89,0.26-1.82-0.25-2.07-1.14C50.66,28.06,50.8,27.5,51.12,27.09z" style="fill:#404040;"/>
</g>
<path d="M64,58.45c-4.39,0-8,3.59-8,7.97V76.8c0,4.39,3.61,7.97,8,7.97s8-3.59,8-7.97V66.42 C72,62.03,68.39,58.45,64,58.45z" style="fill:#FF9D00;"/>
<g>
<circle cx="51.24" cy="85.37" r="16.17" style="fill:#FFFFFF;"/>
<circle cx="76.76" cy="85.37" r="16.17" style="fill:#FFFFFF;"/>
</g>
<linearGradient id="SVGID_4_" gradientUnits="userSpaceOnUse" x1="64.0008" x2="64.0008" y1="70" y2="79.2418">
<stop offset="0.1628" style="stop-color:#4D4D4D"/>
<stop offset="0.3672" style="stop-color:#373737"/>
<stop offset="0.7836" style="stop-color:#0F0F0F"/>
<stop offset="1" style="stop-color:#000000"/>
</linearGradient>
<path d="M64,78.87c3.23,0,6.19-3.26,8-5.92c0.9-1.32-0.04-2.95-1.64-2.95H57.64 c-1.59,0-2.53,1.63-1.64,2.95C57.82,75.61,60.77,78.87,64,78.87z" style="fill:url(#SVGID_4_);"/>
<g>
<defs>
<path id="SVGID_5_" d="M119,65.33c0-34.86-26.44-54-55-54h0h0h0c-28.55,0-55,18.66-55,54c0,35.15,26.44,54,55,54h0h0h0 C92.56,119.33,119,100,119,65.33z"/>
</defs>
<clipPath id="SVGID_6_">
<use style="overflow:visible;" xlink:href="#SVGID_5_"/>
</clipPath>
<g style="clip-path:url(#SVGID_6_);">
<g>
<path d="M9.61,59.21l12.73,1.75c0.83,0.11,1.41,0.88,1.29,1.71c-0.09,0.69-0.64,1.2-1.29,1.29L9.61,65.7 c-1.79,0.25-3.44-1.01-3.69-2.8c-0.25-1.79,1.01-3.44,2.8-3.69C9.01,59.17,9.32,59.18,9.61,59.21z" style="fill:#404040;"/>
<path d="M9.61,69.21l12.73,1.75c0.83,0.11,1.41,0.88,1.29,1.71c-0.09,0.69-0.64,1.2-1.29,1.29L9.61,75.7 c-1.79,0.25-3.44-1.01-3.69-2.8c-0.25-1.79,1.01-3.44,2.8-3.69C9.01,69.17,9.32,69.17,9.61,69.21z" style="fill:#404040;"/>
<path d="M9.61,49.71l12.73,1.75c0.83,0.11,1.41,0.88,1.29,1.71c-0.09,0.69-0.64,1.2-1.29,1.29L9.61,56.2 c-1.79,0.25-3.44-1.01-3.69-2.8c-0.25-1.79,1.01-3.44,2.8-3.69C9.01,49.67,9.32,49.68,9.61,49.71z" style="fill:#404040;"/>
</g>
<g>
<path d="M118.67,65.73l-12.73-1.75c-0.83-0.11-1.41-0.88-1.29-1.71c0.09-0.69,0.64-1.2,1.29-1.29 l12.73-1.75c1.79-0.25,3.44,1.01,3.69,2.8s-1.01,3.44-2.8,3.69C119.26,65.77,118.95,65.77,118.67,65.73z" style="fill:#404040;"/>
<path d="M118.67,75.72l-12.73-1.75c-0.83-0.11-1.41-0.88-1.29-1.71c0.09-0.69,0.64-1.2,1.29-1.29 l12.73-1.75c1.79-0.25,3.44,1.01,3.69,2.8s-1.01,3.44-2.8,3.69C119.26,75.77,118.95,75.76,118.67,75.72z" style="fill:#404040;"/>
<path d="M118.67,56.23l-12.73-1.75c-0.83-0.11-1.41-0.88-1.29-1.71c0.09-0.69,0.64-1.2,1.29-1.29 l12.73-1.75c1.79-0.25,3.44,1.01,3.69,2.8s-1.01,3.44-2.8,3.69C119.26,56.27,118.95,56.27,118.67,56.23z" style="fill:#404040;"/>
</g>
</g>
</g>
</g>
<g id="Layer_1" style="display:none;">
<g style="display:inline;">
<g style="opacity:0.6;">
<circle cx="64" cy="64" r="28" style="opacity:0.61;fill:none;stroke:#000000;stroke-width:0.2625;stroke-miterlimit:10;"/>
<line style="opacity:0.61;fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="84" x2="84" y1="0" y2="128"/>
<line style="opacity:0.61;fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="44" x2="44" y1="0" y2="128"/>
<line style="opacity:0.61;fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="64" x2="64" y1="0" y2="128"/>
<line style="opacity:0.61;fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="128" x2="0" y1="64" y2="64"/>
<line style="opacity:0.61;fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="128" x2="0" y1="44" y2="44"/>
<line style="opacity:0.61;fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="128" x2="0" y1="83.75" y2="83.75"/>
<line style="opacity:0.61;fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="128" x2="0" y1="128" y2="0"/>
<line style="opacity:0.61;fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="0" x2="128" y1="128" y2="0"/>
<g style="opacity:0.61;">
<path d="M64,4.26c32.94,0,59.74,26.8,59.74,59.74S96.94,123.74,64,123.74S4.26,96.94,4.26,64S31.06,4.26,64,4.26 M64,4 C30.86,4,4,30.86,4,64s26.86,60,60,60s60-26.86,60-60S97.14,4,64,4L64,4z"/>
</g>
<path d="M107.97,115.97H20.03 c-4.42,0-8.03-3.61-8.03-8.03V20.03c0-4.42,3.61-8.03,8.03-8.03h87.94c4.42,0,8.03,3.61,8.03,8.03v87.91 C116,112.36,112.39,115.97,107.97,115.97z" style="opacity:0.61;fill:none;stroke:#000000;stroke-width:0.2578;stroke-miterlimit:10;"/>
<path d="M100,124H28c-4.4,0-8-3.6-8-8 V12c0-4.4,3.6-8,8-8h72c4.4,0,8,3.6,8,8v104C108,120.4,104.4,124,100,124z" style="opacity:0.61;fill:none;stroke:#000000;stroke-width:0.2628;stroke-miterlimit:10;"/>
<path d="M113.77,108H14.23 C8.6,108,4,103.4,4,97.77V30.28c0-5.63,4.6-10.23,10.23-10.23h99.54c5.63,0,10.23,4.6,10.23,10.23v67.48 C124,103.4,119.4,108,113.77,108z" style="opacity:0.61;fill:none;stroke:#000000;stroke-width:0.2627;stroke-miterlimit:10;"/>
</g>
<g>
<g style="opacity:0.2;">
<defs>
<rect id="SVGID_24_" height="128" style="opacity:0.2;" width="128" x="0" y="0"/>
</defs>
<clipPath id="SVGID_7_">
<use style="overflow:visible;" xlink:href="#SVGID_24_"/>
</clipPath>
<g style="clip-path:url(#SVGID_7_);">
<g>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-28" x2="-28" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-24" x2="-24" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-20" x2="-20" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-16" x2="-16" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-12" x2="-12" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-8" x2="-8" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-4" x2="-4" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="0" x2="0" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="4" x2="4" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="8" x2="8" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="12" x2="12" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="16" x2="16" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="20" x2="20" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="24" x2="24" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="28" x2="28" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="32" x2="32" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="36" x2="36" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="40" x2="40" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="44" x2="44" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="48" x2="48" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="52" x2="52" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="56" x2="56" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="60" x2="60" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="64" x2="64" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="68" x2="68" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="72" x2="72" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="76" x2="76" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="80" x2="80" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="84" x2="84" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="88" x2="88" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="92" x2="92" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="96" x2="96" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="100" x2="100" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="104" x2="104" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="108" x2="108" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="112" x2="112" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="116" x2="116" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="120" x2="120" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="124" x2="124" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="128" x2="128" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="132" x2="132" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="136" x2="136" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="137" x2="137" y1="166.05" y2="-25.95"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="144" x2="144" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="148" x2="148" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="152" x2="152" y1="160" y2="-32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="156" x2="156" y1="160" y2="-32"/>
</g>
<g>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="-28" y2="-28"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="-24" y2="-24"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="-20" y2="-20"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="-16" y2="-16"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="-12" y2="-12"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="-8" y2="-8"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="-4" y2="-4"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="0" y2="0"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="4" y2="4"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="8" y2="8"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="12" y2="12"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="16" y2="16"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="20" y2="20"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="24" y2="24"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="28" y2="28"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="32" y2="32"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="36" y2="36"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="40" y2="40"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="44" y2="44"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="48" y2="48"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="52" y2="52"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="56" y2="56"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="60" y2="60"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="64" y2="64"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="68" y2="68"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="72" y2="72"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="76" y2="76"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="80" y2="80"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="84" y2="84"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="88" y2="88"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="92" y2="92"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="96" y2="96"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="100" y2="100"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="104" y2="104"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="108" y2="108"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="112" y2="112"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="116" y2="116"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="120" y2="120"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="124" y2="124"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="128" y2="128"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="132" y2="132"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="136" y2="136"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="140" y2="140"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="144" y2="144"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="148" y2="148"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="152" y2="152"/>
<line style="fill:none;stroke:#000000;stroke-width:0.25;stroke-miterlimit:10;" x1="-32" x2="160" y1="156" y2="156"/>
</g>
<path d="M159.75-31.75v191.5h-191.5v-191.5H159.75 M160-32H-32v192h192V-32L160-32z"/>
</g>
</g>
<g>
<rect height="128" style="opacity:0.3;fill:#F44336;" width="4" x="0" y="0"/>
<rect height="128" style="opacity:0.3;fill:#F44336;" width="4" x="124" y="0"/>
<rect height="120" style="opacity:0.3;fill:#F44336;" transform="matrix(-1.836970e-16 1 -1 -1.836970e-16 66 -62)" width="4" x="62" y="-58"/>
<rect height="120" style="opacity:0.3;fill:#F44336;" transform="matrix(-1.836970e-16 1 -1 -1.836970e-16 190 62)" width="4" x="62" y="66"/>
</g>
</g>
</g>
</g>
</svg>
\ No newline at end of file
import express from 'express'
import connectDb from './schemas/index.js'
import userRouter from "./routes/user.routes.js";
connectDb()
// const createError = require('http-errors'); // const createError = require('http-errors');
const express = require('express'); // const express = require('express');
const path = require('path'); // const path = require('path');
// const cookieParser = require('cookie-parser'); // const cookieParser = require('cookie-parser');
// const logger = require('morgan'); // const logger = require('morgan');
const port = 3030; // const port = 3030;
// const indexRouter = require('./routes/index'); // const indexRouter = require('./routes/index');
...@@ -17,29 +24,31 @@ const app = express(); ...@@ -17,29 +24,31 @@ const app = express();
// app.use(logger('dev')); // app.use(logger('dev'));
app.use(express.json()); app.use(express.json());
app.use(express.urlencoded({ extended: false })); // app.use(express.urlencoded({ extended: false }));
// app.use(cookieParser(process.env.JWT_SECRET)); // app.use(cookieParser(process.env.JWT_SECRET));
// app.use(express.static(path.join(__dirname, 'public'))); // app.use(express.static(path.join(__dirname, 'public')));
// app.use('/', indexRouter); // app.use('/', indexRouter);
app.listen(port, () => console.log(port)); // app.listen(port, () => console.log(port));
// app.listen(3001, () => console.log(port)); app.listen(3001, () => console.log('Listenning'));
app.use(userRouter)
// catch 404 and forward to error handler // catch 404 and forward to error handler
app.use(function(req, res, next) { // app.use(function(req, res, next) {
next(createError(404)); // next(createError(404));
}); // });
// error handler // error handler
app.use(function(err, req, res, next) { // app.use(function(err, req, res, next) {
// set locals, only providing error in development // set locals, only providing error in development
res.locals.message = err.message; // res.locals.message = err.message;
// res.locals.error = req.app.get('env') === 'development' ? err : {}; // res.locals.error = req.app.get('env') === 'development' ? err : {};
// render the error page // render the error page
res.status(err.status || 500); // res.status(err.status || 500);
// res.render('error'); // res.render('error');
}); // });
module.exports = app; // module.exports = app;
\ No newline at end of file \ No newline at end of file
const config = {
env: process.env.NODEENV || 'development',
port: process.env.PORT || 3001,
jwtSecret: process.env.JWT_SECRET || 'My_Secret_Key',
mongoDbUri: process.env.MONGEDB_URI || 'mongodb://localhost/'
}
export default config
\ No newline at end of file
import User from "../models/User.js";
const signup = async (req, res) => {
const { name, email, password } = req.body
try {
const newUser = await new User ({
name,
email,
password
}).save()
console.log(newUser)
res.json(newUser)
} catch (error) {
console.log(error)
res.status(500).send('죄송합니다. 다시 입력해 주십시오.')
}
}
const hello = (req, res) => {
res.send('Hello from users contriller')
}
export default { signup, hello }
\ No newline at end of file
import mongoose from "mongoose";
const { String } = mongoose.Schema.Types
const UserSchema = new mongoose.Schema({
name: {
type: String,
required: true,
},
email: {
type: String,
required: true,
unique: true,
},
password: {
type: String,
required: true,
select: true,
},
role: {
type: String,
required: true,
default: 'user',
enum: ['user', 'admin', 'root']
}
}, {
timestamps: true
})
export default mongoose.models.User || mongoose.model('User', UserSchema)
\ No newline at end of file
...@@ -2,6 +2,7 @@ ...@@ -2,6 +2,7 @@
"name": "server", "name": "server",
"version": "1.0.0", "version": "1.0.0",
"description": "", "description": "",
"type": "module",
"main": "app.js", "main": "app.js",
"scripts": { "scripts": {
"test": "echo \"Error: no test specified\" && exit 1" "test": "echo \"Error: no test specified\" && exit 1"
......
import express from "express";
import userCtrl from '../controllers/user.controller.js';
const router = express.Router()
router.route('/api/users/signup')
.post(userCtrl.signup)
.get(userCtrl.hello)
export default router
\ No newline at end of file
import mongoose from "mongoose";
import config from '../config.js';
const connection = {}
async function connectDb() {
// if (connection.isConnection) {
// return
// }
const db = await mongoose.connect(config.mongoDbUri, {
useNewUrlParser: true,
useUnifiedTopology: true,
useFindAndModify: false,
useCreateIndex: true
})
connection.isConnection = db.connections[0].readyState
}
export default connectDb
\ No newline at end of file
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment