Commit 0d3b4406 authored by Kim, Subin's avatar Kim, Subin
Browse files

Merge branch 'ourMaster' into kimpen

parents caecdef9 c20e9d7b
[{"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":1192,"mtime":1609237583295,"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":349,"mtime":1609237583233,"results":"20","hashOfConfig":"15"},{"size":299,"mtime":1609237583152,"results":"21","hashOfConfig":"15"},{"size":361,"mtime":1609237583201,"results":"22","hashOfConfig":"15"},{"size":305,"mtime":1609237583182,"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":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"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",["64"],"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\reportWebVitals.js",[],["65","66"],"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\App.js",[],"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Login.js",["67","68","69"],"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",["70","71","72","73","74"],"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",["75","76","77","78"],"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",["79","80","81"],"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",["82","83","84","85","86","87"],"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",["88","89","90"],"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",["91","92","93","94","95","96"],"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",["97","98"],"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",["99","100","101"],"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",["102","103","104"],{"ruleId":"105","severity":1,"message":"106","line":9,"column":8,"nodeType":"107","messageId":"108","endLine":9,"endColumn":15},{"ruleId":"109","replacedBy":"110"},{"ruleId":"111","replacedBy":"112"},{"ruleId":"105","severity":1,"message":"113","line":1,"column":17,"nodeType":"107","messageId":"108","endLine":1,"endColumn":25},{"ruleId":"105","severity":1,"message":"114","line":1,"column":27,"nodeType":"107","messageId":"108","endLine":1,"endColumn":36},{"ruleId":"105","severity":1,"message":"115","line":1,"column":38,"nodeType":"107","messageId":"108","endLine":1,"endColumn":44},{"ruleId":"105","severity":1,"message":"113","line":1,"column":17,"nodeType":"107","messageId":"108","endLine":1,"endColumn":25},{"ruleId":"105","severity":1,"message":"114","line":1,"column":27,"nodeType":"107","messageId":"108","endLine":1,"endColumn":36},{"ruleId":"105","severity":1,"message":"115","line":1,"column":38,"nodeType":"107","messageId":"108","endLine":1,"endColumn":44},{"ruleId":"105","severity":1,"message":"116","line":2,"column":10,"nodeType":"107","messageId":"108","endLine":2,"endColumn":18},{"ruleId":"117","severity":1,"message":"118","line":19,"column":25,"nodeType":"119","endLine":19,"endColumn":68},{"ruleId":"105","severity":1,"message":"113","line":1,"column":17,"nodeType":"107","messageId":"108","endLine":1,"endColumn":25},{"ruleId":"105","severity":1,"message":"114","line":1,"column":27,"nodeType":"107","messageId":"108","endLine":1,"endColumn":36},{"ruleId":"105","severity":1,"message":"115","line":1,"column":38,"nodeType":"107","messageId":"108","endLine":1,"endColumn":44},{"ruleId":"105","severity":1,"message":"116","line":2,"column":10,"nodeType":"107","messageId":"108","endLine":2,"endColumn":18},{"ruleId":"105","severity":1,"message":"113","line":1,"column":17,"nodeType":"107","messageId":"108","endLine":1,"endColumn":25},{"ruleId":"105","severity":1,"message":"114","line":1,"column":27,"nodeType":"107","messageId":"108","endLine":1,"endColumn":36},{"ruleId":"105","severity":1,"message":"115","line":1,"column":38,"nodeType":"107","messageId":"108","endLine":1,"endColumn":44},{"ruleId":"105","severity":1,"message":"113","line":1,"column":17,"nodeType":"107","messageId":"108","endLine":1,"endColumn":25},{"ruleId":"105","severity":1,"message":"114","line":1,"column":27,"nodeType":"107","messageId":"108","endLine":1,"endColumn":36},{"ruleId":"105","severity":1,"message":"115","line":1,"column":38,"nodeType":"107","messageId":"108","endLine":1,"endColumn":44},{"ruleId":"105","severity":1,"message":"116","line":2,"column":10,"nodeType":"107","messageId":"108","endLine":2,"endColumn":18},{"ruleId":"117","severity":1,"message":"118","line":25,"column":37,"nodeType":"119","endLine":25,"endColumn":147},{"ruleId":"117","severity":1,"message":"118","line":47,"column":37,"nodeType":"119","endLine":47,"endColumn":147},{"ruleId":"105","severity":1,"message":"113","line":1,"column":17,"nodeType":"107","messageId":"108","endLine":1,"endColumn":25},{"ruleId":"105","severity":1,"message":"114","line":1,"column":27,"nodeType":"107","messageId":"108","endLine":1,"endColumn":36},{"ruleId":"105","severity":1,"message":"115","line":1,"column":38,"nodeType":"107","messageId":"108","endLine":1,"endColumn":44},{"ruleId":"105","severity":1,"message":"113","line":1,"column":17,"nodeType":"107","messageId":"108","endLine":1,"endColumn":25},{"ruleId":"105","severity":1,"message":"114","line":1,"column":27,"nodeType":"107","messageId":"108","endLine":1,"endColumn":36},{"ruleId":"105","severity":1,"message":"115","line":1,"column":38,"nodeType":"107","messageId":"108","endLine":1,"endColumn":44},{"ruleId":"117","severity":1,"message":"118","line":15,"column":17,"nodeType":"119","endLine":15,"endColumn":58},{"ruleId":"117","severity":1,"message":"118","line":22,"column":21,"nodeType":"119","endLine":22,"endColumn":62},{"ruleId":"117","severity":1,"message":"118","line":26,"column":21,"nodeType":"119","endLine":26,"endColumn":64},{"ruleId":"105","severity":1,"message":"114","line":1,"column":27,"nodeType":"107","messageId":"108","endLine":1,"endColumn":36},{"ruleId":"105","severity":1,"message":"115","line":1,"column":38,"nodeType":"107","messageId":"108","endLine":1,"endColumn":44},{"ruleId":"105","severity":1,"message":"113","line":1,"column":17,"nodeType":"107","messageId":"108","endLine":1,"endColumn":25},{"ruleId":"105","severity":1,"message":"114","line":1,"column":27,"nodeType":"107","messageId":"108","endLine":1,"endColumn":36},{"ruleId":"105","severity":1,"message":"115","line":1,"column":38,"nodeType":"107","messageId":"108","endLine":1,"endColumn":44},{"ruleId":"105","severity":1,"message":"113","line":1,"column":17,"nodeType":"107","messageId":"108","endLine":1,"endColumn":25},{"ruleId":"105","severity":1,"message":"114","line":1,"column":27,"nodeType":"107","messageId":"108","endLine":1,"endColumn":36},{"ruleId":"105","severity":1,"message":"115","line":1,"column":38,"nodeType":"107","messageId":"108","endLine":1,"endColumn":44},"no-unused-vars","'Payment' is defined but never used.","Identifier","unusedVar","no-native-reassign",["120"],"no-negated-in-lhs",["121"],"'useState' is defined but never used.","'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"},{"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"]
\ No newline at end of file \ No newline at end of file
...@@ -20,4 +20,5 @@ ...@@ -20,4 +20,5 @@
npm-debug.log* npm-debug.log*
yarn-debug.log* yarn-debug.log*
yarn-error.log* yarn-error.log*
\ No newline at end of file package-lock.json
This source diff could not be displayed because it is too large. You can view the blob instead.
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';
function Home() { function Home() {
...@@ -8,6 +10,102 @@ function Home() { ...@@ -8,6 +10,102 @@ function Home() {
<div> <div>
<MainNav /> <MainNav />
<SubNav /> <SubNav />
<Container>
<div className="my-3">
<h3 ><u>Best</u></h3>
<Row className="justify-content-center">
<Card className="mx-1" style={{ width: '18rem' }}>
<Card.Img className="img-fluid" variant="top" src="img/asd.jpg" />
<Card.Body>
<Card.Title className="font-weight-bold">제품명</Card.Title>
<Card.Text>가격</Card.Text>
</Card.Body>
</Card>
<Card className="mx-1" style={{ width: '18rem' }}>
<Card.Img className="img-fluid" variant="top" src="img/asd.jpg" />
<Card.Body>
<Card.Title className="font-weight-bold">제품명</Card.Title>
<Card.Text>가격</Card.Text>
</Card.Body>
</Card>
<Card className="mx-1" style={{ width: '18rem' }}>
<Card.Img className="img-fluid" variant="top" src="img/asd.jpg" />
<Card.Body>
<Card.Title className="font-weight-bold">제품명</Card.Title>
<Card.Text>가격</Card.Text>
</Card.Body>
</Card>
<Card className="mx-1" style={{ width: '18rem' }}>
<Card.Img className="img-fluid" variant="top" src="img/asd.jpg" />
<Card.Body>
<Card.Title className="font-weight-bold">제품명</Card.Title>
<Card.Text>가격</Card.Text>
</Card.Body>
</Card>
<Card className="mx-1" style={{ width: '18rem' }}>
<Card.Img className="img-fluid" variant="top" src="img/asd.jpg" />
<Card.Body>
<Card.Title className="font-weight-bold">제품명</Card.Title>
<Card.Text>가격</Card.Text>
</Card.Body>
</Card>
<Card className="mx-1" style={{ width: '18rem' }}>
<Card.Img className="img-fluid" variant="top" src="img/asd.jpg" />
<Card.Body>
<Card.Title className="font-weight-bold">제품명</Card.Title>
<Card.Text>가격</Card.Text>
</Card.Body>
</Card>
</Row>
</div>
<div className="my-3">
<h3><u>New Arrival</u></h3>
<Row className="justify-content-center">
<Card className="mx-1" style={{ width: '18rem' }}>
<Card.Img className="img-fluid" variant="top" src="img/asd.jpg" />
<Card.Body>
<Card.Title className="font-weight-bold">제품명</Card.Title>
<Card.Text>가격</Card.Text>
</Card.Body>
</Card>
<Card className="mx-1" style={{ width: '18rem' }}>
<Card.Img className="img-fluid" variant="top" src="img/asd.jpg" />
<Card.Body>
<Card.Title className="font-weight-bold">제품명</Card.Title>
<Card.Text>가격</Card.Text>
</Card.Body>
</Card>
<Card className="mx-1" style={{ width: '18rem' }}>
<Card.Img className="img-fluid" variant="top" src="img/asd.jpg" />
<Card.Body>
<Card.Title className="font-weight-bold">제품명</Card.Title>
<Card.Text>가격</Card.Text>
</Card.Body>
</Card>
<Card className="mx-1" style={{ width: '18rem' }}>
<Card.Img className="img-fluid" variant="top" src="img/asd.jpg" />
<Card.Body>
<Card.Title className="font-weight-bold">제품명</Card.Title>
<Card.Text>가격</Card.Text>
</Card.Body>
</Card>
<Card className="mx-1" style={{ width: '18rem' }}>
<Card.Img className="img-fluid" variant="top" src="img/asd.jpg" />
<Card.Body>
<Card.Title className="font-weight-bold">제품명</Card.Title>
<Card.Text>가격</Card.Text>
</Card.Body>
</Card>
<Card className="mx-1" style={{ width: '18rem' }}>
<Card.Img className="img-fluid" variant="top" src="img/asd.jpg" />
<Card.Body>
<Card.Title className="font-weight-bold">제품명</Card.Title>
<Card.Text>가격</Card.Text>
</Card.Body>
</Card>
</Row>
</div>
</Container>
</div> </div>
) )
} }
......
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 { Container, Card, Row, Col, Button, Form } from 'react-bootstrap';
function Payment() { function Payment() {
const [paymentWay, setPaymentWay] = useState([])
function handleClick() {
if (paymentWay.length !== 0) {
setPaymentWay([])
}
else {
const a = (
<div>
<Form>
<Form.Group controlId="exampleForm.ControlSelect1">
<Form.Label>입금은행</Form.Label>
<Form.Control as="select" placeholder="입금은행을 선택하세요.">
<option>농협 / 352-0559-2528-83 / 김수빈</option>
<option>우리은행 / 0000-000-000000 / 이재연</option>
<option>국민은행 / 111111-11-111111 / 윤대기</option>
</Form.Control>
</Form.Group>
<Form.Group controlId="formName">
<Form.Label>입금자</Form.Label>
<Form.Control type="email" placeholder="윤지원" />
</Form.Group>
<Form.Group controlId="formDay">
<Form.Label>입금예정일</Form.Label>
<Form.Control type="date" />
</Form.Group>
</Form>
</div>)
setPaymentWay(a)
}
}
function handleClick2() {
if (paymentWay.length !== 0) {
setPaymentWay([])
// paymentWay=[]
}
}
return ( return (
<div> <div>
<MainNav /> <MainNav />
<SubNav /> <SubNav />
<Container>
<h3 className="my-5 font-weight-bold text-center" style={{ color: '#F2A400' }}>주문/결제</h3>
<div>
<h5 className="bg-light font-weight-bold py-3 border-top border-bottom text-center">주문자 정보</h5>
<Form>
<Form.Group controlId="formBasicName">
<Form.Label>이름</Form.Label>
<Form.Control type="text" placeholder="윤지원" />
</Form.Group>
<Form.Group controlId="formBasicEmail">
<Form.Label>이메일</Form.Label>
<Form.Control type="email" placeholder="jiwon5393@naver.com" />
</Form.Group>
<Form.Group controlId="formBasicTel">
<Form.Label>휴대전화</Form.Label>
<Form.Control type="tel" placeholder="010-0000-0000" />
</Form.Group>
</Form>
</div>
<div>
<h5 className="bg-light font-weight-bold py-3 border-top border-bottom text-center">배송지 정보</h5>
</div>
<div>
<h5 className="bg-light font-weight-bold py-3 border-top border-bottom text-center">주문상품정보</h5>
<Card >
<Row>
<Col className="text-center align-self-center">
<input className="" type="checkbox" id="exampleCheck1"></input>
</Col>
<Col>
<Card.Img className="img-fluid" variant="top" src="img/asd.jpg" style={{ width: '20rem' }} />
</Col>
<Col>
<Card.Body>
<img src="https://img.icons8.com/fluent-systems-regular/24/000000/close-window.png" className="float-right" />
<Card.Title className="font-weight-bold mt-3">제품명</Card.Title>
<Card.Text>가격</Card.Text>
<Card.Text>옵션</Card.Text>
<div>
<Button variant="outline-dark" size="sm">-</Button>
<input type="text" style={{ width: '30px' }} className="align-middle mx-1" readOnly></input>
<Button variant="outline-dark" size="sm">+</Button>
</div>
</Card.Body>
</Col>
</Row>
</Card>
</div>
<div className="bg-light p-5 m-5">
<ul className="pl-0" style={{ listStyle: 'none' }}>
<li>
<span className="text-secondary"> 상품금액</span>
<span className="text-secondary float-right">12,000</span>
</li>
<li>
<span className="text-secondary">배송비</span>
<span className="text-secondary float-right">2,500</span>
</li>
</ul>
<div className="my-1 pt-2 border-top font-weight-bold">
결제금액<span className="float-right">14,500</span>
</div>
</div>
<div>
<h5 className="bg-light font-weight-bold py-3 border-top border-bottom text-center">결제수단</h5>
<div className="text-center">
<Button variant="success" onClick={handleClick} >무통장입금</Button>
<Button variant="warning" style={{ color: '#ffffff' }} onClick={handleClick2}>카카오페이</Button>
</div>
{paymentWay}
</div>
</Container>
</div> </div>
) )
} }
......
...@@ -2,6 +2,7 @@ import React, { useState, useEffect, useRef } from 'react'; ...@@ -2,6 +2,7 @@ import React, { useState, useEffect, useRef } from 'react';
import { Redirect } from 'react-router-dom'; 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 { Card, Button, Container, Row, Col } from 'react-bootstrap';
function ShoppingCart() { function ShoppingCart() {
...@@ -9,6 +10,75 @@ function ShoppingCart() { ...@@ -9,6 +10,75 @@ function ShoppingCart() {
<div> <div>
<MainNav /> <MainNav />
<SubNav /> <SubNav />
<Container className="justify-content-center">
<h3 className="my-5 font-weight-bold text-center" style={{ color: '#F2A400' }}>장바구니</h3>
<div>
<h4 className="bg-light font-weight-bold py-3 border-top border-bottom text-center">주문상품정보</h4>
<Card >
<Row>
<Col>
<input className="mx-5" type="checkbox" id="exampleCheck1"></input>
<Card.Img className="img-fluid" variant="top" src="img/asd.jpg" style={{ width: '20rem' }} />
</Col>
<Col md={6}>
<Card.Body>
<img src="https://img.icons8.com/fluent-systems-regular/24/000000/close-window.png" className="float-right" />
<Card.Title className="font-weight-bold mt-3">제품명</Card.Title>
<Card.Text>가격</Card.Text>
<Card.Text>옵션</Card.Text>
<Card.Text>수량</Card.Text>
<div>
<Button variant="outline-dark" size="sm">-</Button>
<input type="text" style={{ width: '30px' }} className="align-middle mx-1" readOnly></input>
<Button variant="outline-dark" size="sm">+</Button>
</div>
</Card.Body>
</Col>
</Row>
</Card>
<Card>
<Row>
<Col>
<input className="mx-5" type="checkbox" id="exampleCheck1"></input>
<Card.Img className="img-fluid" variant="top" src="img/asd.jpg" style={{ width: '20rem' }} />
</Col>
<Col>
<Card.Body>
<img src="https://img.icons8.com/fluent-systems-regular/24/000000/close-window.png" className="float-right" />
<Card.Title className="font-weight-bold mt-3">제품명</Card.Title>
<Card.Text>가격</Card.Text>
<Card.Text>옵션</Card.Text>
<Card.Text>수량</Card.Text>
<div>
<Button variant="outline-dark" size="sm">-</Button>
<input type="text" style={{ width: '30px' }} className="align-middle mx-1" readOnly></input>
<Button variant="outline-dark" size="sm">+</Button>
</div>
</Card.Body>
</Col>
</Row>
</Card>
</div>
<div className="bg-light p-5 m-5">
<ul className="pl-0" style={{ listStyle: 'none' }}>
<li>
<span className="text-secondary"> 상품금액</span>
<span className="text-secondary float-right">12,000</span>
</li>
<li>
<span className="text-secondary">배송비</span>
<span className="text-secondary float-right">2,500</span>
</li>
</ul>
<div className="my-1 pt-2 border-top font-weight-bold">
결제금액<span className="float-right">14,500</span>
</div>
</div>
<div className="text-center">
<Button className="px-5">결제하기</Button>
</div>
</Container>
</div> </div>
) )
} }
......
...@@ -5,11 +5,34 @@ import SubNav from '../Components/SubNav'; ...@@ -5,11 +5,34 @@ import SubNav from '../Components/SubNav';
function Signup() { function Signup() {
return ( return (
<div> <div class="form-container">
<MainNav /> <MainNav />
<SubNav /> <SubNav />
<form id="form" class="form">
<h1>회원가입</h1>
<div class="form-control">
<label for="id">아이디</label>
<input type="text" id="id" placeholder="아이디를 입력하세요"></input>
<label for="name">본명</label>
<input type="text" id="name" placeholder="본명을 입력하세요"></input>
<label for="password">비밀번호</label>
<input type="password" id="password" placeholder="비밀번호를 입력하세요"></input>
<label for="password2">비밀번호 확인</label>
<input type="password" id="password2" placeholder="비밀번호를 한번 더 입력하세요"></input>
<label for="tel">휴대폰 번호</label>
<input type="text" id="tel" placeholder="휴대폰 번호를 입력하세요"></input>
<label for="add">주소</label>
</div>
</form>
</div> </div>
) )
} }
......
...@@ -5,6 +5,7 @@ import Home from './Pages/Home'; ...@@ -5,6 +5,7 @@ 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 Admin from './Pages/Admin'; import Admin from './Pages/Admin';
import ProductsRegist from './Pages/ProductsRegist';
import ShoppingCart from './Pages/ShoppingCart'; import ShoppingCart from './Pages/ShoppingCart';
import Payment from './Pages/Payment'; import Payment from './Pages/Payment';
import reportWebVitals from './reportWebVitals'; import reportWebVitals from './reportWebVitals';
...@@ -18,7 +19,9 @@ ReactDOM.render( ...@@ -18,7 +19,9 @@ ReactDOM.render(
<Route path="/login" component={Login} /> <Route path="/login" component={Login} />
<Route path="/signup" component={Signup} /> <Route path="/signup" component={Signup} />
<Route path="/admin" component={Admin} /> <Route path="/admin" component={Admin} />
<Route path="/regist" component={ProductsRegist} />
<Route path="/shoppingcart" component={ShoppingCart} /> <Route path="/shoppingcart" component={ShoppingCart} />
<Route path="/payment" component={Payment} />
<Redirect path="/" to="/" /> <Redirect path="/" to="/" />
</Switch> </Switch>
</Router> </Router>
...@@ -29,4 +32,4 @@ ReactDOM.render( ...@@ -29,4 +32,4 @@ ReactDOM.render(
// If you want to start measuring performance in your app, pass a function // If you want to start measuring performance in your app, pass a function
// to log results (for example: reportWebVitals(console.log)) // to log results (for example: reportWebVitals(console.log))
// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals // or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals
reportWebVitals(); reportWebVitals();
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
node_modules node_modules
package-lock.json \ No newline at end of file
\ No newline at end of file
// 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');
...@@ -18,11 +19,12 @@ const app = express(); ...@@ -18,11 +19,12 @@ const app = express();
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));
// 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) {
......
{
"name": "server",
"version": "1.0.0",
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"accepts": {
"version": "1.3.7",
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz",
"integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==",
"requires": {
"mime-types": "~2.1.24",
"negotiator": "0.6.2"
}
},
"array-flatten": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz",
"integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI="
},
"body-parser": {
"version": "1.19.0",
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz",
"integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==",
"requires": {
"bytes": "3.1.0",
"content-type": "~1.0.4",
"debug": "2.6.9",
"depd": "~1.1.2",
"http-errors": "1.7.2",
"iconv-lite": "0.4.24",
"on-finished": "~2.3.0",
"qs": "6.7.0",
"raw-body": "2.4.0",
"type-is": "~1.6.17"
}
},
"bytes": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz",
"integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg=="
},
"content-disposition": {
"version": "0.5.3",
"resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz",
"integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==",
"requires": {
"safe-buffer": "5.1.2"
}
},
"content-type": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz",
"integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA=="
},
"cookie": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz",
"integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg=="
},
"cookie-signature": {
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz",
"integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw="
},
"debug": {
"version": "2.6.9",
"resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz",
"integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==",
"requires": {
"ms": "2.0.0"
}
},
"depd": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz",
"integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak="
},
"destroy": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz",
"integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA="
},
"ee-first": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz",
"integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0="
},
"encodeurl": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz",
"integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k="
},
"escape-html": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz",
"integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg="
},
"etag": {
"version": "1.8.1",
"resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz",
"integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc="
},
"express": {
"version": "4.17.1",
"resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz",
"integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==",
"requires": {
"accepts": "~1.3.7",
"array-flatten": "1.1.1",
"body-parser": "1.19.0",
"content-disposition": "0.5.3",
"content-type": "~1.0.4",
"cookie": "0.4.0",
"cookie-signature": "1.0.6",
"debug": "2.6.9",
"depd": "~1.1.2",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"finalhandler": "~1.1.2",
"fresh": "0.5.2",
"merge-descriptors": "1.0.1",
"methods": "~1.1.2",
"on-finished": "~2.3.0",
"parseurl": "~1.3.3",
"path-to-regexp": "0.1.7",
"proxy-addr": "~2.0.5",
"qs": "6.7.0",
"range-parser": "~1.2.1",
"safe-buffer": "5.1.2",
"send": "0.17.1",
"serve-static": "1.14.1",
"setprototypeof": "1.1.1",
"statuses": "~1.5.0",
"type-is": "~1.6.18",
"utils-merge": "1.0.1",
"vary": "~1.1.2"
}
},
"finalhandler": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz",
"integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==",
"requires": {
"debug": "2.6.9",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"on-finished": "~2.3.0",
"parseurl": "~1.3.3",
"statuses": "~1.5.0",
"unpipe": "~1.0.0"
}
},
"forwarded": {
"version": "0.1.2",
"resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz",
"integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ="
},
"fresh": {
"version": "0.5.2",
"resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz",
"integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac="
},
"http-errors": {
"version": "1.7.2",
"resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz",
"integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==",
"requires": {
"depd": "~1.1.2",
"inherits": "2.0.3",
"setprototypeof": "1.1.1",
"statuses": ">= 1.5.0 < 2",
"toidentifier": "1.0.0"
}
},
"iconv-lite": {
"version": "0.4.24",
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
"integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
"requires": {
"safer-buffer": ">= 2.1.2 < 3"
}
},
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"ipaddr.js": {
"version": "1.9.1",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz",
"integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g=="
},
"media-typer": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz",
"integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g="
},
"merge-descriptors": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz",
"integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E="
},
"methods": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4="
},
"mime": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz",
"integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg=="
},
"mime-db": {
"version": "1.44.0",
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
"integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
},
"mime-types": {
"version": "2.1.27",
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
"integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
"requires": {
"mime-db": "1.44.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"negotiator": {
"version": "0.6.2",
"resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz",
"integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw=="
},
"on-finished": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz",
"integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=",
"requires": {
"ee-first": "1.1.1"
}
},
"parseurl": {
"version": "1.3.3",
"resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz",
"integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ=="
},
"path-to-regexp": {
"version": "0.1.7",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz",
"integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w="
},
"proxy-addr": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
"integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==",
"requires": {
"forwarded": "~0.1.2",
"ipaddr.js": "1.9.1"
}
},
"qs": {
"version": "6.7.0",
"resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz",
"integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ=="
},
"range-parser": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz",
"integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg=="
},
"raw-body": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz",
"integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==",
"requires": {
"bytes": "3.1.0",
"http-errors": "1.7.2",
"iconv-lite": "0.4.24",
"unpipe": "1.0.0"
}
},
"safe-buffer": {
"version": "5.1.2",
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"safer-buffer": {
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
"integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
},
"send": {
"version": "0.17.1",
"resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz",
"integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==",
"requires": {
"debug": "2.6.9",
"depd": "~1.1.2",
"destroy": "~1.0.4",
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"etag": "~1.8.1",
"fresh": "0.5.2",
"http-errors": "~1.7.2",
"mime": "1.6.0",
"ms": "2.1.1",
"on-finished": "~2.3.0",
"range-parser": "~1.2.1",
"statuses": "~1.5.0"
},
"dependencies": {
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
}
},
"serve-static": {
"version": "1.14.1",
"resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz",
"integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==",
"requires": {
"encodeurl": "~1.0.2",
"escape-html": "~1.0.3",
"parseurl": "~1.3.3",
"send": "0.17.1"
}
},
"setprototypeof": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz",
"integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw=="
},
"statuses": {
"version": "1.5.0",
"resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz",
"integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
},
"toidentifier": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz",
"integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw=="
},
"type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
"integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==",
"requires": {
"media-typer": "0.3.0",
"mime-types": "~2.1.24"
}
},
"unpipe": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz",
"integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw="
},
"utils-merge": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz",
"integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM="
},
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
"integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw="
}
}
}
...@@ -12,4 +12,4 @@ ...@@ -12,4 +12,4 @@
"dependencies": { "dependencies": {
"express": "^4.17.1" "express": "^4.17.1"
} }
} }
\ 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