Commit e2fc281a authored by baesangjune's avatar baesangjune
Browse files

.

parent c7df9b76
[{"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\index.js":"1","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\reportWebVitals.js":"2","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\Paginations.js":"3","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Pages\\Search.js":"4","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Pages\\App.js":"5","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\PrivateRoute.js":"6","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Bookmark.js":"7","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\Login.js":"8","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\Signup.js":"9","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Pages\\Place.js":"10","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\utils\\auth.js":"11"},{"size":1339,"mtime":1612133560398,"results":"12","hashOfConfig":"13"},{"size":375,"mtime":1611254909401,"results":"14","hashOfConfig":"13"},{"size":3725,"mtime":1612133560393,"results":"15","hashOfConfig":"13"},{"size":8441,"mtime":1612144119009,"results":"16","hashOfConfig":"13"},{"size":4779,"mtime":1612145038641,"results":"17","hashOfConfig":"13"},{"size":438,"mtime":1612133560394,"results":"18","hashOfConfig":"13"},{"size":5574,"mtime":1612144294274,"results":"19","hashOfConfig":"13"},{"size":3150,"mtime":1612140232971,"results":"20","hashOfConfig":"13"},{"size":2959,"mtime":1612133560395,"results":"21","hashOfConfig":"13"},{"size":2355,"mtime":1612139729084,"results":"22","hashOfConfig":"13"},{"size":766,"mtime":1612140214129,"results":"23","hashOfConfig":"13"},{"filePath":"24","messages":"25","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"26"},"13y9yvi",{"filePath":"27","messages":"28","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"29","messages":"30","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"31","messages":"32","errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":0,"source":"33"},{"filePath":"34","messages":"35","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"36","messages":"37","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"38","messages":"39","errorCount":0,"warningCount":9,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"40","messages":"41","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"42","messages":"43","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"26"},{"filePath":"44","messages":"45","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"46","messages":"47","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\index.js",[],["48","49"],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\reportWebVitals.js",[],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\Paginations.js",[],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Pages\\Search.js",["50","51","52","53","54","55","56"],"import React, { useState, useEffect } from 'react';\r\nimport { Link } from 'react-router-dom';\r\nimport ohuh from '../ohuh-sm.PNG';\r\nimport { Container, Form, Row, Col, Card, Image, InputGroup, FormControl, Button, Nav } from 'react-bootstrap';\r\nimport Paginations from '../Components/Paginations';\r\nimport axios from 'axios';\r\nimport queryString from 'query-string'\r\nimport * as Icon from 'react-bootstrap-icons';\r\nimport { isAuthenticated } from '../utils/auth';\r\nimport catchErrors from '../utils/catchErrors'\r\n\r\nfunction Search(props) {\r\n\r\n const [state, setState] = useState(false);\r\n const [index, setIndex] = useState(1);\r\n const [search, setSearch] = useState(queryString.parse(props.location.search).keyword);\r\n const [bookmark, setBookmark] = useState([false, false, false, false])\r\n const user = isAuthenticated()\r\n const [association, setAssociation] = useState([{ name: \" \", address: \" \", img: \" \" }])\r\n const [pagePlace, setPagePlace] = useState([{ name: \" \", address: \" \", img: \" \" }, { name: \" \", address: \" \", img: \" \" }])\r\n const [endPage, setEndPage] = useState(1)\r\n const [error, setError] = useState('')\r\n\r\n async function getBookmark() {\r\n try {\r\n const response = await axios.get(`/api/users/bookmark?ID=${user}`)\r\n // setBookmark(response.data.bookmark)\r\n } catch (error) {\r\n catchErrors(error, setError(error))\r\n }\r\n }\r\n\r\n const getAssociation = () => {\r\n axios.get(`/api/search/association?keyword=${search}`)\r\n .then(res => {\r\n console.log(\"Associations = \", res.data)\r\n setAssociation(res.data)\r\n })\r\n .catch(err => {\r\n console.log(\"search.associations 에러 발생\", err)\r\n })\r\n }\r\n\r\n\r\n\r\n useEffect(() => {\r\n getAssociation()\r\n }, []);\r\n\r\n useEffect(() => {\r\n if (association.length < 3) {\r\n setPagePlace(paginate(association, index, association.length))\r\n }\r\n else {\r\n setPagePlace(paginate(association, index, 4))\r\n }\r\n setEndPage(Math.floor((association.length / 4)))\r\n\r\n }, [association, index])\r\n\r\n useEffect(() => {\r\n getAssociation()\r\n if (state) {\r\n // window.location.reload()\r\n // return <Redirect to={{\r\n // pathname: `/search?keyword=${search}`,\r\n // state: { id: search },\r\n // }} />;\r\n props.history.push('/search?keyword=' + search)\r\n setState(false)\r\n // console.log(\"search야\", search)\r\n } window.addEventListener(\"scroll\", infiniteScroll);\r\n return () => { window.removeEventListener(\"scroll\", infiniteScroll); }\r\n }, [state]);\r\n\r\n const infiniteScroll = () => {\r\n const { documentElement, body } = document;\r\n const scrollHeight = Math.max(documentElement.scrollHeight, body.scrollHeight);\r\n const scrollTop = Math.max(documentElement.scrollTop, body.scrollTop);\r\n const clientHeight = documentElement.clientHeight;\r\n if (scrollTop + clientHeight >= scrollHeight) {\r\n // getReview();\r\n console.log(\"더불러\")\r\n }\r\n console.log(scrollHeight, scrollTop, clientHeight)\r\n }\r\n\r\n const handlePage = (num) => {\r\n setIndex(num);\r\n console.log(\"pagenation num\", num)\r\n console.log(index)\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 = (e) => {\r\n e.preventDefault()\r\n setState(true)\r\n setIndex(1)\r\n }\r\n\r\n function paginate(items, pageNumber, itemNumber) {\r\n const page = [];\r\n const startIndex = (pageNumber - 1) * itemNumber\r\n for (var i = 0; i < itemNumber; i++) {\r\n\r\n page.push(items[(startIndex + i)])\r\n }\r\n console.log(\"뿌릴 data22222222222222222\", page)\r\n return page\r\n }\r\n\r\n async function handlebookmark(index) {\r\n if (!bookmark[index]) {\r\n console.log(pagePlace[index])\r\n try {\r\n const response = await axios.put(`/api/users/bookmark?ID=${user}&place=${pagePlace[index]._id}`)\r\n alert(response.data, '북마크가 저장되었습니다.')\r\n const showArr = bookmark\r\n showArr[index] = true\r\n setBookmark(showArr)\r\n console.log(\"bookmark=\", bookmark)\r\n } catch (error) {\r\n catchErrors(error, setError)\r\n }\r\n } else {\r\n try {\r\n const response = await axios.delete(`/api/users/bookmark?ID=${user}&place=${pagePlace[index]._id}`)\r\n alert(response.data, '저장된 북마크가 삭제되었습니다.')\r\n const showArr = bookmark\r\n showArr[index] = false\r\n setBookmark(showArr)\r\n console.log(\"bookmark=\", bookmark)\r\n } catch (error) {\r\n catchErrors(error, setError)\r\n }\r\n }\r\n }\r\n\r\n\r\n let time = new Date()\r\n\r\n return (\r\n <Container >\r\n <Link to=\"/\" className=\"d-flex justify-content-center\" ><Image src={ohuh} /></Link>\r\n <Row className=\"mb-2\" className=\"d-flex justify-content-center\">\r\n <Form style={{ width: \"90vw\" }} onSubmit={handleSubmit}>\r\n <InputGroup size=\"lg\">\r\n <FormControl\r\n placeholder=\"검색어를 입력하세요.\"\r\n value={search}\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 {time.toLocaleString()}\r\n <Row className=\"d-flex flex-wrap\">\r\n\r\n {console.log(\"#####################33\", pagePlace)}\r\n {pagePlace.map((place, index) => {\r\n return (\r\n <Col key={index} md={6} >\r\n <Card align=\"center\" border=\"info\" style={{ margin: \"2%\" }}>\r\n <Row className=\"d-flex justify-content-center\">\r\n <Card.Header style={{ margin: \"0\", marginLeft:\"3%\",marginRight:\"3%\",fontSize: '200%', fontWeight: 'bold', width :\"100vw\"}} >{place.name}\r\n {user ?\r\n <Button\r\n variant={bookmark[index] ? \"primary\" : \"light\"}\r\n onClick={() => handlebookmark(index, place)}>\r\n <Icon.BookmarkStarFill size={35} />\r\n {console.log(\"bookmark\", bookmark)}\r\n {console.log(\"bookmark[index]\", bookmark[index])}</Button> : null}\r\n </Card.Header>\r\n </Row>\r\n <Card.Img variant=\"top\" style={{ padding: \"5%\", width: \"100%\", height: \"340px\" }} src={place.img} />\r\n <Card.Body>\r\n <Card.Text style={{ overflow: 'auto', fontSize: '25px', width: '100%', height: \"80px\" }} >\r\n {place.address} </Card.Text>\r\n <Link to={`/place?id=${index}&place=${place.name}`} >\r\n <Button variant=\"primary\"> {place.name} 자세히 살펴보기</Button>\r\n </Link>\r\n </Card.Body>\r\n </Card>\r\n </Col>\r\n )\r\n })}\r\n </Row>\r\n <Row className=\"mt-2 d-flex justify-content-center\">\r\n <Paginations index={index} endPage={endPage} handlePage={handlePage}></Paginations>\r\n </Row>\r\n </Container >\r\n );\r\n}\r\n\r\nexport default Search;\r\n","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Pages\\App.js",[],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\PrivateRoute.js",[],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Bookmark.js",["57","58","59","60","61","62","63","64","65"],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\Login.js",[],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\Signup.js",[],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Pages\\Place.js",["66"],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\utils\\auth.js",[],{"ruleId":"67","replacedBy":"68"},{"ruleId":"69","replacedBy":"70"},{"ruleId":"71","severity":1,"message":"72","line":4,"column":83,"nodeType":"73","messageId":"74","endLine":4,"endColumn":86},{"ruleId":"71","severity":1,"message":"75","line":22,"column":12,"nodeType":"73","messageId":"74","endLine":22,"endColumn":17},{"ruleId":"71","severity":1,"message":"76","line":24,"column":20,"nodeType":"73","messageId":"74","endLine":24,"endColumn":31},{"ruleId":"71","severity":1,"message":"77","line":26,"column":19,"nodeType":"73","messageId":"74","endLine":26,"endColumn":27},{"ruleId":"78","severity":1,"message":"79","line":48,"column":8,"nodeType":"80","endLine":48,"endColumn":10,"suggestions":"81"},{"ruleId":"78","severity":1,"message":"82","line":74,"column":8,"nodeType":"80","endLine":74,"endColumn":15,"suggestions":"83"},{"ruleId":"84","severity":1,"message":"85","line":149,"column":35,"nodeType":"86","endLine":149,"endColumn":76},{"ruleId":"71","severity":1,"message":"87","line":17,"column":12,"nodeType":"73","messageId":"74","endLine":17,"endColumn":16},{"ruleId":"71","severity":1,"message":"88","line":17,"column":18,"nodeType":"73","messageId":"74","endLine":17,"endColumn":25},{"ruleId":"71","severity":1,"message":"89","line":18,"column":12,"nodeType":"73","messageId":"74","endLine":18,"endColumn":17},{"ruleId":"71","severity":1,"message":"90","line":18,"column":19,"nodeType":"73","messageId":"74","endLine":18,"endColumn":27},{"ruleId":"71","severity":1,"message":"75","line":19,"column":12,"nodeType":"73","messageId":"74","endLine":19,"endColumn":17},{"ruleId":"71","severity":1,"message":"91","line":20,"column":12,"nodeType":"73","messageId":"74","endLine":20,"endColumn":17},{"ruleId":"71","severity":1,"message":"92","line":20,"column":19,"nodeType":"73","messageId":"74","endLine":20,"endColumn":27},{"ruleId":"71","severity":1,"message":"93","line":23,"column":12,"nodeType":"73","messageId":"74","endLine":23,"endColumn":19},{"ruleId":"78","severity":1,"message":"94","line":65,"column":8,"nodeType":"80","endLine":65,"endColumn":10,"suggestions":"95"},{"ruleId":"78","severity":1,"message":"96","line":36,"column":6,"nodeType":"80","endLine":36,"endColumn":8,"suggestions":"97"},"no-native-reassign",["98"],"no-negated-in-lhs",["99"],"no-unused-vars","'Nav' is defined but never used.","Identifier","unusedVar","'error' is assigned a value but never used.","'getBookmark' is defined but never used.","'response' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'getAssociation'. Either include it or remove the dependency array.","ArrayExpression",["100"],"React Hook useEffect has missing dependencies: 'getAssociation', 'props.history', and 'search'. Either include them or remove the dependency array.",["101"],"react/jsx-no-duplicate-props","No duplicate props allowed","JSXAttribute","'page' is assigned a value but never used.","'setPage' is assigned a value but never used.","'index' is assigned a value but never used.","'setIndex' is assigned a value but never used.","'state' is assigned a value but never used.","'setState' is assigned a value but never used.","'showSet' is assigned a value but never used.","React Hook useEffect has a missing dependency: 'getBookmark'. Either include it or remove the dependency array.",["102"],"React Hook useEffect has missing dependencies: 'getReview' and 'infiniteScroll'. Either include them or remove the dependency array.",["103"],"no-global-assign","no-unsafe-negation",{"desc":"104","fix":"105"},{"desc":"106","fix":"107"},{"desc":"108","fix":"109"},{"desc":"110","fix":"111"},"Update the dependencies array to be: [getAssociation]",{"range":"112","text":"113"},"Update the dependencies array to be: [getAssociation, props.history, search, state]",{"range":"114","text":"115"},"Update the dependencies array to be: [getBookmark]",{"range":"116","text":"117"},"Update the dependencies array to be: [getReview, infiniteScroll]",{"range":"118","text":"119"},[1853,1855],"[getAssociation]",[2762,2769],"[getAssociation, props.history, search, state]",[2252,2254],"[getBookmark]",[1178,1180],"[getReview, infiniteScroll]"]
\ No newline at end of file
[{"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\index.js":"1","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\reportWebVitals.js":"2","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\Paginations.js":"3","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Pages\\Search.js":"4","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Pages\\App.js":"5","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\PrivateRoute.js":"6","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Bookmark.js":"7","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\Login.js":"8","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\Signup.js":"9","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Pages\\Place.js":"10","C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\utils\\auth.js":"11"},{"size":1339,"mtime":1612133560398,"results":"12","hashOfConfig":"13"},{"size":375,"mtime":1611254909401,"results":"14","hashOfConfig":"13"},{"size":3725,"mtime":1612133560393,"results":"15","hashOfConfig":"13"},{"size":8447,"mtime":1612152686729,"results":"16","hashOfConfig":"13"},{"size":4773,"mtime":1612146987427,"results":"17","hashOfConfig":"13"},{"size":438,"mtime":1612133560394,"results":"18","hashOfConfig":"13"},{"size":5312,"mtime":1612147636744,"results":"19","hashOfConfig":"13"},{"size":3150,"mtime":1612140232971,"results":"20","hashOfConfig":"13"},{"size":2959,"mtime":1612133560395,"results":"21","hashOfConfig":"13"},{"size":2355,"mtime":1612139729084,"results":"22","hashOfConfig":"13"},{"size":766,"mtime":1612140214129,"results":"23","hashOfConfig":"13"},{"filePath":"24","messages":"25","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"26"},"13y9yvi",{"filePath":"27","messages":"28","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"29","messages":"30","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"31","messages":"32","errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"33","messages":"34","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"35","messages":"36","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"37","messages":"38","errorCount":0,"warningCount":10,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"39","messages":"40","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"41","messages":"42","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"26"},{"filePath":"43","messages":"44","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"45","messages":"46","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\index.js",[],["47","48"],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\reportWebVitals.js",[],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\Paginations.js",[],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Pages\\Search.js",["49","50","51","52","53","54","55"],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Pages\\App.js",[],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\PrivateRoute.js",[],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Bookmark.js",["56","57","58","59","60","61","62","63","64","65"],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\Login.js",[],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Components\\Signup.js",[],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\Pages\\Place.js",["66"],"C:\\Users\\노트북펜\\Desktop\\2021YDK\\search-page\\client\\src\\utils\\auth.js",[],{"ruleId":"67","replacedBy":"68"},{"ruleId":"69","replacedBy":"70"},{"ruleId":"71","severity":1,"message":"72","line":4,"column":83,"nodeType":"73","messageId":"74","endLine":4,"endColumn":86},{"ruleId":"71","severity":1,"message":"75","line":22,"column":12,"nodeType":"73","messageId":"74","endLine":22,"endColumn":17},{"ruleId":"71","severity":1,"message":"76","line":24,"column":20,"nodeType":"73","messageId":"74","endLine":24,"endColumn":31},{"ruleId":"71","severity":1,"message":"77","line":26,"column":19,"nodeType":"73","messageId":"74","endLine":26,"endColumn":27},{"ruleId":"78","severity":1,"message":"79","line":48,"column":8,"nodeType":"80","endLine":48,"endColumn":10,"suggestions":"81"},{"ruleId":"78","severity":1,"message":"82","line":74,"column":8,"nodeType":"80","endLine":74,"endColumn":15,"suggestions":"83"},{"ruleId":"84","severity":1,"message":"85","line":146,"column":35,"nodeType":"86","endLine":146,"endColumn":76},{"ruleId":"71","severity":1,"message":"87","line":17,"column":12,"nodeType":"73","messageId":"74","endLine":17,"endColumn":16},{"ruleId":"71","severity":1,"message":"88","line":17,"column":18,"nodeType":"73","messageId":"74","endLine":17,"endColumn":25},{"ruleId":"71","severity":1,"message":"89","line":18,"column":12,"nodeType":"73","messageId":"74","endLine":18,"endColumn":17},{"ruleId":"71","severity":1,"message":"90","line":18,"column":19,"nodeType":"73","messageId":"74","endLine":18,"endColumn":27},{"ruleId":"71","severity":1,"message":"75","line":19,"column":12,"nodeType":"73","messageId":"74","endLine":19,"endColumn":17},{"ruleId":"71","severity":1,"message":"91","line":20,"column":12,"nodeType":"73","messageId":"74","endLine":20,"endColumn":17},{"ruleId":"71","severity":1,"message":"92","line":20,"column":19,"nodeType":"73","messageId":"74","endLine":20,"endColumn":27},{"ruleId":"71","severity":1,"message":"93","line":23,"column":12,"nodeType":"73","messageId":"74","endLine":23,"endColumn":19},{"ruleId":"71","severity":1,"message":"94","line":23,"column":21,"nodeType":"73","messageId":"74","endLine":23,"endColumn":31},{"ruleId":"78","severity":1,"message":"95","line":65,"column":8,"nodeType":"80","endLine":65,"endColumn":10,"suggestions":"96"},{"ruleId":"78","severity":1,"message":"97","line":36,"column":6,"nodeType":"80","endLine":36,"endColumn":8,"suggestions":"98"},"no-native-reassign",["99"],"no-negated-in-lhs",["100"],"no-unused-vars","'Nav' is defined but never used.","Identifier","unusedVar","'error' is assigned a value but never used.","'getBookmark' is defined but never used.","'response' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'getAssociation'. Either include it or remove the dependency array.","ArrayExpression",["101"],"React Hook useEffect has missing dependencies: 'getAssociation', 'props.history', and 'search'. Either include them or remove the dependency array.",["102"],"react/jsx-no-duplicate-props","No duplicate props allowed","JSXAttribute","'page' is assigned a value but never used.","'setPage' is assigned a value but never used.","'index' is assigned a value but never used.","'setIndex' is assigned a value but never used.","'state' is assigned a value but never used.","'setState' is assigned a value but never used.","'showSet' is assigned a value but never used.","'setShowSet' is assigned a value but never used.","React Hook useEffect has a missing dependency: 'getBookmark'. Either include it or remove the dependency array.",["103"],"React Hook useEffect has missing dependencies: 'getReview' and 'infiniteScroll'. Either include them or remove the dependency array.",["104"],"no-global-assign","no-unsafe-negation",{"desc":"105","fix":"106"},{"desc":"107","fix":"108"},{"desc":"109","fix":"110"},{"desc":"111","fix":"112"},"Update the dependencies array to be: [getAssociation]",{"range":"113","text":"114"},"Update the dependencies array to be: [getAssociation, props.history, search, state]",{"range":"115","text":"116"},"Update the dependencies array to be: [getBookmark]",{"range":"117","text":"118"},"Update the dependencies array to be: [getReview, infiniteScroll]",{"range":"119","text":"120"},[1853,1855],"[getAssociation]",[2762,2769],"[getAssociation, props.history, search, state]",[2278,2280],"[getBookmark]",[1178,1180],"[getReview, infiniteScroll]"]
\ No newline at end of file
......@@ -18,7 +18,7 @@ function Bookmark() {
const [index, setIndex] = useState(1);
const [error, setError] = useState('')
const [state, setState] = useState(false);
const [bookmark, setBookmark] = useState([false, false, false, false])
const [bookmark, setBookmark] = useState([true, true, true, true])
const [pagePlace, setPagePlace] = useState([])
const [showSet, setShowSet] = useState([false, false, false, false]);
......@@ -49,7 +49,7 @@ function Bookmark() {
}
} else {
try {
const response = await axios.delete(`/api/users/bookmark?ID=${user}`)
const response = await axios.delete(`/api/users/bookmark?ID=${user}&place=${pagePlace[index]._id}`)
alert(response.data, '저장된 북마크가 삭제되었습니다.')
const showArr = bookmark
showArr[index] = false
......@@ -68,7 +68,7 @@ function Bookmark() {
return (
<Container>
<Link to="/" className="d-flex justify-content-center">
<Image style={{margin:"1%"}} src={ohuh} />
<Image style={{ margin: "1%" }} src={ohuh} />
</Link>
<Navbar bg="info" variant="dark">
<Navbar.Brand href="/">북마크</Navbar.Brand>
......@@ -96,12 +96,9 @@ function Bookmark() {
<Card.Body >
<Card.Text style={{ overflow: 'auto', fontSize: '25px', width: '100%', height: "80px" }} >
{place.address} </Card.Text>
<Button variant="info" onClick={() => {
const showArr = [false, false, false, false]
showArr[index] = true
setShowSet(showArr)
}}>{place.name} 자세히 살펴보기</Button>
{/* <Place place={place} index={index} show={showSet[index]} onHide={() => setShowSet([false, false, false, false])} /> */}
<Link to={`/place?id=${1}&place=${place.name}`} >
<Button variant="info"> {place.name} 자세히 살펴보기</Button>
</Link>
</Card.Body>
</Card>
</Col>
......
......@@ -96,7 +96,7 @@ function App() {
<Card.Text style={{ overflow: 'auto', fontSize: '25px', width: '100%', height: "80px" }} >
{recommend.address} </Card.Text>
<Link to={`/place?id=${1}&place=${recommend.name}`} >
<Button variant="primary"> {recommend.name} 자세히 살펴보기</Button>
<Button variant="info"> {recommend.name} 자세히 살펴보기</Button>
</Link>
</Card.Body>
</Card>
......@@ -111,7 +111,7 @@ function App() {
<Card.Text style={{ overflow: 'auto', fontSize: '25px', width: '100%', height: "80px" }} >
{latest.address} </Card.Text>
<Link to={`/place?id=${1}&place=${latest.name}`} >
<Button variant="primary"> {latest.name} 자세히 살펴보기</Button>
<Button variant="info"> {latest.name} 자세히 살펴보기</Button>
</Link>
</Card.Body>
</Card>
......
......@@ -100,6 +100,7 @@ function Search(props) {
e.preventDefault()
setState(true)
setIndex(1)
setBookmark([false, false, false, false])
}
function paginate(items, pageNumber, itemNumber) {
......@@ -139,13 +140,9 @@ function Search(props) {
}
}
}
let time = new Date()
return (
<Container >
<Link to="/" className="d-flex justify-content-center" ><Image src={ohuh} /></Link>
<Link to="/" className="d-flex justify-content-center" ><Image src={ohuh} /></Link>
<Row className="mb-2" className="d-flex justify-content-center">
<Form style={{ width: "90vw" }} onSubmit={handleSubmit}>
<InputGroup size="lg">
......@@ -162,7 +159,6 @@ function Search(props) {
</InputGroup>
</Form>
</Row>
{time.toLocaleString()}
<Row className="d-flex flex-wrap">
{console.log("#####################33", pagePlace)}
......@@ -170,15 +166,16 @@ function Search(props) {
return (
<Col key={index} md={6} >
<Card align="center" border="info" style={{ margin: "2%" }}>
<Row className="d-flex justify-content-center">
<Card.Header style={{ margin: "0", marginLeft:"3%",marginRight:"3%",fontSize: '200%', fontWeight: 'bold', width :"100vw"}} >{place.name}
<Row>
<Card.Header style={{ margin: "0", marginLeft: "3%", marginRight: "3%", fontSize: '200%', fontWeight: 'bold', width: "100vw" }} >{place.name}
{user ?
<Button
variant={bookmark[index] ? "primary" : "light"}
onClick={() => handlebookmark(index, place)}>
<Icon.BookmarkStarFill size={35} />
{console.log("bookmark", bookmark)}
{console.log("bookmark[index]", bookmark[index])}</Button> : null}
<Button
variant={bookmark[index] ? "info" : "light"}
onClick={() => handlebookmark(index, place)}>
<Icon.BookmarkStarFill size={35} />
{console.log("bookmark", bookmark)}
{console.log("bookmark[index]", bookmark[index])}</Button>
: null}
</Card.Header>
</Row>
<Card.Img variant="top" style={{ padding: "5%", width: "100%", height: "340px" }} src={place.img} />
......@@ -186,7 +183,7 @@ function Search(props) {
<Card.Text style={{ overflow: 'auto', fontSize: '25px', width: '100%', height: "80px" }} >
{place.address} </Card.Text>
<Link to={`/place?id=${index}&place=${place.name}`} >
<Button variant="primary"> {place.name} 자세히 살펴보기</Button>
<Button variant="info"> {place.name} 자세히 살펴보기</Button>
</Link>
</Card.Body>
</Card>
......
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