[{"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\index.js":"1","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\reportWebVitals.js":"2","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\pagination.js":"3","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Place.js":"4","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Login.js":"5","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\utils\\catchErrors.js":"6","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Signup.js":"7","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\utils\\auth.js":"8","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Paginations.js":"9","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Search.js":"10","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\App.js":"11","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\PrivateRoute.js":"12","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Bookmark.js":"13"},{"size":1252,"mtime":1611127524644,"results":"14","hashOfConfig":"15"},{"size":362,"mtime":499162500000,"results":"16","hashOfConfig":"15"},{"size":2336,"mtime":1611127524186,"results":"17","hashOfConfig":"15"},{"size":1608,"mtime":1611127940167,"results":"18","hashOfConfig":"15"},{"size":2742,"mtime":1610519196409,"results":"19","hashOfConfig":"15"},{"size":405,"mtime":1609915408569,"results":"20","hashOfConfig":"15"},{"size":2675,"mtime":1610519220676,"results":"21","hashOfConfig":"15"},{"size":459,"mtime":1610352110057,"results":"22","hashOfConfig":"15"},{"size":2199,"mtime":1610503781980,"results":"23","hashOfConfig":"15"},{"size":10368,"mtime":1611250275739,"results":"24","hashOfConfig":"15"},{"size":2110,"mtime":1610617422890,"results":"25","hashOfConfig":"15"},{"size":438,"mtime":1610615328660,"results":"26","hashOfConfig":"15"},{"size":1987,"mtime":1611251902191,"results":"27","hashOfConfig":"15"},{"filePath":"28","messages":"29","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"30","usedDeprecatedRules":"31"},"1t9w6go",{"filePath":"32","messages":"33","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"31"},{"filePath":"34","messages":"35","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"31"},{"filePath":"36","messages":"37","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"38","usedDeprecatedRules":"31"},{"filePath":"39","messages":"40","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"31"},{"filePath":"41","messages":"42","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"31"},{"filePath":"43","messages":"44","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"31"},{"filePath":"45","messages":"46","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"31"},{"filePath":"47","messages":"48","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"49","messages":"50","errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"51","messages":"52","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"53","usedDeprecatedRules":"31"},{"filePath":"54","messages":"55","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"31"},{"filePath":"56","messages":"57","errorCount":5,"warningCount":14,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\index.js",["58"],"import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport './index.css';\r\nimport 'bootstrap/dist/css/bootstrap.min.css';\r\nimport App from './App'\r\nimport Search from './Search';\r\nimport reportWebVitals from './reportWebVitals';\r\nimport Signup from './Components/Signup'\r\nimport Login from './Components/Login'\r\nimport PrivateRoute from \"./Components/PrivateRoute\";\r\nimport Bookmark from \"./Bookmark\"\r\nimport {\r\n BrowserRouter as Router,\r\n Switch,\r\n Route,\r\n Redirect,\r\n} from \"react-router-dom\";\r\nimport axios from 'axios';\r\n\r\n\r\nReactDOM.render(\r\n <React.StrictMode>\r\n <Router>\r\n <Switch>\r\n <Route exact path=\"/\" component={App} />\r\n <Route path=\"/search\" component={Search} />\r\n <Route path='/signup' component={Signup}/>\r\n <Route path='/login' component={Login} />\r\n <Redirect path=\"/search/:search\" to=\"/search\" />\r\n <PrivateRoute path='/bookmark'><Bookmark/></PrivateRoute>\r\n </Switch>\r\n </Router>\r\n </React.StrictMode>,\r\n document.getElementById('root')\r\n);\r\n\r\n// If you want to start measuring performance in your app, pass a function\r\n// to log results (for example: reportWebVitals(console.log))\r\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\r\nreportWebVitals();\r\n",["59","60"],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\reportWebVitals.js",[],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\pagination.js",[],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Place.js",["61","62","63","64","65","66"],"import axios from 'axios';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Modal, Container, Row, Col, Button, Badge, Card, Accordion, Carousel } from 'react-bootstrap';\r\n\r\nfunction Place(props) {\r\n const [reviews, setReviews] = useState([])\r\n const getReview = () => {\r\n axios.get(`/api/review/${props.search.name}`)\r\n .then(res => {\r\n console.log(\"place res.data\", res.data)\r\n setReviews(res.data)\r\n })\r\n .catch(err => {\r\n console.log(err)\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n getReview();\r\n }, [])\r\n\r\n\r\n return (\r\n <Modal {...props}\r\n size=\"xl\"\r\n keyboard=\"true\"\r\n variant=\"backdrop.in\"\r\n // show={lgShow}\r\n // onHide={() => setLgShow(false)}\r\n aria-labelledby=\"example-modal-sizes-title-lg\">\r\n <Modal.Header closeButton>\r\n <Modal.Title id=\"contained-modal-title-vcenter\" style={{ fontSize: '40px' }}>\r\n {props.index + 1}. {props.search.name}\r\n </Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body className=\"show-grid\">\r\n <Container style={{ fontSize: '40px' }}>\r\n {reviews.map((review, index) => {\r\n return (\r\n <Row className=\"mt-4\">\r\n <a href={review.link}>{review.title}</a>\r\n <div>{review.summary}</div>\r\n <div>{review.content}</div>\r\n </Row>\r\n )\r\n })}\r\n </Container>\r\n\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button block onClick={props.onHide}>Close</Button>\r\n </Modal.Footer>\r\n </Modal>\r\n );\r\n}\r\n\r\nexport default Place;\r\n","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Login.js",[],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\utils\\catchErrors.js",[],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Signup.js",[],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\utils\\auth.js",[],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Paginations.js",[],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Search.js",["67","68","69","70","71","72","73"],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\App.js",["74","75","76","77"],"import React, { useEffect, useState } from 'react';\r\nimport { Link, Redirect } from 'react-router-dom';\r\nimport ohuh from './ohuh.PNG'\r\nimport { Container, Row, Form, Image, InputGroup, Button, Col, FormControl, Navbar, Nav } from 'react-bootstrap';\r\nimport { handleLogout, isAuthenticated } from './utils/auth.js'\r\n\r\nfunction App() {\r\n const [state, setState] = useState(false);\r\n const [search, setSearch] = useState(\"\");\r\n const user = isAuthenticated()\r\n\r\n if (state !== false) {\r\n return <Redirect to={{\r\n pathname: `/search/${search}`,\r\n state: { id: search },\r\n }} />;\r\n }\r\n\r\n const handleChange = (e) => {\r\n setSearch(e.target.value);\r\n }\r\n\r\n const handleSubmit = () => {\r\n setState(true);\r\n }\r\n\r\n return (\r\n <Container className=\"vh-100 d-flex justify-content-md-center align-items-center\">\r\n <Col md={6} style={{ marginTop: 140 }}>\r\n <Nav className=\"justify-content-end\" bg=\"#fff\" variant=\"light\" >\r\n {user ? <Nav.Link onClick={() => handleLogout()}>로그아웃</Nav.Link>\r\n : (\r\n <>\r\n <Nav.Link href=\"/signup\">회원가입</Nav.Link>\r\n <Nav.Link href=\"/login\">로그인</Nav.Link>\r\n </>\r\n )}\r\n <Nav.Link href='/bookmark'>북마크</Nav.Link>\r\n </Nav>\r\n <Row style={{ marginBottom: 20 }}>\r\n <Image src={ohuh} />\r\n </Row>\r\n <Row style={{ marginBottom: 500 }}>\r\n <Form className=\"vw-100\" onSubmit={handleSubmit}>\r\n <InputGroup style={{ width: 560 }}>\r\n <Form.Control\r\n size=\"lg\"\r\n placeholder=\"검색어를 입력하세요.\"\r\n aria-label=\"Large\"\r\n aria-describedby=\"inputGroup-sizing-sm\"\r\n onChange={handleChange}\r\n />\r\n <InputGroup.Append>\r\n <Button type='submit' variant=\"outline-secondary\">검색</Button>\r\n </InputGroup.Append>\r\n </InputGroup>\r\n </Form>\r\n </Row>\r\n </Col>\r\n </Container>\r\n );\r\n}\r\n\r\nexport default App;\r\n","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\PrivateRoute.js",[],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Bookmark.js",["78","79","80","81","82","83","84","85","86","87","88","89","90","91","92","93","94","95","96"],{"ruleId":"97","severity":1,"message":"98","line":18,"column":8,"nodeType":"99","messageId":"100","endLine":18,"endColumn":13},{"ruleId":"101","replacedBy":"102"},{"ruleId":"103","replacedBy":"104"},{"ruleId":"97","severity":1,"message":"105","line":3,"column":33,"nodeType":"99","messageId":"100","endLine":3,"endColumn":36},{"ruleId":"97","severity":1,"message":"106","line":3,"column":46,"nodeType":"99","messageId":"100","endLine":3,"endColumn":51},{"ruleId":"97","severity":1,"message":"107","line":3,"column":53,"nodeType":"99","messageId":"100","endLine":3,"endColumn":57},{"ruleId":"97","severity":1,"message":"108","line":3,"column":59,"nodeType":"99","messageId":"100","endLine":3,"endColumn":68},{"ruleId":"97","severity":1,"message":"109","line":3,"column":70,"nodeType":"99","messageId":"100","endLine":3,"endColumn":78},{"ruleId":"110","severity":1,"message":"111","line":20,"column":6,"nodeType":"112","endLine":20,"endColumn":8,"suggestions":"113"},{"ruleId":"97","severity":1,"message":"114","line":5,"column":83,"nodeType":"99","messageId":"100","endLine":5,"endColumn":88},{"ruleId":"97","severity":1,"message":"98","line":8,"column":8,"nodeType":"99","messageId":"100","endLine":8,"endColumn":13},{"ruleId":"97","severity":1,"message":"115","line":16,"column":12,"nodeType":"99","messageId":"100","endLine":16,"endColumn":18},{"ruleId":"97","severity":1,"message":"116","line":17,"column":12,"nodeType":"99","messageId":"100","endLine":17,"endColumn":16},{"ruleId":"97","severity":1,"message":"117","line":19,"column":11,"nodeType":"99","messageId":"100","endLine":19,"endColumn":22},{"ruleId":"97","severity":1,"message":"118","line":20,"column":11,"nodeType":"99","messageId":"100","endLine":20,"endColumn":21},{"ruleId":"119","severity":1,"message":"120","line":90,"column":35,"nodeType":"121","endLine":90,"endColumn":76},{"ruleId":"97","severity":1,"message":"122","line":1,"column":17,"nodeType":"99","messageId":"100","endLine":1,"endColumn":26},{"ruleId":"97","severity":1,"message":"123","line":2,"column":10,"nodeType":"99","messageId":"100","endLine":2,"endColumn":14},{"ruleId":"97","severity":1,"message":"124","line":4,"column":64,"nodeType":"99","messageId":"100","endLine":4,"endColumn":75},{"ruleId":"97","severity":1,"message":"125","line":4,"column":77,"nodeType":"99","messageId":"100","endLine":4,"endColumn":83},{"ruleId":"97","severity":1,"message":"122","line":1,"column":27,"nodeType":"99","messageId":"100","endLine":1,"endColumn":36},{"ruleId":"97","severity":1,"message":"126","line":2,"column":10,"nodeType":"99","messageId":"100","endLine":2,"endColumn":15},{"ruleId":"97","severity":1,"message":"105","line":2,"column":17,"nodeType":"99","messageId":"100","endLine":2,"endColumn":20},{"ruleId":"97","severity":1,"message":"107","line":2,"column":22,"nodeType":"99","messageId":"100","endLine":2,"endColumn":26},{"ruleId":"97","severity":1,"message":"127","line":2,"column":45,"nodeType":"99","messageId":"100","endLine":2,"endColumn":48},{"ruleId":"97","severity":1,"message":"128","line":2,"column":50,"nodeType":"99","messageId":"100","endLine":2,"endColumn":56},{"ruleId":"97","severity":1,"message":"129","line":2,"column":82,"nodeType":"99","messageId":"100","endLine":2,"endColumn":87},{"ruleId":"97","severity":1,"message":"130","line":2,"column":89,"nodeType":"99","messageId":"100","endLine":2,"endColumn":94},{"ruleId":"97","severity":1,"message":"131","line":4,"column":10,"nodeType":"99","messageId":"100","endLine":4,"endColumn":18},{"ruleId":"97","severity":1,"message":"132","line":12,"column":12,"nodeType":"99","messageId":"100","endLine":12,"endColumn":16},{"ruleId":"97","severity":1,"message":"133","line":12,"column":18,"nodeType":"99","messageId":"100","endLine":12,"endColumn":25},{"ruleId":"97","severity":1,"message":"134","line":13,"column":12,"nodeType":"99","messageId":"100","endLine":13,"endColumn":19},{"ruleId":"97","severity":1,"message":"135","line":15,"column":20,"nodeType":"99","messageId":"100","endLine":15,"endColumn":32},{"ruleId":"136","severity":2,"message":"137","line":18,"column":13,"nodeType":"99","messageId":"138","endLine":18,"endColumn":21},{"ruleId":"136","severity":2,"message":"139","line":19,"column":62,"nodeType":"99","messageId":"138","endLine":19,"endColumn":66},{"ruleId":"136","severity":2,"message":"139","line":21,"column":25,"nodeType":"99","messageId":"138","endLine":21,"endColumn":29},{"ruleId":"136","severity":2,"message":"140","line":26,"column":13,"nodeType":"99","messageId":"138","endLine":26,"endColumn":24},{"ruleId":"136","severity":2,"message":"137","line":26,"column":32,"nodeType":"99","messageId":"138","endLine":26,"endColumn":40},{"ruleId":"97","severity":1,"message":"141","line":30,"column":11,"nodeType":"99","messageId":"100","endLine":30,"endColumn":19},"no-unused-vars","'axios' is defined but never used.","Identifier","unusedVar","no-native-reassign",["142"],"no-negated-in-lhs",["143"],"'Col' is defined but never used.","'Badge' is defined but never used.","'Card' is defined but never used.","'Accordion' is defined but never used.","'Carousel' is defined but never used.","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'getReview'. Either include it or remove the dependency array.","ArrayExpression",["144"],"'Modal' is defined but never used.","'mobile' is assigned a value but never used.","'show' is assigned a value but never used.","'handleClose' is assigned a value but never used.","'handleShow' is assigned a value but never used.","react/jsx-no-duplicate-props","No duplicate props allowed","JSXAttribute","'useEffect' is defined but never used.","'Link' is defined but never used.","'FormControl' is defined but never used.","'Navbar' is defined but never used.","'Alert' is defined but never used.","'Row' is defined but never used.","'Button' is defined but never used.","'Image' is defined but never used.","'Table' is defined but never used.","'Redirect' is defined but never used.","'page' is assigned a value but never used.","'setPage' is assigned a value but never used.","'success' is assigned a value but never used.","'handleSubmit' is defined but never used.","no-undef","'setError' is not defined.","undef","'user' is not defined.","'catchErrors' is not defined.","'add_Page' is assigned a value but never used.","no-global-assign","no-unsafe-negation",{"desc":"145","fix":"146"},"Update the dependencies array to be: [getReview]",{"range":"147","text":"148"},[560,562],"[getReview]"]
[{"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\index.js":"1","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\reportWebVitals.js":"2","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Place.js":"3","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Login.js":"4","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\utils\\catchErrors.js":"5","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Signup.js":"6","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\utils\\auth.js":"7","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Paginations.js":"8","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Search.js":"9","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\App.js":"10","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\PrivateRoute.js":"11","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Bookmark.js":"12"},{"size":1368,"mtime":1611270972548,"results":"13","hashOfConfig":"14"},{"size":362,"mtime":499162500000,"results":"15","hashOfConfig":"14"},{"size":1606,"mtime":1611251972438,"results":"16","hashOfConfig":"14"},{"size":2742,"mtime":1610519196409,"results":"17","hashOfConfig":"14"},{"size":405,"mtime":1609915408569,"results":"18","hashOfConfig":"14"},{"size":2675,"mtime":1610519220676,"results":"19","hashOfConfig":"14"},{"size":459,"mtime":1610352110057,"results":"20","hashOfConfig":"14"},{"size":2199,"mtime":1610503781980,"results":"21","hashOfConfig":"14"},{"size":10892,"mtime":1611275393517,"results":"22","hashOfConfig":"14"},{"size":2110,"mtime":1610617422890,"results":"23","hashOfConfig":"14"},{"size":438,"mtime":1610615328660,"results":"24","hashOfConfig":"14"},{"size":2226,"mtime":1611269968099,"results":"25","hashOfConfig":"14"},{"filePath":"26","messages":"27","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"1t9w6go",{"filePath":"28","messages":"29","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"30"},{"filePath":"31","messages":"32","errorCount":0,"warningCount":6,"fixableErrorCount":0,"fixableWarningCount":0,"source":"33","usedDeprecatedRules":"30"},{"filePath":"34","messages":"35","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"30"},{"filePath":"36","messages":"37","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"30"},{"filePath":"38","messages":"39","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"30"},{"filePath":"40","messages":"41","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"30"},{"filePath":"42","messages":"43","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"30"},{"filePath":"44","messages":"45","errorCount":0,"warningCount":10,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"46","messages":"47","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"48","usedDeprecatedRules":"30"},{"filePath":"49","messages":"50","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"30"},{"filePath":"51","messages":"52","errorCount":0,"warningCount":14,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\index.js",[],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\reportWebVitals.js",[],["53","54"],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Place.js",["55","56","57","58","59","60"],"import axios from 'axios';\r\nimport React, { useEffect, useState } from 'react';\r\nimport { Modal, Container, Row, Col, Button, Badge, Card, Accordion, Carousel } from 'react-bootstrap';\r\n\r\nfunction Place(props) {\r\n const [reviews, setReviews] = useState([])\r\n const getReview = () => {\r\n axios.get(`/api/review/${props.search.name}`)\r\n .then(res => {\r\n console.log(\"place res.data\", res.data)\r\n setReviews(res.data)\r\n })\r\n .catch(err => {\r\n console.log(err)\r\n })\r\n }\r\n\r\n useEffect(() => {\r\n getReview();\r\n }, [])\r\n\r\n return (\r\n <Modal {...props}\r\n size=\"xl\"\r\n keyboard=\"true\"\r\n variant=\"backdrop.in\"\r\n // show={lgShow}\r\n // onHide={() => setLgShow(false)}\r\n aria-labelledby=\"example-modal-sizes-title-lg\">\r\n <Modal.Header closeButton>\r\n <Modal.Title id=\"contained-modal-title-vcenter\" style={{ fontSize: '40px' }}>\r\n {props.index + 1}. {props.search.name}\r\n </Modal.Title>\r\n </Modal.Header>\r\n <Modal.Body className=\"show-grid\">\r\n <Container style={{ fontSize: '40px' }}>\r\n {reviews.map((review, index) => {\r\n return (\r\n <Row className=\"mt-4\">\r\n <a href={review.link}>{review.title}</a>\r\n <div>{review.summary}</div>\r\n <div>{review.content}</div>\r\n </Row>\r\n )\r\n })}\r\n </Container>\r\n\r\n </Modal.Body>\r\n <Modal.Footer>\r\n <Button block onClick={props.onHide}>Close</Button>\r\n </Modal.Footer>\r\n </Modal>\r\n );\r\n}\r\n\r\nexport default Place;\r\n","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Login.js",[],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\utils\\catchErrors.js",[],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Signup.js",[],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\utils\\auth.js",[],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\Paginations.js",[],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Search.js",["61","62","63","64","65","66","67","68","69","70"],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\App.js",["71","72","73","74"],"import React, { useEffect, useState } from 'react';\r\nimport { Link, Redirect } from 'react-router-dom';\r\nimport ohuh from './ohuh.PNG'\r\nimport { Container, Row, Form, Image, InputGroup, Button, Col, FormControl, Navbar, Nav } from 'react-bootstrap';\r\nimport { handleLogout, isAuthenticated } from './utils/auth.js'\r\n\r\nfunction App() {\r\n const [state, setState] = useState(false);\r\n const [search, setSearch] = useState(\"\");\r\n const user = isAuthenticated()\r\n\r\n if (state !== false) {\r\n return <Redirect to={{\r\n pathname: `/search/${search}`,\r\n state: { id: search },\r\n }} />;\r\n }\r\n\r\n const handleChange = (e) => {\r\n setSearch(e.target.value);\r\n }\r\n\r\n const handleSubmit = () => {\r\n setState(true);\r\n }\r\n\r\n return (\r\n <Container className=\"vh-100 d-flex justify-content-md-center align-items-center\">\r\n <Col md={6} style={{ marginTop: 140 }}>\r\n <Nav className=\"justify-content-end\" bg=\"#fff\" variant=\"light\" >\r\n {user ? <Nav.Link onClick={() => handleLogout()}>로그아웃</Nav.Link>\r\n : (\r\n <>\r\n <Nav.Link href=\"/signup\">회원가입</Nav.Link>\r\n <Nav.Link href=\"/login\">로그인</Nav.Link>\r\n </>\r\n )}\r\n <Nav.Link href='/bookmark'>북마크</Nav.Link>\r\n </Nav>\r\n <Row style={{ marginBottom: 20 }}>\r\n <Image src={ohuh} />\r\n </Row>\r\n <Row style={{ marginBottom: 500 }}>\r\n <Form className=\"vw-100\" onSubmit={handleSubmit}>\r\n <InputGroup style={{ width: 560 }}>\r\n <Form.Control\r\n size=\"lg\"\r\n placeholder=\"검색어를 입력하세요.\"\r\n aria-label=\"Large\"\r\n aria-describedby=\"inputGroup-sizing-sm\"\r\n onChange={handleChange}\r\n />\r\n <InputGroup.Append>\r\n <Button type='submit' variant=\"outline-secondary\">검색</Button>\r\n </InputGroup.Append>\r\n </InputGroup>\r\n </Form>\r\n </Row>\r\n </Col>\r\n </Container>\r\n );\r\n}\r\n\r\nexport default App;\r\n","C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Components\\PrivateRoute.js",[],"C:\\Users\\hello\\Desktop\\project\\search-page\\client\\src\\Bookmark.js",["75","76","77","78","79","80","81","82","83","84","85","86","87","88"],{"ruleId":"89","replacedBy":"90"},{"ruleId":"91","replacedBy":"92"},{"ruleId":"93","severity":1,"message":"94","line":3,"column":33,"nodeType":"95","messageId":"96","endLine":3,"endColumn":36},{"ruleId":"93","severity":1,"message":"97","line":3,"column":46,"nodeType":"95","messageId":"96","endLine":3,"endColumn":51},{"ruleId":"93","severity":1,"message":"98","line":3,"column":53,"nodeType":"95","messageId":"96","endLine":3,"endColumn":57},{"ruleId":"93","severity":1,"message":"99","line":3,"column":59,"nodeType":"95","messageId":"96","endLine":3,"endColumn":68},{"ruleId":"93","severity":1,"message":"100","line":3,"column":70,"nodeType":"95","messageId":"96","endLine":3,"endColumn":78},{"ruleId":"101","severity":1,"message":"102","line":20,"column":6,"nodeType":"103","endLine":20,"endColumn":8,"suggestions":"104"},{"ruleId":"93","severity":1,"message":"105","line":5,"column":83,"nodeType":"95","messageId":"96","endLine":5,"endColumn":88},{"ruleId":"93","severity":1,"message":"106","line":22,"column":12,"nodeType":"95","messageId":"96","endLine":22,"endColumn":18},{"ruleId":"93","severity":1,"message":"107","line":23,"column":12,"nodeType":"95","messageId":"96","endLine":23,"endColumn":16},{"ruleId":"93","severity":1,"message":"108","line":24,"column":18,"nodeType":"95","messageId":"96","endLine":24,"endColumn":25},{"ruleId":"93","severity":1,"message":"109","line":25,"column":12,"nodeType":"95","messageId":"96","endLine":25,"endColumn":19},{"ruleId":"93","severity":1,"message":"110","line":26,"column":12,"nodeType":"95","messageId":"96","endLine":26,"endColumn":17},{"ruleId":"93","severity":1,"message":"111","line":28,"column":11,"nodeType":"95","messageId":"96","endLine":28,"endColumn":22},{"ruleId":"93","severity":1,"message":"112","line":29,"column":11,"nodeType":"95","messageId":"96","endLine":29,"endColumn":21},{"ruleId":"93","severity":1,"message":"113","line":84,"column":19,"nodeType":"95","messageId":"96","endLine":84,"endColumn":27},{"ruleId":"114","severity":1,"message":"115","line":106,"column":35,"nodeType":"116","endLine":106,"endColumn":76},{"ruleId":"93","severity":1,"message":"117","line":1,"column":17,"nodeType":"95","messageId":"96","endLine":1,"endColumn":26},{"ruleId":"93","severity":1,"message":"118","line":2,"column":10,"nodeType":"95","messageId":"96","endLine":2,"endColumn":14},{"ruleId":"93","severity":1,"message":"119","line":4,"column":64,"nodeType":"95","messageId":"96","endLine":4,"endColumn":75},{"ruleId":"93","severity":1,"message":"120","line":4,"column":77,"nodeType":"95","messageId":"96","endLine":4,"endColumn":83},{"ruleId":"93","severity":1,"message":"117","line":1,"column":27,"nodeType":"95","messageId":"96","endLine":1,"endColumn":36},{"ruleId":"93","severity":1,"message":"121","line":2,"column":10,"nodeType":"95","messageId":"96","endLine":2,"endColumn":15},{"ruleId":"93","severity":1,"message":"94","line":2,"column":17,"nodeType":"95","messageId":"96","endLine":2,"endColumn":20},{"ruleId":"93","severity":1,"message":"98","line":2,"column":22,"nodeType":"95","messageId":"96","endLine":2,"endColumn":26},{"ruleId":"93","severity":1,"message":"122","line":2,"column":45,"nodeType":"95","messageId":"96","endLine":2,"endColumn":48},{"ruleId":"93","severity":1,"message":"123","line":2,"column":50,"nodeType":"95","messageId":"96","endLine":2,"endColumn":56},{"ruleId":"93","severity":1,"message":"124","line":2,"column":82,"nodeType":"95","messageId":"96","endLine":2,"endColumn":87},{"ruleId":"93","severity":1,"message":"125","line":2,"column":89,"nodeType":"95","messageId":"96","endLine":2,"endColumn":94},{"ruleId":"93","severity":1,"message":"126","line":5,"column":10,"nodeType":"95","messageId":"96","endLine":5,"endColumn":18},{"ruleId":"93","severity":1,"message":"109","line":14,"column":12,"nodeType":"95","messageId":"96","endLine":14,"endColumn":19},{"ruleId":"93","severity":1,"message":"110","line":15,"column":12,"nodeType":"95","messageId":"96","endLine":15,"endColumn":17},{"ruleId":"93","severity":1,"message":"127","line":18,"column":14,"nodeType":"95","messageId":"96","endLine":18,"endColumn":26},{"ruleId":"93","severity":1,"message":"128","line":23,"column":20,"nodeType":"95","messageId":"96","endLine":23,"endColumn":32},{"ruleId":"93","severity":1,"message":"129","line":38,"column":11,"nodeType":"95","messageId":"96","endLine":38,"endColumn":19},"no-native-reassign",["130"],"no-negated-in-lhs",["131"],"no-unused-vars","'Col' is defined but never used.","Identifier","unusedVar","'Badge' is defined but never used.","'Card' is defined but never used.","'Accordion' is defined but never used.","'Carousel' is defined but never used.","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'getReview'. Either include it or remove the dependency array.","ArrayExpression",["132"],"'Modal' is defined but never used.","'mobile' is assigned a value but never used.","'show' is assigned a value but never used.","'setPage' is assigned a value but never used.","'success' is assigned a value but never used.","'error' is assigned a value but never used.","'handleClose' is assigned a value but never used.","'handleShow' is assigned a value but never used.","'response' is assigned a value but never used.","react/jsx-no-duplicate-props","No duplicate props allowed","JSXAttribute","'useEffect' is defined but never used.","'Link' is defined but never used.","'FormControl' is defined but never used.","'Navbar' is defined but never used.","'Alert' is defined but never used.","'Row' is defined but never used.","'Button' is defined but never used.","'Image' is defined but never used.","'Table' is defined but never used.","'Redirect' is defined but never used.","'handleChange' is defined but never used.","'handleSubmit' is defined but never used.","'add_Page' is assigned a value but never used.","no-global-assign","no-unsafe-negation",{"desc":"133","fix":"134"},"Update the dependencies array to be: [getReview]",{"range":"135","text":"136"},[560,562],"[getReview]"]