Commit 2576cd58 authored by 박상호's avatar 박상호 🎼
Browse files

Merge remote-tracking branch 'origin/ourMaster' into who

parents b8d32075 c20e9d7b
BROWSER=none
PORT=4000
MONGO_URI=mongodb://localhost/
\ No newline at end of file
[{"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":1609236721842,"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":1609236759112,"results":"20","hashOfConfig":"15"},{"size":6208,"mtime":1609236805755,"results":"21","hashOfConfig":"15"},{"size":4675,"mtime":1609237466278,"results":"22","hashOfConfig":"15"},{"size":6324,"mtime":1609237425880,"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":null},{"filePath":"49","messages":"50","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"51","usedDeprecatedRules":"32"},{"filePath":"52","messages":"53","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"54","usedDeprecatedRules":"32"},{"filePath":"55","messages":"56","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"57","usedDeprecatedRules":"32"},{"filePath":"58","messages":"59","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"60","usedDeprecatedRules":"32"},{"filePath":"61","messages":"62","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",[],["63","64"],"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\App.js",[],"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Login.js",["65","66","67"],"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",["68","69","70","71","72"],"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",["73","74","75","76"],"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",["77","78","79"],"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",["80","81","82","83","84","85"],"C:\\Users\\MathUser\\Desktop\\Code\\shopping-mall\\client\\src\\Pages\\Payment.js",["86","87","88"],"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",["89","90","91","92","93","94"],"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",["95","96"],"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",["97","98","99"],"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",["100","101","102"],{"ruleId":"103","replacedBy":"104"},{"ruleId":"105","replacedBy":"106"},{"ruleId":"107","severity":1,"message":"108","line":1,"column":17,"nodeType":"109","messageId":"110","endLine":1,"endColumn":25},{"ruleId":"107","severity":1,"message":"111","line":1,"column":27,"nodeType":"109","messageId":"110","endLine":1,"endColumn":36},{"ruleId":"107","severity":1,"message":"112","line":1,"column":38,"nodeType":"109","messageId":"110","endLine":1,"endColumn":44},{"ruleId":"107","severity":1,"message":"108","line":1,"column":17,"nodeType":"109","messageId":"110","endLine":1,"endColumn":25},{"ruleId":"107","severity":1,"message":"111","line":1,"column":27,"nodeType":"109","messageId":"110","endLine":1,"endColumn":36},{"ruleId":"107","severity":1,"message":"112","line":1,"column":38,"nodeType":"109","messageId":"110","endLine":1,"endColumn":44},{"ruleId":"107","severity":1,"message":"113","line":2,"column":10,"nodeType":"109","messageId":"110","endLine":2,"endColumn":18},{"ruleId":"114","severity":1,"message":"115","line":19,"column":25,"nodeType":"116","endLine":19,"endColumn":68},{"ruleId":"107","severity":1,"message":"108","line":1,"column":17,"nodeType":"109","messageId":"110","endLine":1,"endColumn":25},{"ruleId":"107","severity":1,"message":"111","line":1,"column":27,"nodeType":"109","messageId":"110","endLine":1,"endColumn":36},{"ruleId":"107","severity":1,"message":"112","line":1,"column":38,"nodeType":"109","messageId":"110","endLine":1,"endColumn":44},{"ruleId":"107","severity":1,"message":"113","line":2,"column":10,"nodeType":"109","messageId":"110","endLine":2,"endColumn":18},{"ruleId":"107","severity":1,"message":"108","line":1,"column":17,"nodeType":"109","messageId":"110","endLine":1,"endColumn":25},{"ruleId":"107","severity":1,"message":"111","line":1,"column":27,"nodeType":"109","messageId":"110","endLine":1,"endColumn":36},{"ruleId":"107","severity":1,"message":"112","line":1,"column":38,"nodeType":"109","messageId":"110","endLine":1,"endColumn":44},{"ruleId":"107","severity":1,"message":"108","line":1,"column":17,"nodeType":"109","messageId":"110","endLine":1,"endColumn":25},{"ruleId":"107","severity":1,"message":"111","line":1,"column":27,"nodeType":"109","messageId":"110","endLine":1,"endColumn":36},{"ruleId":"107","severity":1,"message":"112","line":1,"column":38,"nodeType":"109","messageId":"110","endLine":1,"endColumn":44},{"ruleId":"107","severity":1,"message":"113","line":2,"column":10,"nodeType":"109","messageId":"110","endLine":2,"endColumn":18},{"ruleId":"114","severity":1,"message":"115","line":25,"column":37,"nodeType":"116","endLine":25,"endColumn":147},{"ruleId":"114","severity":1,"message":"115","line":47,"column":37,"nodeType":"116","endLine":47,"endColumn":147},{"ruleId":"107","severity":1,"message":"108","line":1,"column":17,"nodeType":"109","messageId":"110","endLine":1,"endColumn":25},{"ruleId":"107","severity":1,"message":"111","line":1,"column":27,"nodeType":"109","messageId":"110","endLine":1,"endColumn":36},{"ruleId":"107","severity":1,"message":"112","line":1,"column":38,"nodeType":"109","messageId":"110","endLine":1,"endColumn":44},{"ruleId":"107","severity":1,"message":"108","line":1,"column":17,"nodeType":"109","messageId":"110","endLine":1,"endColumn":25},{"ruleId":"107","severity":1,"message":"111","line":1,"column":27,"nodeType":"109","messageId":"110","endLine":1,"endColumn":36},{"ruleId":"107","severity":1,"message":"112","line":1,"column":38,"nodeType":"109","messageId":"110","endLine":1,"endColumn":44},{"ruleId":"114","severity":1,"message":"115","line":15,"column":17,"nodeType":"116","endLine":15,"endColumn":58},{"ruleId":"114","severity":1,"message":"115","line":22,"column":21,"nodeType":"116","endLine":22,"endColumn":62},{"ruleId":"114","severity":1,"message":"115","line":26,"column":21,"nodeType":"116","endLine":26,"endColumn":64},{"ruleId":"107","severity":1,"message":"111","line":1,"column":27,"nodeType":"109","messageId":"110","endLine":1,"endColumn":36},{"ruleId":"107","severity":1,"message":"112","line":1,"column":38,"nodeType":"109","messageId":"110","endLine":1,"endColumn":44},{"ruleId":"107","severity":1,"message":"108","line":1,"column":17,"nodeType":"109","messageId":"110","endLine":1,"endColumn":25},{"ruleId":"107","severity":1,"message":"111","line":1,"column":27,"nodeType":"109","messageId":"110","endLine":1,"endColumn":36},{"ruleId":"107","severity":1,"message":"112","line":1,"column":38,"nodeType":"109","messageId":"110","endLine":1,"endColumn":44},{"ruleId":"107","severity":1,"message":"108","line":1,"column":17,"nodeType":"109","messageId":"110","endLine":1,"endColumn":25},{"ruleId":"107","severity":1,"message":"111","line":1,"column":27,"nodeType":"109","messageId":"110","endLine":1,"endColumn":36},{"ruleId":"107","severity":1,"message":"112","line":1,"column":38,"nodeType":"109","messageId":"110","endLine":1,"endColumn":44},"no-native-reassign",["117"],"no-negated-in-lhs",["118"],"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
......@@ -21,3 +21,4 @@
npm-debug.log*
yarn-debug.log*
yarn-error.log*
package-lock.json
......@@ -74,6 +74,25 @@
"@babel/types": "^7.10.4"
}
},
"@babel/helper-builder-react-jsx": {
"version": "7.10.4",
"resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.10.4.tgz",
"integrity": "sha512-5nPcIZ7+KKDxT1427oBivl9V9YTal7qk0diccnh7RrcgrT/pGFOjgGw1dgryyx1GvHEpXVfoDF6Ak3rTiWh8Rg==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.10.4",
"@babel/types": "^7.10.4"
}
},
"@babel/helper-builder-react-jsx-experimental": {
"version": "7.12.11",
"resolved": "https://registry.npmjs.org/@babel/helper-builder-react-jsx-experimental/-/helper-builder-react-jsx-experimental-7.12.11.tgz",
"integrity": "sha512-4oGVOekPI8dh9JphkPXC68iIuP6qp/RPbaPmorRmEFbRAHZjSqxPjqHudn18GVDPgCuFM/KdFXc63C17Ygfa9w==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.12.10",
"@babel/helper-module-imports": "^7.12.5",
"@babel/types": "^7.12.11"
}
},
"@babel/helper-compilation-targets": {
"version": "7.12.5",
"resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.12.5.tgz",
......@@ -294,9 +313,9 @@
"integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg=="
},
"@babel/plugin-proposal-async-generator-functions": {
"version": "7.12.12",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz",
"integrity": "sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==",
"version": "7.12.1",
"resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.1.tgz",
"integrity": "sha512-d+/o30tJxFxrA1lhzJqiUcEJdI6jKlNregCv5bASeGf2Q4MXmnwH7viDo7nhx1/ohf09oaH8j1GVYG/e3Yqk6A==",
"requires": {
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/helper-remap-async-to-generator": "^7.12.1",
......@@ -594,9 +613,9 @@
}
},
"@babel/plugin-transform-block-scoping": {
"version": "7.12.12",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz",
"integrity": "sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==",
"version": "7.12.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.11.tgz",
"integrity": "sha512-atR1Rxc3hM+VPg/NvNvfYw0npQEAcHuJ+MGZnFn6h3bo+1U3BWXMdFMlvVRApBTWKQMX7SOwRJZA5FBF/JQbvA==",
"requires": {
"@babel/helper-plugin-utils": "^7.10.4"
}
......@@ -800,23 +819,24 @@
}
},
"@babel/plugin-transform-react-jsx": {
"version": "7.12.12",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.12.tgz",
"integrity": "sha512-JDWGuzGNWscYcq8oJVCtSE61a5+XAOos+V0HrxnDieUus4UMnBEosDnY1VJqU5iZ4pA04QY7l0+JvHL1hZEfsw==",
"version": "7.12.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.11.tgz",
"integrity": "sha512-5nWOw6mTylaFU72BdZfa0dP1HsGdY3IMExpxn8LBE8dNmkQjB+W+sR+JwIdtbzkPvVuFviT3zyNbSUkuVTVxbw==",
"requires": {
"@babel/helper-annotate-as-pure": "^7.12.10",
"@babel/helper-module-imports": "^7.12.5",
"@babel/helper-builder-react-jsx": "^7.10.4",
"@babel/helper-builder-react-jsx-experimental": "^7.12.11",
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-jsx": "^7.12.1",
"@babel/types": "^7.12.12"
"@babel/plugin-syntax-jsx": "^7.12.1"
}
},
"@babel/plugin-transform-react-jsx-development": {
"version": "7.12.12",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.12.tgz",
"integrity": "sha512-i1AxnKxHeMxUaWVXQOSIco4tvVvvCxMSfeBMnMM06mpaJt3g+MpxYQQrDfojUQldP1xxraPSJYSMEljoWM/dCg==",
"version": "7.12.11",
"resolved": "https://registry.npmjs.org/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.12.11.tgz",
"integrity": "sha512-5MvsGschXeXJsbzQGR/BH89ATMzCsM7rx95n+R7/852cGoK2JgMbacDw/A9Pmrfex4tArdMab0L5SBV4SB/Nxg==",
"requires": {
"@babel/plugin-transform-react-jsx": "^7.12.12"
"@babel/helper-builder-react-jsx-experimental": "^7.12.11",
"@babel/helper-plugin-utils": "^7.10.4",
"@babel/plugin-syntax-jsx": "^7.12.1"
}
},
"@babel/plugin-transform-react-jsx-self": {
......@@ -1087,25 +1107,25 @@
}
},
"@babel/traverse": {
"version": "7.12.12",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz",
"integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==",
"requires": {
"@babel/code-frame": "^7.12.11",
"@babel/generator": "^7.12.11",
"@babel/helper-function-name": "^7.12.11",
"@babel/helper-split-export-declaration": "^7.12.11",
"@babel/parser": "^7.12.11",
"@babel/types": "^7.12.12",
"version": "7.12.10",
"resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.10.tgz",
"integrity": "sha512-6aEtf0IeRgbYWzta29lePeYSk+YAFIC3kyqESeft8o5CkFlYIMX+EQDDWEiAQ9LHOA3d0oHdgrSsID/CKqXJlg==",
"requires": {
"@babel/code-frame": "^7.10.4",
"@babel/generator": "^7.12.10",
"@babel/helper-function-name": "^7.10.4",
"@babel/helper-split-export-declaration": "^7.11.0",
"@babel/parser": "^7.12.10",
"@babel/types": "^7.12.10",
"debug": "^4.1.0",
"globals": "^11.1.0",
"lodash": "^4.17.19"
}
},
"@babel/types": {
"version": "7.12.12",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz",
"integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==",
"version": "7.12.11",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.11.tgz",
"integrity": "sha512-ukA9SQtKThINm++CX1CwmliMrE54J6nIYB5XTwL5f/CLFW9owfls+YSU8tVW15RQ2w+a3fSbPjC6HdQNtWZkiA==",
"requires": {
"@babel/helper-validator-identifier": "^7.12.11",
"lodash": "^4.17.19",
......@@ -1741,25 +1761,25 @@
}
},
"@nodelib/fs.scandir": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.4.tgz",
"integrity": "sha512-33g3pMJk3bg5nXbL/+CY6I2eJDzZAni49PfJnL5fghPTggPvBd/pFNSgJsdAgWptuFu7qq/ERvOYFlhvsLTCKA==",
"version": "2.1.3",
"resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.3.tgz",
"integrity": "sha512-eGmwYQn3gxo4r7jdQnkrrN6bY478C3P+a/y72IJukF8LjB6ZHeB3c+Ehacj3sYeSmUXGlnA67/PmbM9CVwL7Dw==",
"requires": {
"@nodelib/fs.stat": "2.0.4",
"@nodelib/fs.stat": "2.0.3",
"run-parallel": "^1.1.9"
}
},
"@nodelib/fs.stat": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.4.tgz",
"integrity": "sha512-IYlHJA0clt2+Vg7bccq+TzRdJvv19c2INqBSsoOLp1je7xjtr7J26+WXR72MCdvU9q1qTzIWDfhMf+DRvQJK4Q=="
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.3.tgz",
"integrity": "sha512-bQBFruR2TAwoevBEd/NWMoAAtNGzTRgdrqnYCc7dhzfoNvqPzLyqlEQnzZ3kVnNrSp25iyxE00/3h2fqGAGArA=="
},
"@nodelib/fs.walk": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.6.tgz",
"integrity": "sha512-8Broas6vTtW4GIXTAHDoE32hnN2M5ykgCpWGbuXHQ15vEMqr23pB76e/GZcYsZCHALv50ktd24qhEyKr6wBtow==",
"version": "1.2.4",
"resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.4.tgz",
"integrity": "sha512-1V9XOY4rDW0rehzbrcqAmHnz8e7SKvX27gh8Gt2WgB0+pdzdiLV83p72kZPU+jvMbS1qU5mauP2iOvO8rhmurQ==",
"requires": {
"@nodelib/fs.scandir": "2.1.4",
"@nodelib/fs.scandir": "2.1.3",
"fastq": "^1.6.0"
}
},
......@@ -1798,6 +1818,25 @@
}
}
},
"@popperjs/core": {
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/@popperjs/core/-/core-2.6.0.tgz",
"integrity": "sha512-cPqjjzuFWNK3BSKLm0abspP0sp/IGOli4p5I5fKFAzdS8fvjdOwDCfZqAaIiXd9lPkOWi3SUUfZof3hEb7J/uw=="
},
"@restart/context": {
"version": "2.1.4",
"resolved": "https://registry.npmjs.org/@restart/context/-/context-2.1.4.tgz",
"integrity": "sha512-INJYZQJP7g+IoDUh/475NlGiTeMfwTXUEr3tmRneckHIxNolGOW9CTq83S8cxq0CgJwwcMzMJFchxvlwe7Rk8Q=="
},
"@restart/hooks": {
"version": "0.3.25",
"resolved": "https://registry.npmjs.org/@restart/hooks/-/hooks-0.3.25.tgz",
"integrity": "sha512-m2v3N5pxTsIiSH74/sb1yW8D9RxkJidGW+5Mfwn/lHb2QzhZNlaU1su7abSyT9EGf0xS/0waLjrf7/XxQHUk7w==",
"requires": {
"lodash": "^4.17.15",
"lodash-es": "^4.17.15"
}
},
"@rollup/plugin-node-resolve": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/@rollup/plugin-node-resolve/-/plugin-node-resolve-7.1.3.tgz",
......@@ -2178,6 +2217,11 @@
"@babel/types": "^7.3.0"
}
},
"@types/classnames": {
"version": "2.2.11",
"resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.11.tgz",
"integrity": "sha512-2koNhpWm3DgWRp5tpkiJ8JGc1xTn2q0l+jUNUE7oMKXUf5NpI9AIdC4kbjGNFBdHtcxBD18LAksoudAVhFKCjw=="
},
"@types/eslint": {
"version": "7.2.6",
"resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-7.2.6.tgz",
......@@ -2214,6 +2258,11 @@
"resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-5.1.1.tgz",
"integrity": "sha512-giAlZwstKbmvMk1OO7WXSj4OZ0keXAcl2TQq4LWHiiPH2ByaH7WeUzng+Qej8UPxxv+8lRTuouo0iaNDBuzIBA=="
},
"@types/invariant": {
"version": "2.2.34",
"resolved": "https://registry.npmjs.org/@types/invariant/-/invariant-2.2.34.tgz",
"integrity": "sha512-lYUtmJ9BqUN688fGY1U1HZoWT1/Jrmgigx2loq4ZcJpICECm/Om3V314BxdzypO0u5PORKGMM6x0OXaljV1YFg=="
},
"@types/istanbul-lib-coverage": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.3.tgz",
......@@ -2260,9 +2309,9 @@
"integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA=="
},
"@types/node": {
"version": "14.14.16",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.16.tgz",
"integrity": "sha512-naXYePhweTi+BMv11TgioE2/FXU4fSl29HAH1ffxVciNsH3rYXjNP2yM8wqmSm7jS20gM8TIklKiTen+1iVncw=="
"version": "14.14.14",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.14.tgz",
"integrity": "sha512-UHnOPWVWV1z+VV8k6L1HhG7UbGBgIdghqF3l9Ny9ApPghbjICXkUJSd/b9gOgQfjM1r+37cipdw/HJ3F6ICEnQ=="
},
"@types/normalize-package-data": {
"version": "2.4.0",
......@@ -2275,15 +2324,37 @@
"integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA=="
},
"@types/prettier": {
"version": "2.1.6",
"resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.6.tgz",
"integrity": "sha512-6gOkRe7OIioWAXfnO/2lFiv+SJichKVSys1mSsgyrYHSEjk8Ctv4tSR/Odvnu+HWlH2C8j53dahU03XmQdd5fA=="
"version": "2.1.5",
"resolved": "https://registry.npmjs.org/@types/prettier/-/prettier-2.1.5.tgz",
"integrity": "sha512-UEyp8LwZ4Dg30kVU2Q3amHHyTn1jEdhCIE59ANed76GaT1Vp76DD3ZWSAxgCrw6wJ0TqeoBpqmfUHiUDPs//HQ=="
},
"@types/prop-types": {
"version": "15.7.3",
"resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz",
"integrity": "sha512-KfRL3PuHmqQLOG+2tGpRO26Ctg+Cq1E01D2DMriKEATHgWLfeNDmq9e29Q9WIky0dQ3NPkd1mzYH8Lm936Z9qw=="
},
"@types/q": {
"version": "1.5.4",
"resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz",
"integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug=="
},
"@types/react": {
"version": "16.14.2",
"resolved": "https://registry.npmjs.org/@types/react/-/react-16.14.2.tgz",
"integrity": "sha512-BzzcAlyDxXl2nANlabtT4thtvbbnhee8hMmH/CcJrISDBVcJS1iOsP1f0OAgSdGE0MsY9tqcrb9YoZcOFv9dbQ==",
"requires": {
"@types/prop-types": "*",
"csstype": "^3.0.2"
}
},
"@types/react-transition-group": {
"version": "4.4.0",
"resolved": "https://registry.npmjs.org/@types/react-transition-group/-/react-transition-group-4.4.0.tgz",
"integrity": "sha512-/QfLHGpu+2fQOqQaXh8MG9q03bFENooTb/it4jr5kKaZlDQfWvjqWZg48AwzPVMBHlRuTRAY7hRHCEOXz5kV6w==",
"requires": {
"@types/react": "*"
}
},
"@types/resolve": {
"version": "0.0.8",
"resolved": "https://registry.npmjs.org/@types/resolve/-/resolve-0.0.8.tgz",
......@@ -2330,6 +2401,11 @@
}
}
},
"@types/warning": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/@types/warning/-/warning-3.0.0.tgz",
"integrity": "sha1-DSUBJorY+ZYrdA04fEZU9fjiPlI="
},
"@types/webpack": {
"version": "4.41.25",
"resolved": "https://registry.npmjs.org/@types/webpack/-/webpack-4.41.25.tgz",
......@@ -2376,17 +2452,17 @@
}
},
"@types/yargs-parser": {
"version": "20.2.0",
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-20.2.0.tgz",
"integrity": "sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA=="
"version": "15.0.0",
"resolved": "https://registry.npmjs.org/@types/yargs-parser/-/yargs-parser-15.0.0.tgz",
"integrity": "sha512-FA/BWv8t8ZWJ+gEOnLLd8ygxH/2UFbAvgEonyfN6yWGLKc7zVjbpl2Y4CTjid9h2RfgPP6SEt6uHwEOply00yw=="
},
"@typescript-eslint/eslint-plugin": {
"version": "4.11.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.11.1.tgz",
"integrity": "sha512-fABclAX2QIEDmTMk6Yd7Muv1CzFLwWM4505nETzRHpP3br6jfahD9UUJkhnJ/g2m7lwfz8IlswcwGGPGiq9exw==",
"version": "4.11.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-4.11.0.tgz",
"integrity": "sha512-x4arJMXBxyD6aBXLm3W7mSDZRiABzy+2PCLJbL7OPqlp53VXhaA1HKK7R2rTee5OlRhnUgnp8lZyVIqjnyPT6g==",
"requires": {
"@typescript-eslint/experimental-utils": "4.11.1",
"@typescript-eslint/scope-manager": "4.11.1",
"@typescript-eslint/experimental-utils": "4.11.0",
"@typescript-eslint/scope-manager": "4.11.0",
"debug": "^4.1.1",
"functional-red-black-tree": "^1.0.1",
"regexpp": "^3.0.0",
......@@ -2395,50 +2471,50 @@
}
},
"@typescript-eslint/experimental-utils": {
"version": "4.11.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.11.1.tgz",
"integrity": "sha512-mAlWowT4A6h0TC9F+J5pdbEhjNiEMO+kqPKQ4sc3fVieKL71dEqfkKgtcFVSX3cjSBwYwhImaQ/mXQF0oaI38g==",
"version": "4.11.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-4.11.0.tgz",
"integrity": "sha512-1VC6mSbYwl1FguKt8OgPs8xxaJgtqFpjY/UzUYDBKq4pfQ5lBvN2WVeqYkzf7evW42axUHYl2jm9tNyFsb8oLg==",
"requires": {
"@types/json-schema": "^7.0.3",
"@typescript-eslint/scope-manager": "4.11.1",
"@typescript-eslint/types": "4.11.1",
"@typescript-eslint/typescript-estree": "4.11.1",
"@typescript-eslint/scope-manager": "4.11.0",
"@typescript-eslint/types": "4.11.0",
"@typescript-eslint/typescript-estree": "4.11.0",
"eslint-scope": "^5.0.0",
"eslint-utils": "^2.0.0"
}
},
"@typescript-eslint/parser": {
"version": "4.11.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.11.1.tgz",
"integrity": "sha512-BJ3jwPQu1jeynJ5BrjLuGfK/UJu6uwHxJ/di7sanqmUmxzmyIcd3vz58PMR7wpi8k3iWq2Q11KMYgZbUpRoIPw==",
"version": "4.11.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-4.11.0.tgz",
"integrity": "sha512-NBTtKCC7ZtuxEV5CrHUO4Pg2s784pvavc3cnz6V+oJvVbK4tH9135f/RBP6eUA2KHiFKAollSrgSctQGmHbqJQ==",
"requires": {
"@typescript-eslint/scope-manager": "4.11.1",
"@typescript-eslint/types": "4.11.1",
"@typescript-eslint/typescript-estree": "4.11.1",
"@typescript-eslint/scope-manager": "4.11.0",
"@typescript-eslint/types": "4.11.0",
"@typescript-eslint/typescript-estree": "4.11.0",
"debug": "^4.1.1"
}
},
"@typescript-eslint/scope-manager": {
"version": "4.11.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.11.1.tgz",
"integrity": "sha512-Al2P394dx+kXCl61fhrrZ1FTI7qsRDIUiVSuN6rTwss6lUn8uVO2+nnF4AvO0ug8vMsy3ShkbxLu/uWZdTtJMQ==",
"version": "4.11.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-4.11.0.tgz",
"integrity": "sha512-6VSTm/4vC2dHM3ySDW9Kl48en+yLNfVV6LECU8jodBHQOhO8adAVizaZ1fV0QGZnLQjQ/y0aBj5/KXPp2hBTjA==",
"requires": {
"@typescript-eslint/types": "4.11.1",
"@typescript-eslint/visitor-keys": "4.11.1"
"@typescript-eslint/types": "4.11.0",
"@typescript-eslint/visitor-keys": "4.11.0"
}
},
"@typescript-eslint/types": {
"version": "4.11.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.11.1.tgz",
"integrity": "sha512-5kvd38wZpqGY4yP/6W3qhYX6Hz0NwUbijVsX2rxczpY6OXaMxh0+5E5uLJKVFwaBM7PJe1wnMym85NfKYIh6CA=="
"version": "4.11.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-4.11.0.tgz",
"integrity": "sha512-XXOdt/NPX++txOQHM1kUMgJUS43KSlXGdR/aDyEwuAEETwuPt02Nc7v+s57PzuSqMbNLclblQdv3YcWOdXhQ7g=="
},
"@typescript-eslint/typescript-estree": {
"version": "4.11.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.11.1.tgz",
"integrity": "sha512-tC7MKZIMRTYxQhrVAFoJq/DlRwv1bnqA4/S2r3+HuHibqvbrPcyf858lNzU7bFmy4mLeIHFYr34ar/1KumwyRw==",
"version": "4.11.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-4.11.0.tgz",
"integrity": "sha512-eA6sT5dE5RHAFhtcC+b5WDlUIGwnO9b0yrfGa1mIOIAjqwSQCpXbLiFmKTdRbQN/xH2EZkGqqLDrKUuYOZ0+Hg==",
"requires": {
"@typescript-eslint/types": "4.11.1",
"@typescript-eslint/visitor-keys": "4.11.1",
"@typescript-eslint/types": "4.11.0",
"@typescript-eslint/visitor-keys": "4.11.0",
"debug": "^4.1.1",
"globby": "^11.0.1",
"is-glob": "^4.0.1",
......@@ -2448,11 +2524,11 @@
}
},
"@typescript-eslint/visitor-keys": {
"version": "4.11.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.11.1.tgz",
"integrity": "sha512-IrlBhD9bm4bdYcS8xpWarazkKXlE7iYb1HzRuyBP114mIaj5DJPo11Us1HgH60dTt41TCZXMaTCAW+OILIYPOg==",
"version": "4.11.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-4.11.0.tgz",
"integrity": "sha512-tRYKyY0i7cMk6v4UIOCjl1LhuepC/pc6adQqJk4Is3YcC6k46HvsV9Wl7vQoLbm9qADgeujiT7KdLrylvFIQ+A==",
"requires": {
"@typescript-eslint/types": "4.11.1",
"@typescript-eslint/types": "4.11.0",
"eslint-visitor-keys": "^2.0.0"
}
},
......@@ -3560,6 +3636,11 @@
"resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz",
"integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24="
},
"bootstrap": {
"version": "4.5.3",
"resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.5.3.tgz",
"integrity": "sha512-o9ppKQioXGqhw8Z7mah6KdTYpNQY//tipnkxppWhPbiSWdD+1raYsnhwEZjkTHYbGee4cVQ0Rx65EhOY/HNLcQ=="
},
"brace-expansion": {
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
......@@ -3838,9 +3919,9 @@
}
},
"caniuse-lite": {
"version": "1.0.30001171",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001171.tgz",
"integrity": "sha512-5Alrh8TTYPG9IH4UkRqEBZoEToWRLvPbSQokvzSz0lii8/FOWKG4keO1HoYfPWs8IF/NH/dyNPg1cmJGvV3Zlg=="
"version": "1.0.30001170",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001170.tgz",
"integrity": "sha512-Dd4d/+0tsK0UNLrZs3CvNukqalnVTRrxb5mcQm8rHL49t7V5ZaTygwXkrq+FB+dVDf++4ri8eJnFEJAB8332PA=="
},
"capture-exit": {
"version": "2.0.0",
......@@ -3957,6 +4038,11 @@
}
}
},
"classnames": {
"version": "2.2.6",
"resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz",
"integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q=="
},
"clean-css": {
"version": "4.2.3",
"resolved": "https://registry.npmjs.org/clean-css/-/clean-css-4.2.3.tgz",
......@@ -4686,6 +4772,11 @@
}
}
},
"csstype": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.0.5.tgz",
"integrity": "sha512-uVDi8LpBUKQj6sdxNaTetL6FpeCqTjOvAQuQUa/qAqq8oOd4ivkbhgnqayl0dnPal8Tb/yB1tF+gOvCBiicaiQ=="
},
"cyclist": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz",
......@@ -5015,6 +5106,15 @@
"utila": "~0.4"
}
},
"dom-helpers": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/dom-helpers/-/dom-helpers-5.2.0.tgz",
"integrity": "sha512-Ru5o9+V8CpunKnz5LGgWXkmrH/20cGKwcHwS4m73zIvs54CN9epEmT/HLqFJW3kXpakAFkEdzgy1hzlJe3E4OQ==",
"requires": {
"@babel/runtime": "^7.8.7",
"csstype": "^3.0.2"
}
},
"dom-serializer": {
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz",
......@@ -5167,9 +5267,9 @@
"integrity": "sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA=="
},
"electron-to-chromium": {
"version": "1.3.633",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.633.tgz",
"integrity": "sha512-bsVCsONiVX1abkWdH7KtpuDAhsQ3N3bjPYhROSAXE78roJKet0Y5wznA14JE9pzbwSZmSMAW6KiKYf1RvbTJkA=="
"version": "1.3.632",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.632.tgz",
"integrity": "sha512-LkaEH9HHr9fodmm3txF4nFMyHN3Yr50HcpD/DBHpLCxzM9doV8AV0er6aBWva4IDs2aA9kGguces0rp+WKL7rg=="
},
"elliptic": {
"version": "6.5.3",
......@@ -6988,6 +7088,19 @@
"resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz",
"integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ=="
},
"history": {
"version": "4.10.1",
"resolved": "https://registry.npmjs.org/history/-/history-4.10.1.tgz",
"integrity": "sha512-36nwAD620w12kuzPAsyINPWJqlNbij+hpK1k9XRloDtym8mxzGYl2c17LnV6IAGB2Dmg4tEa7G7DlawS0+qjew==",
"requires": {
"@babel/runtime": "^7.1.2",
"loose-envify": "^1.2.0",
"resolve-pathname": "^3.0.0",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0",
"value-equal": "^1.0.1"
}
},
"hmac-drbg": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz",
......@@ -6998,6 +7111,14 @@
"minimalistic-crypto-utils": "^1.0.1"
}
},
"hoist-non-react-statics": {
"version": "3.3.2",
"resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz",
"integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==",
"requires": {
"react-is": "^16.7.0"
}
},
"hoopy": {
"version": "0.1.4",
"resolved": "https://registry.npmjs.org/hoopy/-/hoopy-0.1.4.tgz",
......@@ -7490,6 +7611,14 @@
}
}
},
"invariant": {
"version": "2.2.4",
"resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz",
"integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==",
"requires": {
"loose-envify": "^1.0.0"
}
},
"ip": {
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
......@@ -9600,6 +9729,11 @@
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
"integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
},
"lodash-es": {
"version": "4.17.20",
"resolved": "https://registry.npmjs.org/lodash-es/-/lodash-es-4.17.20.tgz",
"integrity": "sha512-JD1COMZsq8maT6mnuz1UMV0jvYD0E0aUsSOdrr1/nAG3dhqQXwRRgeW0cSqH1U43INKcqxaiVIQNOUDld7gRDA=="
},
"lodash._reinterpolate": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/lodash._reinterpolate/-/lodash._reinterpolate-3.0.0.tgz",
......@@ -9854,6 +9988,15 @@
"resolved": "https://registry.npmjs.org/min-indent/-/min-indent-1.0.1.tgz",
"integrity": "sha512-I9jwMn07Sy/IwOj3zVkVik2JTvgpaykDZEigL6Rx6N9LbMywwUSMtxET+7lVoDLLd3O3IXwJwvuuns8UB/HeAg=="
},
"mini-create-react-context": {
"version": "0.4.1",
"resolved": "https://registry.npmjs.org/mini-create-react-context/-/mini-create-react-context-0.4.1.tgz",
"integrity": "sha512-YWCYEmd5CQeHGSAKrYvXgmzzkrvssZcuuQDDeqkT+PziKGMgE+0MCCtcKbROzocGBG1meBLl2FotlRwf4gAzbQ==",
"requires": {
"@babel/runtime": "^7.12.1",
"tiny-warning": "^1.0.3"
}
},
"mini-css-extract-plugin": {
"version": "0.11.3",
"resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.11.3.tgz",
......@@ -11787,9 +11930,9 @@
},
"dependencies": {
"postcss": {
"version": "8.2.2",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.2.tgz",
"integrity": "sha512-HM1NDNWLgglJPQQMNwvLxgH2KcrKZklKLi/xXYIOaqQB57p/pDWEJNS83PVICYsn1Dg/9C26TiejNr422/ePaQ==",
"version": "8.2.1",
"resolved": "https://registry.npmjs.org/postcss/-/postcss-8.2.1.tgz",
"integrity": "sha512-RhsqOOAQzTgh1UB/IZdca7F9WDb7SUCR2Vnv1x7DbvuuggQIpoDwjK+q0rzoPffhYvWNKX5JSwS4so4K3UC6vA==",
"requires": {
"colorette": "^1.2.1",
"nanoid": "^3.1.20",
......@@ -11886,9 +12029,9 @@
"integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
},
"pretty-bytes": {
"version": "5.5.0",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.5.0.tgz",
"integrity": "sha512-p+T744ZyjjiaFlMUZZv6YPC5JrkNj8maRmPaQCWFJFplUAzpIUTRaTcS+7wmZtUoFXHtESJb23ISliaWyz3SHA=="
"version": "5.4.1",
"resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.4.1.tgz",
"integrity": "sha512-s1Iam6Gwz3JI5Hweaz4GoCD1WUNUIyzePFy5+Js2hjwGVt2Z79wNN+ZKOZ2vB6C+Xs6njyB84Z1IthQg8d9LxA=="
},
"pretty-error": {
"version": "2.1.2",
......@@ -11985,6 +12128,15 @@
"react-is": "^16.8.1"
}
},
"prop-types-extra": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/prop-types-extra/-/prop-types-extra-1.1.1.tgz",
"integrity": "sha512-59+AHNnHYCdiC+vMwY52WmvP5dM3QLeoumYuEyceQDi9aEhtwN9zIQ2ZNo25sMyXnbh32h+P1ezDsUpUH3JAew==",
"requires": {
"react-is": "^16.3.2",
"warning": "^4.0.0"
}
},
"proxy-addr": {
"version": "2.0.6",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz",
......@@ -12163,6 +12315,31 @@
"whatwg-fetch": "^3.4.1"
}
},
"react-bootstrap": {
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/react-bootstrap/-/react-bootstrap-1.4.0.tgz",
"integrity": "sha512-0BMzgeUAxH126v7VYDzIXbHxQVHSnniPVKpz9fblumdQpWaiElMnnzk+u8h8DoELX0nCXwPlcUzgXqmpncdc2Q==",
"requires": {
"@babel/runtime": "^7.4.2",
"@restart/context": "^2.1.4",
"@restart/hooks": "^0.3.21",
"@types/classnames": "^2.2.10",
"@types/invariant": "^2.2.33",
"@types/prop-types": "^15.7.3",
"@types/react": "^16.9.35",
"@types/react-transition-group": "^4.4.0",
"@types/warning": "^3.0.0",
"classnames": "^2.2.6",
"dom-helpers": "^5.1.2",
"invariant": "^2.2.4",
"prop-types": "^15.7.2",
"prop-types-extra": "^1.1.0",
"react-overlays": "^4.1.0",
"react-transition-group": "^4.4.1",
"uncontrollable": "^7.0.0",
"warning": "^4.0.3"
}
},
"react-dev-utils": {
"version": "11.0.1",
"resolved": "https://registry.npmjs.org/react-dev-utils/-/react-dev-utils-11.0.1.tgz",
......@@ -12276,11 +12453,77 @@
"resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz",
"integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ=="
},
"react-lifecycles-compat": {
"version": "3.0.4",
"resolved": "https://registry.npmjs.org/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz",
"integrity": "sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA=="
},
"react-overlays": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/react-overlays/-/react-overlays-4.1.1.tgz",
"integrity": "sha512-WtJifh081e6M24KnvTQoNjQEpz7HoLxqt8TwZM7LOYIkYJ8i/Ly1Xi7RVte87ZVnmqQ4PFaFiNHZhSINPSpdBQ==",
"requires": {
"@babel/runtime": "^7.12.1",
"@popperjs/core": "^2.5.3",
"@restart/hooks": "^0.3.25",
"@types/warning": "^3.0.0",
"dom-helpers": "^5.2.0",
"prop-types": "^15.7.2",
"uncontrollable": "^7.0.0",
"warning": "^4.0.3"
}
},
"react-refresh": {
"version": "0.8.3",
"resolved": "https://registry.npmjs.org/react-refresh/-/react-refresh-0.8.3.tgz",
"integrity": "sha512-X8jZHc7nCMjaCqoU+V2I0cOhNW+QMBwSUkeXnTi8IPe6zaRWfn60ZzvFDZqWPfmSJfjub7dDW1SP0jaHWLu/hg=="
},
"react-router": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/react-router/-/react-router-5.2.0.tgz",
"integrity": "sha512-smz1DUuFHRKdcJC0jobGo8cVbhO3x50tCL4icacOlcwDOEQPq4TMqwx3sY1TP+DvtTgz4nm3thuo7A+BK2U0Dw==",
"requires": {
"@babel/runtime": "^7.1.2",
"history": "^4.9.0",
"hoist-non-react-statics": "^3.1.0",
"loose-envify": "^1.3.1",
"mini-create-react-context": "^0.4.0",
"path-to-regexp": "^1.7.0",
"prop-types": "^15.6.2",
"react-is": "^16.6.0",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0"
},
"dependencies": {
"isarray": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
"integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
},
"path-to-regexp": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz",
"integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==",
"requires": {
"isarray": "0.0.1"
}
}
}
},
"react-router-dom": {
"version": "5.2.0",
"resolved": "https://registry.npmjs.org/react-router-dom/-/react-router-dom-5.2.0.tgz",
"integrity": "sha512-gxAmfylo2QUjcwxI63RhQ5G85Qqt4voZpUXSEqCwykV0baaOTQDR1f0PmY8AELqIyVc0NEZUj0Gov5lNGcXgsA==",
"requires": {
"@babel/runtime": "^7.1.2",
"history": "^4.9.0",
"loose-envify": "^1.3.1",
"prop-types": "^15.6.2",
"react-router": "5.2.0",
"tiny-invariant": "^1.0.2",
"tiny-warning": "^1.0.0"
}
},
"react-scripts": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/react-scripts/-/react-scripts-4.0.1.tgz",
......@@ -12347,6 +12590,17 @@
"workbox-webpack-plugin": "5.1.4"
}
},
"react-transition-group": {
"version": "4.4.1",
"resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.1.tgz",
"integrity": "sha512-Djqr7OQ2aPUiYurhPalTrVy9ddmFCCzwhqQmtN+J3+3DzLO209Fdr70QrN8Z3DsglWql6iY1lDWAfpFiBtuKGw==",
"requires": {
"@babel/runtime": "^7.5.5",
"dom-helpers": "^5.0.1",
"loose-envify": "^1.4.0",
"prop-types": "^15.6.2"
}
},
"read-pkg": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-2.0.0.tgz",
......@@ -12757,6 +13011,11 @@
"resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
"integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="
},
"resolve-pathname": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-3.0.0.tgz",
"integrity": "sha512-C7rARubxI8bXFNB/hqcp/4iUeIXJhJZvFPFPiSPRnhU5UPxzMFIl+2E6yY6c4k9giDJAhtV+enfA+G89N6Csng=="
},
"resolve-url": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz",
......@@ -13415,13 +13674,12 @@
"optional": true
},
"side-channel": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz",
"integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==",
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.3.tgz",
"integrity": "sha512-A6+ByhlLkksFoUepsGxfj5x1gTSrs+OydsRptUxeNCabQpCFUvcwIczgOigI8vhY/OJCnPnyE9rGiwgvr9cS1g==",
"requires": {
"call-bind": "^1.0.0",
"get-intrinsic": "^1.0.2",
"object-inspect": "^1.9.0"
"es-abstract": "^1.18.0-next.0",
"object-inspect": "^1.8.0"
}
},
"signal-exit": {
......@@ -14413,6 +14671,16 @@
"resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz",
"integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q="
},
"tiny-invariant": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/tiny-invariant/-/tiny-invariant-1.1.0.tgz",
"integrity": "sha512-ytxQvrb1cPc9WBEI/HSeYYoGD0kWnGEOR8RY6KomWLBVhqz0RgTwVO9dLrGz7dC+nN9llyI7OKAgRq8Vq4ZBSw=="
},
"tiny-warning": {
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/tiny-warning/-/tiny-warning-1.0.3.tgz",
"integrity": "sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA=="
},
"tmpl": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz",
......@@ -14595,6 +14863,17 @@
"is-typedarray": "^1.0.0"
}
},
"uncontrollable": {
"version": "7.1.1",
"resolved": "https://registry.npmjs.org/uncontrollable/-/uncontrollable-7.1.1.tgz",
"integrity": "sha512-EcPYhot3uWTS3w00R32R2+vS8Vr53tttrvMj/yA1uYRhf8hbTG2GyugGqWDY0qIskxn0uTTojVd6wPYW9ZEf8Q==",
"requires": {
"@babel/runtime": "^7.6.3",
"@types/react": "^16.9.11",
"invariant": "^2.2.4",
"react-lifecycles-compat": "^3.0.4"
}
},
"unicode-canonical-property-names-ecmascript": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz",
......@@ -14883,6 +15162,11 @@
"spdx-expression-parse": "^3.0.0"
}
},
"value-equal": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/value-equal/-/value-equal-1.0.1.tgz",
"integrity": "sha512-NOJ6JZCAWr0zlxZt+xqCHNTEKOsrks2HQd4MqhP1qy4z1SkbEP467eNx6TgDKXMvUOb+OENfJCZwM+16n7fRfw=="
},
"vary": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz",
......@@ -14932,6 +15216,14 @@
"makeerror": "1.0.x"
}
},
"warning": {
"version": "4.0.3",
"resolved": "https://registry.npmjs.org/warning/-/warning-4.0.3.tgz",
"integrity": "sha512-rpJyN222KWIvHJ/F53XSZv0Zl/accqHR8et1kpaMTD/fLCRxtV8iX8czMzY7sVZupTI3zcUTg8eycS2kNF9l6w==",
"requires": {
"loose-envify": "^1.0.0"
}
},
"watchpack": {
"version": "1.7.5",
"resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz",
......@@ -16328,9 +16620,9 @@
}
},
"ws": {
"version": "7.4.2",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.2.tgz",
"integrity": "sha512-T4tewALS3+qsrpGI/8dqNMLIVdq/g/85U98HPMa6F0m6xTbvhXU6RCQLqPH3+SlomNV/LdY6RXEbBpMH6EOJnA=="
"version": "7.4.1",
"resolved": "https://registry.npmjs.org/ws/-/ws-7.4.1.tgz",
"integrity": "sha512-pTsP8UAfhy3sk1lSk/O/s4tjD0CRwvMnzvwr4OKGX7ZvqZtUyx4KIJB5JWbkykPoc55tixMGgTNoh3k4FkNGFQ=="
},
"xml-name-validator": {
"version": "3.0.0",
......
......@@ -2,7 +2,7 @@
<html lang="en">
<head>
<meta charset="utf-8" />
<link rel="icon" href="%PUBLIC_URL%/favicon.ico" />
<link rel="icon" href="%PUBLIC_URL%/footprint.ico" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta name="theme-color" content="#000000" />
<meta
......@@ -24,7 +24,7 @@
work correctly both with client-side routing and a non-root public URL.
Learn how to configure a non-root public URL by running `npm run build`.
-->
<title>React App</title>
<title>KU#</title>
</head>
<body>
<noscript>You need to enable JavaScript to run this app.</noscript>
......
import React, { useState, useEffect, useRef } from 'react';
import { Navbar, Nav } from 'react-bootstrap';
import logo from '../footprint.svg';
import cart from '../cart.svg';
import option from '../option.svg';
function MainNav() {
function handleClick() {
alert('로그아웃이 완료되었습니다.')
}
return (
<Navbar fixed="top" bg="dark" variant="dark" style={{position: "sticky"}}>
<Navbar.Brand href="/home">
<img src={logo} width="23" height="23" />
{' '}KU#
</Navbar.Brand>
<Nav className="justify-content-end">
<Nav.Link href="/login">Login</Nav.Link>
<Nav.Link href="/signup">Signup</Nav.Link>
<Nav.Link href="/shoppingcart">
<img src={cart} width="30" height="30" />
</Nav.Link>
<Nav.Link onClick={() => handleClick()}>Logout</Nav.Link>
<Nav.Link href="/admin/:id">
<img src={option} width="30" height="30" />
</Nav.Link>
</Nav>
</Navbar>
)
}
export default MainNav
\ No newline at end of file
import React, { useState, useEffect, useRef } from 'react';
import { Pagination } from 'react-bootstrap';
function pagination() {
let active = 1;
let items = [];
for (let number = 1; number <= 5; number++) {
items.push(
<Pagination.Item key={number} active={number === active}>
{number}
</Pagination.Item>,
);
}
return (
<Pagination className="justify-content-center mt-5">{items}</Pagination>
)
}
export default pagination
\ No newline at end of file
import React, { useState, useEffect, useRef } from 'react';
import { Redirect } from 'react-router-dom';
import { Nav, NavDropdown } from 'react-bootstrap';
function SubNav() {
const [toggle, setToggle] = useState({ "dress": false, "outer": false, "top": false, "pants": false, "skirt": false, "training": false, "shoes": false });
function handleMouseEnter(id) {
setToggle({ [id]: true })
}
function handleMouseLeave(id) {
setToggle({ [id]: false })
}
function handleToggle(id) {
setToggle({ [id]: !toggle[`${id}`] })
}
function handleClick(url) {
return <Redirect to={url} />
}
return (
<Nav fixed="top" className="flex-nowrap">
<NavDropdown title="DRESS" onMouseEnter={() => handleMouseEnter("dress")} onMouseLeave={() => handleMouseLeave("dress")} show={toggle.dress} toggle={() => handleToggle("dress")} onClick={() => handleClick("/dress")}>
<NavDropdown.Item href="/dress/long">LONG DRESS</NavDropdown.Item>
<NavDropdown.Item href="/dress/short">SHORT DRESS</NavDropdown.Item>
<NavDropdown.Item href="/dress/knit">KNIT DRESS</NavDropdown.Item>
<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>
<NavDropdown.Item href="/dress/two-piece">TWO-PIECE DRESS</NavDropdown.Item>
</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>
<NavDropdown.Item href="/outer/jacket">JACKET</NavDropdown.Item>
<NavDropdown.Item href="/outer/jumper">JUMPER</NavDropdown.Item>
<NavDropdown.Item href="/outer/coat">COAT</NavDropdown.Item>
<NavDropdown.Item href="/outer/fleece">FLEECE</NavDropdown.Item>
<NavDropdown.Item href="/outer/cardigan_vest">CARDIGAN / VEST</NavDropdown.Item>
</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>
<NavDropdown.Item href="/top/hoody">HOODY</NavDropdown.Item>
<NavDropdown.Item href="/top/blouse">BLOUSE</NavDropdown.Item>
<NavDropdown.Item href="/top/shirt">SHIRT</NavDropdown.Item>
<NavDropdown.Item href="/top/sweatshirt">SWEATSHIRT</NavDropdown.Item>
<NavDropdown.Item href="/top/long-sleeve-shirt">LONG SLEEVE SHIRT</NavDropdown.Item>
<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")}>
<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>
)
}
export default SubNav
\ No newline at end of file
import React, { useState, useEffect, useRef } from 'react';
import { Redirect } from 'react-router-dom';
import MainNav from '../Components/MainNav';
import SubNav from '../Components/SubNav';
import Pagination from '../Components/Pagination';
import search from '../search.svg';
import { Row, Col, Form, FormControl, Button, Card } from 'react-bootstrap';
function Admin() {
return (
<div>
<MainNav />
<SubNav />
<Row className="justify-content-end mt-5 mr-3">
<Col md={4} sm={5} xs={8} as={Form} inline className="justify-content-end">
<FormControl type="text" placeholder="Search" className="mr-1" />
<Button bg="dark" variant="dark" type="submit" className="px-2">
<img src={search} width="20" height="20" />
</Button>
</Col>
<Col sm={2} xs={3} as={Button} variant="dark" type="button" href="/:id/productsregist">상품 등록</Col>
</Row>
<Row className="mt-5 m-auto justify-content-start">
<Card className="m-4" style={{width: "18rem"}}>
<Card.Img variant="top" src="https://img.sonyunara.com/files/goods/67460/1607053816_0.jpg" />
<Card.Body>
<Card.Title>케이시앵글부츠(SH)</Card.Title>
<Card.Text>
재고: 8
구매자 : 10
</Card.Text>
</Card.Body>
</Card>
<Card className="m-4" style={{width: "18rem"}}>
<Card.Img variant="top" src="https://img.sonyunara.com/files/goods/48705/1552562469_0.jpg" />
<Card.Body>
<Card.Title>메리제인플랫(SH)</Card.Title>
<Card.Text>
재고: 20
구매자 : 60
</Card.Text>
</Card.Body>
</Card>
<Card className="m-4" style={{width: "18rem"}}>
<Card.Img variant="top" src="https://img.sonyunara.com/files/goods/53386/1567390097_2.jpg" />
<Card.Body>
<Card.Title>솔티드스니커즈(SH)</Card.Title>
<Card.Text>
재고: 34
구매자 : 5
</Card.Text>
</Card.Body>
</Card>
<Card className="m-4" style={{width: "18rem"}}>
<Card.Img variant="top" src="https://img.sonyunara.com/files/goods/61286/1587540563_0.jpg" />
<Card.Body>
<Card.Title>버켄슬리퍼(SH)</Card.Title>
<Card.Text>
재고:
구매자 :
</Card.Text>
</Card.Body>
</Card>
<Card className="m-4" style={{width: "18rem"}}>
<Card.Img variant="top" src="https://hotping.co.kr/web/product/big/202011/b8f4c6471955b80fc3991b7d6df8926a.jpg" />
<Card.Body>
<Card.Title>크레센도 하이힐펌프스</Card.Title>
<Card.Text>
재고: 35
구매자 : 70
</Card.Text>
</Card.Body>
</Card>
<Card className="m-4" style={{width: "18rem"}}>
<Card.Img variant="top" src="https://hotping.co.kr/web/product/big/202011/888e4e8d6a2c2e7da385b079151fcba2.jpg" />
<Card.Body>
<Card.Title>어텀솔져1cm 스웨이드로퍼</Card.Title>
<Card.Text>
재고: 40
구매자 : 30
</Card.Text>
</Card.Body>
</Card>
<Card className="m-4" style={{width: "18rem"}}>
<Card.Img variant="top" src="https://hotping.co.kr/web/product/big/202007/3308564012eb14e6c11ed621fa7555fb.jpg" />
<Card.Body>
<Card.Title>포웰3.5cm 스니커즈</Card.Title>
<Card.Text>
재고: 15
구매자 : 50
</Card.Text>
</Card.Body>
</Card>
</Row>
<Pagination />
</div>
)
}
export default Admin
\ No newline at end of file
import React, { useState, useEffect, useRef } from 'react';
import MainNav from '../Components/MainNav';
import SubNav from '../Components/SubNav';
import { Card, CardDeck, CardColumns, Container, Row } from 'react-bootstrap';
function Home() {
return (
<div>
<MainNav />
<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>
)
}
export default Home
\ No newline at end of file
import React, { useState, useEffect, useRef } from 'react';
import MainNav from '../Components/MainNav';
import SubNav from '../Components/SubNav';
function Login() {
return (
<div>
<MainNav />
<SubNav />
</div>
)
}
export default Login
\ No newline at end of file
import React, { useState, useEffect, useRef } from 'react';
import MainNav from '../Components/MainNav';
import SubNav from '../Components/SubNav';
import { Container, Card, Row, Col, Button, Form } from 'react-bootstrap';
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 (
<div>
<MainNav />
<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>
)
}
export default Payment
\ No newline at end of file
import React, { useState, useEffect, useRef } from 'react';
import MainNav from '../Components/MainNav';
import SubNav from '../Components/SubNav';
function Products() {
return (
<div>
<MainNav />
<SubNav />
</div>
)
}
export default Products
\ No newline at end of file
import React, { useState, useEffect, useRef } from 'react';
import MainNav from '../Components/MainNav';
import SubNav from '../Components/SubNav';
import Products from './Products';
function ProductsList() {
return (
<div>
<MainNav />
<SubNav />
</div>
)
}
export default ProductsList
\ No newline at end of file
import React, { useState, useEffect, useRef } from 'react';
import MainNav from '../Components/MainNav';
import SubNav from '../Components/SubNav';
function ProductsRegist() {
return (
<div>
<MainNav />
<SubNav />
</div>
)
}
export default ProductsRegist
\ No newline at end of file
import React, { useState, useEffect, useRef } from 'react';
import { Redirect } from 'react-router-dom';
import MainNav from '../Components/MainNav';
import SubNav from '../Components/SubNav';
import { Card, Button, Container, Row, Col } from 'react-bootstrap';
function ShoppingCart() {
return (
<div>
<MainNav />
<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>
)
}
export default ShoppingCart
\ No newline at end of file
import React, { useState, useEffect, useRef } from 'react';
import { Redirect } from 'react-router-dom';
import MainNav from '../Components/MainNav';
import SubNav from '../Components/SubNav';
function Signup() {
return (
<div class="form-container">
<MainNav />
<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>
)
}
export default Signup
\ 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"><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
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