-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path.eslintcache
More file actions
1 lines (1 loc) · 63.8 KB
/
.eslintcache
File metadata and controls
1 lines (1 loc) · 63.8 KB
1
[{"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\index.js":"1","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\App.js":"2","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\reportWebVitals.js":"3","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_reducers\\index.js":"4","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\LandingPage\\LandingPage.js":"5","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\RegisterPage\\RegisterPage.js":"6","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\LoginPage\\LoginPage.js":"7","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\ProjectPage\\ProjectRouter.js":"8","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_reducers\\userReducer.js":"9","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\ProjectPage\\ProjectMainPage.js":"10","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\ProjectPage\\ProjectDetail.js":"11","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\LoginPage\\LoginForm.js":"12","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\ProjectPage\\NewProject.js":"13","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\ProjectPage\\ProjectModify.js":"14","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_actions\\userAction.js":"15","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\Parts\\SearchForm\\SearchFrame.js":"16","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\Parts\\NavBar\\MainNavBar.js":"17","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_actions\\types.js":"18","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_actions\\projectAction.js":"19","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\ProjectPage\\Project.js":"20","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\Parts\\SearchForm\\SearchForm.js":"21","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\utils\\axios.js":"22","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\Parts\\NavBar\\LSButton.js":"23","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_actions\\config.js":"24","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_reducers\\teamReducer.js":"25","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_reducers\\projectReducer.js":"26","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\TeamPage\\NewTeam.js":"27","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\TeamPage\\TeamMainPage.js":"28","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\TeamPage\\TeamDetail.js":"29","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\TeamPage\\TeamModify.js":"30","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_actions\\teamAction.js":"31","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\TeamPage\\Team.js":"32","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_reducers\\postingReducer.js":"33","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\PostPage\\UpdateContent.js":"34","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\PostPage\\CreateContent.js":"35","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\PostPage\\ReadPostingContent.js":"36","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\AboutUsPage\\AboutUsPage.js":"37"},{"size":1187,"mtime":1611752387526,"results":"38","hashOfConfig":"39"},{"size":2769,"mtime":1614070098320,"results":"40","hashOfConfig":"39"},{"size":375,"mtime":1610526007841,"results":"41","hashOfConfig":"39"},{"size":260,"mtime":1612871018790,"results":"42","hashOfConfig":"39"},{"size":1132,"mtime":1613726429133,"results":"43","hashOfConfig":"39"},{"size":4020,"mtime":1614086599069,"results":"44","hashOfConfig":"39"},{"size":613,"mtime":1611752387424,"results":"45","hashOfConfig":"39"},{"size":1757,"mtime":1613126369049,"results":"46","hashOfConfig":"39"},{"size":443,"mtime":1610526007835,"results":"47","hashOfConfig":"39"},{"size":2038,"mtime":1614070203096,"results":"48","hashOfConfig":"39"},{"size":5542,"mtime":1614072121884,"results":"49","hashOfConfig":"39"},{"size":2420,"mtime":1614086950934,"results":"50","hashOfConfig":"39"},{"size":3743,"mtime":1614067408473,"results":"51","hashOfConfig":"39"},{"size":3726,"mtime":1614069969659,"results":"52","hashOfConfig":"39"},{"size":615,"mtime":1610526007833,"results":"53","hashOfConfig":"39"},{"size":1064,"mtime":1611752387383,"results":"54","hashOfConfig":"39"},{"size":1531,"mtime":1613130762162,"results":"55","hashOfConfig":"39"},{"size":1013,"mtime":1614067408466,"results":"56","hashOfConfig":"39"},{"size":2997,"mtime":1614069969645,"results":"57","hashOfConfig":"39"},{"size":688,"mtime":1614067408474,"results":"58","hashOfConfig":"39"},{"size":806,"mtime":1611752387364,"results":"59","hashOfConfig":"39"},{"size":378,"mtime":1614078652269,"results":"60","hashOfConfig":"39"},{"size":1100,"mtime":1611752387328,"results":"61","hashOfConfig":"39"},{"size":52,"mtime":1614078641469,"results":"62","hashOfConfig":"39"},{"size":999,"mtime":1612871028773,"results":"63","hashOfConfig":"39"},{"size":970,"mtime":1611925801130,"results":"64","hashOfConfig":"39"},{"size":2188,"mtime":1613027385293,"results":"65","hashOfConfig":"39"},{"size":1767,"mtime":1612871122380,"results":"66","hashOfConfig":"39"},{"size":2158,"mtime":1613139421512,"results":"67","hashOfConfig":"39"},{"size":2451,"mtime":1613044255826,"results":"68","hashOfConfig":"39"},{"size":1375,"mtime":1613844437728,"results":"69","hashOfConfig":"39"},{"size":874,"mtime":1613140397036,"results":"70","hashOfConfig":"39"},{"size":436,"mtime":1614069969647,"results":"71","hashOfConfig":"39"},{"size":2271,"mtime":1614072930725,"results":"72","hashOfConfig":"39"},{"size":2603,"mtime":1614073022797,"results":"73","hashOfConfig":"39"},{"size":1912,"mtime":1614073084303,"results":"74","hashOfConfig":"39"},{"size":522,"mtime":1613133182470,"results":"75","hashOfConfig":"39"},{"filePath":"76","messages":"77","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},"80jfpf",{"filePath":"79","messages":"80","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},{"filePath":"81","messages":"82","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},{"filePath":"83","messages":"84","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},{"filePath":"85","messages":"86","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},{"filePath":"87","messages":"88","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0},{"filePath":"89","messages":"90","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"91","usedDeprecatedRules":"78"},{"filePath":"92","messages":"93","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"94"},{"filePath":"95","messages":"96","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"97","usedDeprecatedRules":"78"},{"filePath":"98","messages":"99","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"100","usedDeprecatedRules":"78"},{"filePath":"101","messages":"102","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"103","usedDeprecatedRules":"78"},{"filePath":"104","messages":"105","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":null},{"filePath":"106","messages":"107","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"108","usedDeprecatedRules":"78"},{"filePath":"109","messages":"110","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"111","usedDeprecatedRules":"78"},{"filePath":"112","messages":"113","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},{"filePath":"114","messages":"115","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},{"filePath":"116","messages":"117","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"118","usedDeprecatedRules":"78"},{"filePath":"119","messages":"120","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},{"filePath":"121","messages":"122","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"123","usedDeprecatedRules":"78"},{"filePath":"124","messages":"125","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},{"filePath":"126","messages":"127","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},{"filePath":"128","messages":"129","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},{"filePath":"130","messages":"131","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},{"filePath":"132","messages":"133","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},{"filePath":"134","messages":"135","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"136","usedDeprecatedRules":"78"},{"filePath":"137","messages":"138","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"139","usedDeprecatedRules":"78"},{"filePath":"140","messages":"141","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},{"filePath":"142","messages":"143","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"144","usedDeprecatedRules":"78"},{"filePath":"145","messages":"146","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"147","usedDeprecatedRules":"78"},{"filePath":"148","messages":"149","errorCount":0,"warningCount":1,"fixableErrorCount":0,"fixableWarningCount":0,"source":"150","usedDeprecatedRules":"78"},{"filePath":"151","messages":"152","errorCount":0,"warningCount":2,"fixableErrorCount":0,"fixableWarningCount":0,"source":"153","usedDeprecatedRules":"78"},{"filePath":"154","messages":"155","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},{"filePath":"156","messages":"157","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},{"filePath":"158","messages":"159","errorCount":0,"warningCount":7,"fixableErrorCount":0,"fixableWarningCount":2,"source":"160","usedDeprecatedRules":"78"},{"filePath":"161","messages":"162","errorCount":0,"warningCount":3,"fixableErrorCount":0,"fixableWarningCount":0,"source":"163","usedDeprecatedRules":"78"},{"filePath":"164","messages":"165","errorCount":0,"warningCount":4,"fixableErrorCount":0,"fixableWarningCount":0,"source":"166","usedDeprecatedRules":"78"},{"filePath":"167","messages":"168","errorCount":0,"warningCount":0,"fixableErrorCount":0,"fixableWarningCount":0,"usedDeprecatedRules":"78"},"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\index.js",[],["169","170"],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\App.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\reportWebVitals.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_reducers\\index.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\LandingPage\\LandingPage.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\RegisterPage\\RegisterPage.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\LoginPage\\LoginPage.js",["171","172","173"],"import React, {useState} from 'react'\r\nimport \"./LoginForm.css\"\r\nimport MainNavBar from \"../../Parts/NavBar/MainNavBar\"\r\nimport { withRouter } from \"react-router-dom\";\r\nimport Cookies from 'universal-cookie';\r\nimport LoginForm from \"./LoginForm\";\r\nimport { ThemeProvider } from 'react-bootstrap';\r\n \r\nconst cookies = new Cookies();\r\n\r\nfunction LoginPage(props) {\r\n\r\n const onSuccessHandler = () => {\r\n props.history.push(\"/\");\r\n }\r\n\r\n return (\r\n <div>\r\n <MainNavBar />\r\n <LoginForm onSuccess={onSuccessHandler} />\r\n </div>\r\n )\r\n}\r\n\r\nexport default withRouter(LoginPage);\r\n","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\ProjectPage\\ProjectRouter.js",[],["174","175"],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_reducers\\userReducer.js",["176"],"import { REGISTER_USER, LOGIN_USER, LOGOUT_USER } from \"../_actions/types\";\r\n\r\nexport default function (state = {}, action) {\r\n switch (action.type) {\r\n case REGISTER_USER:\r\n return { ...state, loginSuccess: action.payload };\r\n case LOGIN_USER:\r\n return { ...state, loginSuccess: action.payload };\r\n case LOGOUT_USER:\r\n return { ...state, success: action.payload };\r\n default:\r\n return state;\r\n }\r\n}","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\ProjectPage\\ProjectMainPage.js",["177","178","179"],"import React, { useEffect, useState } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { getAllProject } from \"../../../_actions/projectAction\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { MdAdd } from \"react-icons/md\";\r\nimport \"./ProjectMainPage.css\";\r\nimport Project from \"./Project\";\r\nimport MainNavBar from \"../../Parts/NavBar/MainNavBar\";\r\nimport Cookies from 'universal-cookie';\r\n\r\nconst cookies = new Cookies();\r\n\r\nfunction ProjectMainPage() {\r\n // 프로젝트 카테고리 눌렀을 때 나오는 화면\r\n const dispatch = useDispatch();\r\n\r\n const [Projects, setProjects] = useState([]);\r\n\r\n const [loading, setLoading] = useState(true);\r\n\r\n useEffect(() => {\r\n dispatch(getAllProject()).then((res) => {\r\n setProjects(res.payload);\r\n });\r\n }, []);\r\n\r\n //로그인 안되있으면 글쓰기 버튼 안보이게\r\n var status = null;\r\n if(cookies.get(\"user\")!==undefined){\r\n status=<Link to=\"/project/write\" className=\"write\">\r\n <MdAdd />\r\n </Link>\r\n }\r\n return (\r\n <main>\r\n <MainNavBar />\r\n <br />\r\n <br />\r\n <h2 align=\"center\">Projects</h2>\r\n {status}\r\n \r\n <div>\r\n <div>\r\n <table border=\"1\" className=\"mainTable\">\r\n <tbody align=\"center\">\r\n <tr align=\"center\">\r\n <td width=\"50px\">ID</td>\r\n <td width=\"200px\">Title</td>\r\n <td width=\"100px\">Name</td>\r\n <td width=\"150px\">Members</td>\r\n <td width=\"210px\">Upload Date</td>\r\n </tr>\r\n {Projects.map((project) => (\r\n <Project\r\n key={project.idx}\r\n idx={project.idx}\r\n title={project.title}\r\n name={project.name}\r\n members={project.members}\r\n addDate={project.addDate}\r\n />\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </main>\r\n );\r\n}\r\n\r\nexport default ProjectMainPage;\r\n","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\ProjectPage\\ProjectDetail.js",["180","181","182","183"],"import React, { useEffect, useState } from \"react\";\r\nimport { useParams, Link } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport NavBar from \"../../Parts/NavBar/MainNavBar\";\r\nimport { IoMdArrowRoundBack } from \"react-icons/io\";\r\nimport {\r\n getProjectDetail,\r\n projectDelete,\r\n} from \"../../../_actions/projectAction\";\r\nimport \"./Button.css\";\r\nimport postingStore from \"../../../_reducers/postingReducer\";\r\nimport \"./ProjectDetail.css\";\r\nimport Cookies from \"universal-cookie\";\r\nimport axios from \"axios\";\r\nimport { SERVER_API } from \"../../../_actions/config\";\r\n\r\nconst cookies = new Cookies();\r\n\r\nfunction GetPostingContents(idx) {\r\n const [contents, setContents] = useState([]);\r\n\r\n useEffect(() => {\r\n axios.get(`${SERVER_API}/posting`).then((response) => {\r\n setContents(response.data);\r\n });\r\n }, []);\r\n var lists = [];\r\n var i = 0;\r\n\r\n while (i < contents.length) {\r\n if (Number(idx) === contents[i].project_idx) {\r\n lists.push(\r\n <tbody key={i}>\r\n <tr border=\"1\" className=\"table\" align=\"center\">\r\n <td width=\"100px\">\r\n <Link to={\"/project/\" + idx + \"/readContent/\" + contents[i].idx}>\r\n id: {contents[i].idx}\r\n </Link>\r\n </td>\r\n\r\n <td width=\"200px\">\r\n <Link to={\"/project/\" + idx + \"/readContent/\" + contents[i].idx}>\r\n title: {contents[i].title}\r\n </Link>\r\n </td>\r\n\r\n <td width=\"150px\">\r\n <Link to={\"/project/\" + idx + \"/readContent/\" + contents[i].idx}>\r\n user_id: {contents[i].user_id}\r\n </Link>\r\n </td>\r\n\r\n <td width=\"250px\">addDate: {contents[i].addDate}</td>\r\n\r\n <td width=\"250px\">updateDate: {contents[i].updateDate}</td>\r\n </tr>\r\n </tbody>\r\n );\r\n }\r\n i++;\r\n }\r\n\r\n return <table>{lists}</table>;\r\n}\r\n\r\nfunction ProjectDetail(props) {\r\n // 게시물을 눌렀을 때 나오는 화면\r\n const param = useParams();\r\n const idx = param.idx;\r\n console.log(idx);\r\n const dispatch = useDispatch();\r\n\r\n const [open, setOpen] = useState(false);\r\n\r\n const [AddDate, setAddDate] = useState(\"\");\r\n const [UpdateDate, setUpdateDate] = useState(\"\");\r\n const [Name, setName] = useState(\"\");\r\n const [Members, setMembers] = useState(\"\");\r\n const [Title, setTitle] = useState(\"\");\r\n const [Info, setInfo] = useState(\"\");\r\n\r\n const [Team_idx, setTeam_idx] = useState(\"\"); // 팀 인덱스 값\r\n\r\n useEffect(() => {\r\n console.log(idx);\r\n dispatch(getProjectDetail(idx)).then((res) => {\r\n console.log(res);\r\n setAddDate(res.payload.addDate);\r\n setUpdateDate(res.payload.updateDate);\r\n setName(res.payload.name);\r\n setMembers(res.payload.members);\r\n setTitle(res.payload.title);\r\n setInfo(res.payload.info);\r\n setTeam_idx(res.payload.team_idx); // 팀 인덱스 응답\r\n });\r\n }, []);\r\n\r\n const onModify = (e) => {\r\n props.history.push(`/project/update/${idx}`);\r\n };\r\n\r\n const onDelete = (e) => {\r\n e.preventDefault();\r\n if (window.confirm(\"Delete this posting?\")) {\r\n dispatch(projectDelete(idx)).then((response) => {\r\n if (response) {\r\n props.history.push(`/project`);\r\n } else {\r\n alert(\"삭제에 실패했습니다!!\");\r\n }\r\n });\r\n } else {\r\n setOpen(false);\r\n }\r\n };\r\n function modifyStatus() {\r\n //로그인 여부에 따라 버튼 보이게 설정\r\n if (cookies.get(\"user\") !== undefined) {\r\n return (\r\n <button\r\n className=\"modify\"\r\n style={{ marginLeft: \"250px\" }}\r\n onClick={onModify}\r\n >\r\n 수정\r\n </button>\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n function deleteStatus() {\r\n //로그인 여부에 따라 버튼 보이게 설정\r\n if (cookies.get(\"user\") !== undefined) {\r\n return (\r\n <button\r\n className=\"delete\"\r\n style={{ marginLeft: \"360px\" }}\r\n onClick={onDelete}\r\n >\r\n 삭제\r\n </button>\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n function addpostStatus() {\r\n //로그인 여부에 따라 버튼 보이게 설정\r\n if (cookies.get(\"user\") !== undefined) {\r\n return (\r\n <Link to={\"/project/\" + idx + \"/post/\"}>\r\n <button>ADD POST</button>\r\n </Link>\r\n );\r\n } else {\r\n return null;\r\n }\r\n }\r\n return (\r\n <span>\r\n <NavBar />\r\n <br />\r\n <Link to=\"/project/\" className=\"back\">\r\n <IoMdArrowRoundBack />\r\n </Link>\r\n <div align=\"center\">\r\n {modifyStatus()}\r\n {deleteStatus()}\r\n <h4>PROJECT | {Title}</h4>\r\n <small>Upload Date: {AddDate}</small>\r\n <br />\r\n <small>Modify Date: {UpdateDate}</small>\r\n <br />\r\n <br />\r\n\r\n <div>\r\n <span>Team Name</span>\r\n <br />\r\n <p>{Name}</p>\r\n </div>\r\n <br />\r\n\r\n <div>\r\n <span>Team Member</span>\r\n <br />\r\n <p>{Members}</p>\r\n </div>\r\n <br />\r\n\r\n <div>\r\n <span>Project Information</span>\r\n <br />\r\n <div>{Info}</div>\r\n </div>\r\n <br />\r\n\r\n {/*POSTING 부분*/}\r\n <div>----------------------------------------------------</div>\r\n <h4>POSTING</h4>\r\n {GetPostingContents(idx)}\r\n {addpostStatus()}\r\n </div>\r\n </span>\r\n );\r\n}\r\n\r\nexport default ProjectDetail;\r\n","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\LoginPage\\LoginForm.js",["184","185","186"],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\ProjectPage\\NewProject.js",["187","188","189","190"],"import React, { useState, useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useParams, useLocation } from \"react-router-dom\";\r\nimport { projectUpload } from \"../../../_actions/projectAction\";\r\nimport { getTeamDetail } from \"../../../_actions/teamAction\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { IoMdArrowRoundBack } from \"react-icons/io\";\r\nimport NavBar from \"../../Parts/NavBar/MainNavBar\";\r\nimport \"./Button.css\";\r\n\r\nfunction NewProject(props) { // 글 작성\r\n const param = useParams();\r\n const idx = param.idx;\r\n const dispatch = useDispatch();\r\n const location=useLocation();\r\n\r\n const [Name, setName] = useState(\"\");\r\n const [Members, setMembers] = useState(\"\");\r\n const [Title, setTitle] = useState(\"\");\r\n const [Info, setInfo] = useState(\"\");\r\n const [Team_idx, setTeam_idx] = useState(\"\");\r\n\r\n useEffect(() => {\r\n if(!location.state) return;\r\n console.log('selectedTeamIdx:>>', location.state.selectedTeamIdx)\r\n setTeam_idx(location.state?.selectedTeamIdx)\r\n}, [location])\r\n\r\n const onNameHandler = (event) => {\r\n setName(event.currentTarget.value);\r\n };\r\n\r\n const onMembersHandler = (event) => {\r\n setMembers(event.currentTarget.value);\r\n };\r\n\r\n const onTitleHandler = (event) => {\r\n setTitle(event.currentTarget.value);\r\n };\r\n\r\n const onInfoHandler = (event) => {\r\n setInfo(event.currentTarget.value);\r\n };\r\n\r\n const onChooseTeam = (e) => {\r\n props.history.push(`/team`);\r\n };\r\n\r\n const onUpload = (e) => {\r\n e.preventDefault();\r\n\r\n if (!Team_idx) {\r\n alert(\"팀을 골라주세요!\");\r\n } else\r\n if (!Title) {\r\n alert(\"제목을 적어주세요!\");\r\n } else if (!Info) {\r\n alert(\"세부사항을 적어주세요!\");\r\n } else {\r\n const formData = {\r\n team_idx: Team_idx,\r\n title: Title,\r\n info: Info,\r\n };\r\n\r\n dispatch(projectUpload(formData)).then((res) => {\r\n if (res) {\r\n props.history.push(\"/project/\");\r\n } else {\r\n alert(\"업로드에 실패했습니다!!\");\r\n }\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <main>\r\n <NavBar />\r\n <div>\r\n <br />\r\n <Link to=\"/project/\" style={{ marginLeft: \"550px\" }}>\r\n <IoMdArrowRoundBack />\r\n </Link>\r\n <br />\r\n <br />\r\n <div align=\"center\">\r\n <h5>| Project Upload |</h5>\r\n <br />\r\n\r\n <div>\r\n <span>● Team Name</span>\r\n <br />\r\n <input value={location.state?.selectedName} onChange={onNameHandler} readOnly/>\r\n </div>\r\n <br />\r\n\r\n <div>\r\n <span>● Team Member</span>\r\n <br />\r\n <input\r\n placeholder=\"Pick a team member through the button\"\r\n value={location.state?.selectedMembers}\r\n onChange={onMembersHandler}\r\n readOnly\r\n />\r\n <button className=\"chooseBtn\" onClick={onChooseTeam}>\r\n Choose team\r\n </button>\r\n </div>\r\n <br />\r\n\r\n <div>\r\n <span>● Project Title</span>\r\n <br />\r\n <input value={Title} onChange={onTitleHandler} />\r\n </div>\r\n <br />\r\n\r\n <div>\r\n <span>● Project Information</span>\r\n <br />\r\n <textarea\r\n value={Info}\r\n onChange={onInfoHandler}\r\n cols=\"40\"\r\n rows=\"5\"\r\n />\r\n </div>\r\n <br />\r\n <br />\r\n\r\n <button className=\"uploadBtn\" onClick={onUpload}>\r\n Upload\r\n </button>\r\n </div>\r\n </div>\r\n </main>\r\n );\r\n}\r\n\r\nexport default NewProject;\r\n","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\ProjectPage\\ProjectModify.js",["191","192"],"import React, { useEffect, useState } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { IoMdArrowRoundBack } from \"react-icons/io\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport NavBar from \"../../Parts/NavBar/MainNavBar\";\r\nimport {\r\n projectModify,\r\n getProjectDetail,\r\n} from \"../../../_actions/projectAction\";\r\nimport \"./Button.css\";\r\n\r\nfunction ProjectModify(props) {\r\n // 게시물 수정\r\n const dispatch = useDispatch();\r\n const param = useParams();\r\n const idx = param.idx;\r\n var URL = \"/project/\" + idx + \"/read/\";\r\n\r\n const [Name, setName] = useState(\"\");\r\n const [Members, setMembers] = useState(\"\");\r\n const [Title, setTitle] = useState(\"\");\r\n const [Info, setInfo] = useState(\"\");\r\n const [Team_idx, setTeam_idx] = useState(\"\"); \r\n\r\n useEffect(() => {\r\n dispatch(getProjectDetail(idx)).then((res) => {\r\n setName(res.payload.name);\r\n setMembers(res.payload.members);\r\n setTitle(res.payload.title);\r\n setInfo(res.payload.info);\r\n setTeam_idx(res.payload.team_idx);\r\n }, []);\r\n }, []);\r\n\r\n const onNameHandler = (event) => {\r\n setName(event.currentTarget.value);\r\n };\r\n\r\n const onMembersHandler = (event) => {\r\n setMembers(event.currentTarget.value);\r\n };\r\n\r\n const onTitleHandler = (event) => {\r\n setTitle(event.currentTarget.value);\r\n };\r\n\r\n const onInfoHandler = (event) => {\r\n setInfo(event.currentTarget.value);\r\n };\r\n\r\n const onChooseTeam = (e) => {\r\n props.history.push(`/team`);\r\n };\r\n\r\n const onModify = (e) => {\r\n e.preventDefault();\r\n\r\n if (!Title) {\r\n alert(\"제목을 적어주세요!\");\r\n } else if (!Info) {\r\n alert(\"세부사항을 적어주세요!\");\r\n } else {\r\n const postBody = {\r\n idx: idx,\r\n team_idx: Team_idx,\r\n title: Title,\r\n info: Info,\r\n };\r\n console.log(postBody);\r\n\r\n dispatch(projectModify(postBody)).then((res) => {\r\n console.log(res);\r\n if (res) {\r\n props.history.push(`/project/${idx}/read/`);\r\n } else {\r\n alert(\"게시물 수정에 실패했습니다.\");\r\n }\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <span>\r\n <NavBar />\r\n <div>\r\n <br />\r\n <Link to={URL} className=\"back\">\r\n <IoMdArrowRoundBack />\r\n </Link>\r\n <br />\r\n <br />\r\n <div align=\"center\">\r\n <h5>| Project Modify |</h5>\r\n <br />\r\n\r\n <div>\r\n <span>Team Name</span>\r\n <br />\r\n <input value={Name} onChange={onNameHandler} readOnly/>\r\n </div>\r\n <br />\r\n\r\n <div>\r\n <span>Team Member</span>\r\n <br />\r\n <input\r\n placeholder=\"Pick a team member through the button\"\r\n value={Members}\r\n onChange={onMembersHandler}\r\n readOnly\r\n />\r\n {/* <button className=\"chooseBtn\" onClick={onChooseTeam}>Choose team</button> */}\r\n </div>\r\n <br />\r\n\r\n <div>\r\n <span>Project Title</span>\r\n <br />\r\n <input value={Title} onChange={onTitleHandler} />\r\n </div>\r\n <br />\r\n\r\n <div>\r\n <span>● Project Information</span>\r\n <br />\r\n <textarea\r\n value={Info}\r\n onChange={onInfoHandler}\r\n cols=\"40\"\r\n rows=\"5\"\r\n />\r\n </div>\r\n <br />\r\n <br />\r\n\r\n <button className=\"modifyBtn\" onClick={onModify}>\r\n Modify\r\n </button>\r\n </div>\r\n </div>\r\n </span>\r\n );\r\n}\r\n\r\nexport default ProjectModify;\r\n","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_actions\\userAction.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\Parts\\SearchForm\\SearchFrame.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\Parts\\NavBar\\MainNavBar.js",["193","194","195"],"import React,{Component} from 'react';\r\nimport { Navbar,Button,Nav,ButtonGroup } from 'react-bootstrap';\r\nimport {LinkContainer} from 'react-router-bootstrap';\r\nimport LSButton from './LSButton';\r\n\r\nclass NavBar extends Component{\r\n constructor(props){\r\n super(props);\r\n }\r\n\r\n //includes login,signup buttons\r\n render(){\r\n return(\r\n <div>\r\n <Navbar className = \"Nav\" bg=\"dark\" variant=\"dark\">\r\n {/* Navbar 사용을 위해서 <LinkContainer>로 묶어줌 */}\r\n <LinkContainer to=\"/\">\r\n <Navbar.Brand>\r\n <div className=\"ProjectHubText\">\r\n ProjectHub\r\n </div>\r\n </Navbar.Brand>\r\n </LinkContainer>\r\n <Nav className=\"mr-auto\">\r\n <LinkContainer to=\"/project\">\r\n <Nav.Link>\r\n Projects\r\n </Nav.Link>\r\n </LinkContainer>\r\n <LinkContainer to=\"/aboutus\">\r\n <Nav.Link>\r\n About Us\r\n </Nav.Link>\r\n </LinkContainer>\r\n </Nav>\r\n <LSButton />\r\n \r\n </Navbar>\r\n </div>\r\n )\r\n }\r\n}\r\n\r\nexport default NavBar;","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_actions\\types.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_actions\\projectAction.js",["196","197"],"import {\r\n UPLOAD_SUCCESS,\r\n UPLOAD_FAILURE,\r\n MODIFY_SUCCESS,\r\n MODIFY_FAILURE,\r\n PROJECT_DELETE,\r\n GET_PROJECT_DETAIL,\r\n GET_ALL_PROJECT,\r\n GET_POSTING_DETAIL,\r\n GET_ALL_POSTING,\r\n} from \"./types\";\r\nimport axios from \"axios\";\r\nimport { request } from \"../utils/axios\";\r\nimport { SERVER_API } from \"./config\";\r\n\r\n// 프로젝트 업로드(생성)\r\nexport function projectUpload(dataTosubmit) {\r\n console.log(dataTosubmit);\r\n const data = request(\"post\", \"/project/upload\", dataTosubmit);\r\n return {\r\n type: UPLOAD_FAILURE,\r\n payload: data,\r\n };\r\n}\r\n// export const projectUpload = (datas) => (dispatch) => {\r\n// const config = {\r\n// headers: {\r\n// \"Content-Type\": \"multipart/form-data\",\r\n// },\r\n// };\r\n// console.log(datas);\r\n// let result = axios\r\n// .post(`/project/upload`, datas, config)\r\n// .then((res) => {\r\n// dispatch({ type: UPLOAD_SUCCESS, payload: res.data });\r\n// return true;\r\n// })\r\n// .catch((err) => {\r\n// dispatch({ type: UPLOAD_FAILURE, payload: err });\r\n// return false;\r\n// });\r\n// return result;\r\n// };\r\n\r\nexport function projectModify(dataTosubmit) {\r\n const data = request(\"post\", \"/project/update\", dataTosubmit);\r\n return {\r\n type: MODIFY_FAILURE,\r\n payload: data,\r\n };\r\n}\r\n\r\n// 게시물 수정\r\n// export const projectModify = ({ formData, idx }) => (dispatch) => {\r\n// const config = {\r\n// headers: { \"Content-Type\": \"multipart/json\" },\r\n// };\r\n\r\n// return axios\r\n// .post(`${SERVER_API}/project/update`, {formData}, {headers:config.headers})\r\n// .then((res) => {\r\n// dispatch({ type: MODIFY_SUCCESS, payload: res.data });\r\n// return true;\r\n// })\r\n// .catch((err) => {\r\n// dispatch({ type: MODIFY_FAILURE, payload: err });\r\n// return false;\r\n// });\r\n// };\r\n\r\n// 게시물 삭제\r\nexport const projectDelete = (idx) => {\r\n const request = axios\r\n .get(`${SERVER_API}/project/delete/${idx}`)\r\n .then((res) => res.data);\r\n\r\n return {\r\n type: PROJECT_DELETE,\r\n payload: request,\r\n };\r\n};\r\n\r\n//해당 포스트의 디테일 정보받기\r\nexport function getProjectDetail(idx) {\r\n const request = axios\r\n .get(`${SERVER_API}/project/${idx}`)\r\n .then((res) => res.data);\r\n\r\n return {\r\n type: GET_PROJECT_DETAIL,\r\n payload: request,\r\n };\r\n}\r\n\r\n//모든 포스트의 정보받기\r\nexport function getAllProject() {\r\n const request = axios.get(`${SERVER_API}/project`).then((res) => res.data);\r\n\r\n return {\r\n type: GET_ALL_PROJECT,\r\n payload: request,\r\n };\r\n}\r\n\r\nexport function getAllPosting() {\r\n const request = axios\r\n .get(`${SERVER_API}/posting`)\r\n .then((res) => res.data);\r\n\r\n return {\r\n type: GET_ALL_POSTING,\r\n payload: request,\r\n };\r\n}\r\n\r\nexport function getPostingDetail(idx) {\r\n const request = axios\r\n .get(`${SERVER_API}/posting/project/${idx}`)\r\n .then((res) => res.data);\r\n\r\n return {\r\n type: GET_POSTING_DETAIL,\r\n payload: request,\r\n };\r\n}\r\n","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\ProjectPage\\Project.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\Parts\\SearchForm\\SearchForm.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\utils\\axios.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\Parts\\NavBar\\LSButton.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_actions\\config.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_reducers\\teamReducer.js",["198"],"import {TEAM_UPLOAD_SUCCESS,TEAM_UPLOAD_FAILURE,TEAM_MODIFY_SUCCESS,TEAM_MODIFY_FAILURE,TEAM_DELETE,GET_TEAM_DETAIL,GET_ALL_TEAM } from \"../_actions/types\";\r\n\r\nexport default function (state = {}, action) {\r\n switch (action.type) {\r\n case TEAM_UPLOAD_SUCCESS:\r\n return { ...state, teamUploadSuccess: true };\r\n \r\n \r\n case TEAM_UPLOAD_FAILURE:\r\n return { ...state, teamUploadSuccess: false, err: action.payload };\r\n \r\n \r\n case TEAM_MODIFY_SUCCESS:\r\n return { ...state, teamModifySuccess: true };\r\n \r\n \r\n case TEAM_MODIFY_FAILURE:\r\n return { ...state, teamModifySuccess: false, err: action.payload };\r\n \r\n \r\n case TEAM_DELETE:\r\n return { ...state, teamDelete: true };\r\n \r\n\r\n case GET_TEAM_DETAIL:\r\n return { ...state, teamDetail: action.payload };\r\n \r\n\r\n case GET_ALL_TEAM:\r\n return { ...state, allTeam: action.payload };\r\n \r\n\r\n default:\r\n return state;\r\n }\r\n}","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_reducers\\projectReducer.js",["199"],"import {UPLOAD_SUCCESS,UPLOAD_FAILURE,MODIFY_SUCCESS,MODIFY_FAILURE,PROJECT_DELETE,GET_PROJECT_DETAIL,GET_ALL_PROJECT } from \"../_actions/types\";\r\n\r\nexport default function (state = {}, action) {\r\n switch (action.type) {\r\n case UPLOAD_SUCCESS:\r\n return { ...state, uploadSuccess: true };\r\n \r\n \r\n case UPLOAD_FAILURE:\r\n return { ...state, uploadSuccess: false, err: action.payload };\r\n \r\n \r\n case MODIFY_SUCCESS:\r\n return { ...state, modifySuccess: true };\r\n \r\n \r\n case MODIFY_FAILURE:\r\n return { ...state, modifySuccess: false, err: action.payload };\r\n \r\n \r\n case PROJECT_DELETE:\r\n return { ...state, projectDelete: true };\r\n \r\n\r\n case GET_PROJECT_DETAIL:\r\n return { ...state, projectDetail: action.payload };\r\n \r\n\r\n case GET_ALL_PROJECT:\r\n return { ...state, allProject: action.payload };\r\n \r\n\r\n default:\r\n return state;\r\n }\r\n}","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\TeamPage\\NewTeam.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\TeamPage\\TeamMainPage.js",["200"],"import React, {useEffect, useState} from 'react'\r\nimport { useDispatch } from 'react-redux';\r\nimport { getAllTeam } from \"../../../_actions/teamAction\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { IoMdArrowRoundBack } from \"react-icons/io\";\r\nimport { MdAdd } from \"react-icons/md\";\r\nimport '../ProjectPage/ProjectMainPage.css';\r\nimport Team from \"./Team\";\r\nimport NavBar from \"../../Parts/NavBar/MainNavBar\"\r\n\r\n\r\n\r\nfunction TeamMainPage() {\r\n const dispatch = useDispatch();\r\n\r\n const [Teams, setTeams] = useState([]);\r\n\r\n useEffect(() => {\r\n dispatch(getAllTeam()).then((res) => {\r\n setTeams(res.payload);\r\n });\r\n }, []);\r\n\r\n\r\n return (\r\n <main>\r\n <NavBar /><br/>\r\n <Link to=\"/project/write\" style={{marginLeft : \"460px\"}}>\r\n <IoMdArrowRoundBack />\r\n </Link><br/>\r\n\r\n <h2 align=\"center\">Team List</h2>\r\n <Link to=\"/team/write\" style={{marginLeft : \"980px\"}}>\r\n <MdAdd/>\r\n </Link>\r\n <div>\r\n <div>\r\n <table border=\"1\" className=\"mainTable\">\r\n <tbody align=\"center\">\r\n <tr align=\"center\">\r\n <td width=\"50px\">ID</td>\r\n <td width=\"150px\">Team Name</td>\r\n <td width=\"250px\">Members</td>\r\n <td width=\"75px\"></td>\r\n </tr>\r\n {Teams.map(team => (\r\n <Team key={team.idx} idx={team.idx} name={team.name} members={team.members} />\r\n ))}\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n </main>\r\n )\r\n}\r\n\r\nexport default TeamMainPage","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\TeamPage\\TeamDetail.js",["201","202"],"import React, { useEffect, useState } from 'react'\r\nimport { useParams } from \"react-router-dom\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport NavBar from \"../../Parts/NavBar/MainNavBar\"\r\nimport { Link } from \"react-router-dom\";\r\nimport { IoMdArrowRoundBack } from \"react-icons/io\";\r\nimport { getTeamDetail, teamDelete } from \"../../../_actions/teamAction\";\r\nimport '../ProjectPage/Button.css';\r\n\r\n\r\nfunction TeamDetail(props) {\r\n const param = useParams();\r\n const idx = param.idx;\r\n const dispatch = useDispatch();\r\n\r\n const [open, setOpen] = useState(false);\r\n const[Name, setName]= useState(\"\")\r\n const[Members, setMembers]= useState(\"\")\r\n\r\n useEffect(() => {\r\n dispatch(getTeamDetail(idx)).then((res) => {\r\n console.log(res);\r\n setName(res.payload.name);\r\n setMembers(res.payload.members);\r\n });\r\n }, []);\r\n\r\n\r\n const onModify=(e)=>{\r\n props.history.push(`/team/update/${idx}`);\r\n }\r\n\r\n\r\n const onDelete=(e)=>{\r\n e.preventDefault();\r\n if (window.confirm(\"Delete this team?\")){\r\n dispatch(teamDelete(idx)).then((response) => {\r\n if (response) {\r\n props.history.push(`/team`);\r\n } else {\r\n alert(\"삭제에 실패했습니다!!\");\r\n }\r\n });\r\n } else{\r\n setOpen(false);\r\n }\r\n }\r\n \r\n return (\r\n <span>\r\n <NavBar /><br/>\r\n <Link to=\"/team\" style={{marginLeft : \"460px\"}}>\r\n <IoMdArrowRoundBack />\r\n </Link>\r\n <button className=\"modify\" style={{marginLeft : \"750px\"}} onClick={onModify}>수정</button>\r\n <button className=\"delete\" style={{marginLeft : \"810px\"}} onClick={onDelete}>삭제</button><br/>\r\n <div align=\"center\"><br/>\r\n <h4>| TEAM |</h4><br/>\r\n\r\n <div>\r\n <span>Team Name</span><br/>\r\n <p>{Name}</p>\r\n </div><br/>\r\n\r\n <div>\r\n <span>Team Member</span><br/>\r\n <p>{Members}</p>\r\n </div><br/>\r\n </div>\r\n </span>\r\n )\r\n}\r\n\r\nexport default TeamDetail\r\n","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\TeamPage\\TeamModify.js",["203"],"import React, { useEffect, useState } from \"react\";\r\nimport { useParams } from \"react-router-dom\";\r\nimport { Link } from \"react-router-dom\";\r\nimport { IoMdArrowRoundBack } from \"react-icons/io\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport NavBar from \"../../Parts/NavBar/MainNavBar\";\r\nimport { teamModify, getTeamDetail } from \"../../../_actions/teamAction\";\r\nimport \"../ProjectPage/Button.css\";\r\n\r\nfunction TeamModify(props) {\r\n const dispatch = useDispatch();\r\n const param = useParams();\r\n const idx = param.idx;\r\n var URL = \"/team/read/\" + idx;\r\n\r\n const [Name, setName] = useState(\"\");\r\n const [Members, setMembers] = useState(\"\");\r\n\r\n useEffect(() => {\r\n dispatch(getTeamDetail(idx)).then((res) => {\r\n setName(res.payload.name);\r\n setMembers(res.payload.members);\r\n }, []);\r\n }, []);\r\n\r\n const onNameHandler = (event) => {\r\n setName(event.currentTarget.value);\r\n };\r\n\r\n const onMembersHandler = (event) => {\r\n setMembers(event.currentTarget.value);\r\n };\r\n\r\n const onModify = (e) => {\r\n e.preventDefault();\r\n\r\n if (!Name) {\r\n alert(\"팀 이름을 적어주세요!\");\r\n } else if (!Members) {\r\n alert(\"팀원을 적어주세요!\");\r\n } else {\r\n const postBody = {\r\n idx: idx,\r\n name: Name,\r\n members: Members,\r\n };\r\n console.log(postBody);\r\n\r\n dispatch(teamModify(postBody)).then((res) => {\r\n console.log(res);\r\n if (res) {\r\n props.history.push(`/team/read/${idx}`);\r\n } else {\r\n alert(\"게시물 수정에 실패했습니다.\");\r\n }\r\n });\r\n }\r\n };\r\n\r\n return (\r\n <span>\r\n <NavBar />\r\n <div>\r\n <br />\r\n <Link to={URL} className=\"back\">\r\n <IoMdArrowRoundBack />\r\n </Link>\r\n <br />\r\n <br />\r\n <div align=\"center\">\r\n <h5>| Team Modify |</h5>\r\n <br />\r\n\r\n <div>\r\n <span>Team Name</span>\r\n <br />\r\n <input value={Name} onChange={onNameHandler} />\r\n </div>\r\n <br />\r\n\r\n <div>\r\n <span>Team Member</span>\r\n <br />\r\n <input value={Members} onChange={onMembersHandler} />\r\n </div>\r\n <br />\r\n <br />\r\n\r\n <button className=\"teamBtn\" onClick={onModify}>\r\n Modify\r\n </button>\r\n </div>\r\n </div>\r\n </span>\r\n );\r\n}\r\n\r\nexport default TeamModify;\r\n","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_actions\\teamAction.js",["204","205"],"import {\r\n TEAM_UPLOAD_SUCCESS,\r\n TEAM_UPLOAD_FAILURE,\r\n TEAM_MODIFY_SUCCESS,\r\n TEAM_MODIFY_FAILURE,\r\n TEAM_DELETE,\r\n GET_TEAM_DETAIL,\r\n GET_ALL_TEAM,\r\n} from \"./types\";\r\nimport axios from \"axios\";\r\nimport { request } from \"../utils/axios\";\r\nimport { SERVER_API } from \"./config\";\r\n\r\n// 팀 생성\r\nexport function teamUpload(dataTosubmit) {\r\n const data = request(\"post\", `/team/create`, dataTosubmit);\r\n\r\n return {\r\n type: TEAM_UPLOAD_FAILURE,\r\n payload: data,\r\n };\r\n}\r\n\r\n// 팀 수정\r\nexport function teamModify(dataTosubmit) {\r\n const data = request(\"post\", \"/team/update\", dataTosubmit);\r\n\r\n return {\r\n type: TEAM_MODIFY_FAILURE,\r\n payload: data,\r\n };\r\n}\r\n\r\n// 팀 삭제\r\nexport const teamDelete = (idx) => {\r\n const request = axios\r\n .get(`${SERVER_API}/team/delete/${idx}`)\r\n .then((res) => res.data);\r\n\r\n return {\r\n type: TEAM_DELETE,\r\n payload: request,\r\n };\r\n};\r\n\r\n//해당 팀의 디테일 정보받기\r\nexport function getTeamDetail(idx) {\r\n const request = axios\r\n .get(`${SERVER_API}/team/${idx}`)\r\n .then((res) => res.data);\r\n\r\n return {\r\n type: GET_TEAM_DETAIL,\r\n payload: request,\r\n };\r\n}\r\n\r\n//모든 팀의 정보받기\r\nexport function getAllTeam() {\r\n const request = axios.get(`${SERVER_API}/team`).then((res) => res.data);\r\n\r\n return {\r\n type: GET_ALL_TEAM,\r\n payload: request,\r\n };\r\n}\r\n","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\TeamPage\\Team.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\_reducers\\postingReducer.js",[],"C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\PostPage\\UpdateContent.js",["206","207","208","209","210","211","212"],"import React, { useState, useEffect, Component } from \"react\";\r\nimport ReactMarkdown from \"react-markdown\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport store from \"../../../_reducers/postingReducer\";\r\nimport \"./UpdateContent.css\";\r\nimport axios from \"axios\";\r\nimport { request } from \"../../../utils/axios\";\r\nimport { SERVER_API } from \"../../../_actions/config\";\r\n//this.props.match.params\r\n\r\nfunction UpdateContent() {\r\n const param = useParams();\r\n const project_idx = param.project_idx;\r\n const content_idx = param.content_idx;\r\n\r\n const [title, setTitle] = useState([]);\r\n const [content, setContent] = useState([]);\r\n\r\n useEffect(async () => {\r\n var response = await axios.get(`${SERVER_API}/posting/${content_idx}`);\r\n const data = response.data[0];\r\n setTitle(data.title);\r\n setContent(data.content);\r\n }, []);\r\n\r\n const onModify = () => {\r\n var updatedData = { title: title, content: content };\r\n\r\n const response = request(\r\n \"post\",\r\n \"/posting/update/\" + content_idx,\r\n updatedData\r\n );\r\n console.log(response);\r\n window.location.replace(\"/project/\" + project_idx + \"/read/\");\r\n };\r\n\r\n return (\r\n <div>\r\n <article>\r\n <input type=\"hidden\" name=\"id\" value={content_idx}></input>\r\n <p>\r\n <input\r\n id=\"title_txt\"\r\n type=\"text\"\r\n name=\"title\"\r\n defaultValue={title}\r\n onChange={function (e) {\r\n setTitle(e.target.value);\r\n }.bind(this)}\r\n ></input>\r\n </p>\r\n <div className=\"Write\">\r\n <textarea\r\n className=\"textarea\"\r\n name=\"content\"\r\n defaultValue={content}\r\n onChange={function (e) {\r\n setContent(e.target.value);\r\n }.bind(this)}\r\n />\r\n <ReactMarkdown source={content} className=\"markdown\" />\r\n </div>\r\n </article>\r\n {/* <Link to={\"/project/\" + project_idx + \"/read/\"}>\r\n <button style={{ fontSize: 30 }} onClick={onModify}>\r\n 수정하기\r\n </button>\r\n </Link> */}\r\n <button style={{ fontSize: 30 }} onClick={onModify}>\r\n 수정하기\r\n </button>\r\n </div>\r\n );\r\n}\r\n\r\nexport default UpdateContent;\r\n","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\PostPage\\CreateContent.js",["213","214","215"],"import React, { useState, useEffect } from \"react\";\r\nimport { useDispatch } from \"react-redux\";\r\nimport ReactMarkdown from \"react-markdown\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport \"./CreateContent.css\";\r\nimport { request } from \"../../../utils/axios\";\r\nimport { getAllPosting } from \"../../../_actions/projectAction\";\r\n\r\nfunction CreateContent() {\r\n const param = useParams();\r\n const project_idx = param.project_idx;\r\n\r\n const dispatch = useDispatch();\r\n const [loading, setLoading] = useState(true);\r\n\r\n const [contents, setContents] = useState([]);\r\n\r\n useEffect(() => {\r\n setLoading(true);\r\n dispatch(getAllPosting()).then((res) => {\r\n setContents(res.payload);\r\n });\r\n setLoading(false);\r\n }, []);\r\n\r\n const [title, setTitle] = useState(\"\");\r\n const [desc, setDesc] = useState(\"\");\r\n\r\n const getMaxIdx = () => {\r\n var max = -1;\r\n var i = 0;\r\n while (i < contents.length) {\r\n if (max < contents[i].idx) max = contents[i].idx;\r\n i++;\r\n }\r\n return max;\r\n };\r\n\r\n const onUpload = () => {\r\n var newMaxContentId = getMaxIdx() + 1;\r\n\r\n const obj = {\r\n addDate: \"2021-02-06T16:54:17.000Z\",\r\n content: desc,\r\n idx: newMaxContentId,\r\n project_idx: Number(project_idx),\r\n title: title,\r\n updateDate: null,\r\n user_id: \"test\",\r\n withCredentials: true,\r\n };\r\n\r\n const rresponse = request(\"post\", \"/posting/upload/\", obj);\r\n console.log(rresponse);\r\n window.location.replace(\"/project/\" + project_idx + \"/read/\");\r\n //contents.push(obj);\r\n };\r\n\r\n const handleChangeTITLE = (e) => {\r\n setTitle(e.currentTarget.value);\r\n };\r\n\r\n const handleChangeDESC = (e) => {\r\n setDesc(e.currentTarget.value);\r\n };\r\n\r\n return (\r\n <article>\r\n <p>\r\n <input\r\n id=\"title_txt\"\r\n type=\"text\"\r\n name=\"title\"\r\n placeholder=\"title 입력\"\r\n onChange={handleChangeTITLE}\r\n ></input>\r\n </p>\r\n <div className=\"Write\">\r\n <textarea\r\n autoFocus\r\n className=\"textarea\"\r\n name=\"desc\"\r\n placeholder=\"desc 입력\"\r\n onChange={handleChangeDESC}\r\n />\r\n\r\n <ReactMarkdown source={desc} className=\"markdown\" />\r\n </div>\r\n {/* <Link to={\"/project/\" + project_idx + \"/read/\"}>\r\n <button style={{ fontSize: 40 }} onClick={onUpload}>\r\n 만들기\r\n </button>\r\n </Link> */}\r\n <button style={{ fontSize: 40 }} onClick={onUpload}>\r\n 만들기\r\n </button>\r\n </article>\r\n );\r\n}\r\n\r\nexport default CreateContent;\r\n","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\PostPage\\ReadPostingContent.js",["216","217","218","219"],"import React, { useState, useEffect } from \"react\";\r\nimport ReactMarkdown from \"react-markdown\";\r\nimport { Link, useParams } from \"react-router-dom\";\r\nimport \"./ReadPostingContent.css\";\r\nimport { request } from \"../../../utils/axios\";\r\nimport axios from \"axios\";\r\nimport { SERVER_API } from \"../../../_actions/config\";\r\nimport Cookies from \"universal-cookie\";\r\n\r\nconst cookies = new Cookies();\r\n\r\nfunction GetPostingContent(idx) {\r\n const [dummy, reload] = useState(false);\r\n const [currentContent, setContent] = useState([]);\r\n\r\n useEffect(async () => {\r\n var response = await axios.get(`${SERVER_API}/posting/${idx}`);\r\n setContent(response.data[0]);\r\n }, [currentContent]);\r\n\r\n return (\r\n <div>\r\n <p>\r\n <input\r\n id=\"title_txt\"\r\n type=\"text\"\r\n readOnly\r\n defaultValue={currentContent.title}\r\n ></input>\r\n </p>\r\n <ReactMarkdown source={currentContent.content} className=\"Readmarkdown\" />\r\n </div>\r\n );\r\n}\r\n\r\nfunction GetButtons(project_idx, content_idx) {\r\n if (cookies.get(\"user\") !== undefined) {\r\n return (\r\n <div>\r\n <Link to={\"/project/\" + project_idx + \"/updateContent/\" + content_idx}>\r\n <button>수정</button>\r\n </Link>\r\n <button\r\n onClick={function () {\r\n const response = request(\"get\", \"/posting/delete/\" + content_idx);\r\n console.log(response);\r\n window.location.replace(\"/project/\" + project_idx + \"/read/\");\r\n }}\r\n >\r\n 삭제\r\n </button>\r\n </div>\r\n );\r\n } else return;\r\n}\r\n\r\nfunction ReadPostingContent() {\r\n const param = useParams();\r\n const project_idx = param.project_idx;\r\n const content_idx = param.content_idx;\r\n\r\n return (\r\n <div>\r\n {GetButtons(project_idx, content_idx)}\r\n {GetPostingContent(content_idx)}\r\n </div>\r\n );\r\n}\r\n\r\nexport default ReadPostingContent;\r\n","C:\\Users\\Ldj\\Desktop\\projectHub_front\\src\\components\\views\\AboutUsPage\\AboutUsPage.js",[],{"ruleId":"220","replacedBy":"221"},{"ruleId":"222","replacedBy":"223"},{"ruleId":"224","severity":1,"message":"225","line":1,"column":16,"nodeType":"226","messageId":"227","endLine":1,"endColumn":24},{"ruleId":"224","severity":1,"message":"228","line":7,"column":10,"nodeType":"226","messageId":"227","endLine":7,"endColumn":23},{"ruleId":"224","severity":1,"message":"229","line":9,"column":7,"nodeType":"226","messageId":"227","endLine":9,"endColumn":14},{"ruleId":"220","replacedBy":"230"},{"ruleId":"222","replacedBy":"231"},{"ruleId":"232","severity":1,"message":"233","line":3,"column":1,"nodeType":"234","endLine":14,"endColumn":2},{"ruleId":"224","severity":1,"message":"235","line":19,"column":10,"nodeType":"226","messageId":"227","endLine":19,"endColumn":17},{"ruleId":"224","severity":1,"message":"236","line":19,"column":19,"nodeType":"226","messageId":"227","endLine":19,"endColumn":29},{"ruleId":"237","severity":1,"message":"238","line":25,"column":6,"nodeType":"239","endLine":25,"endColumn":8,"suggestions":"240"},{"ruleId":"224","severity":1,"message":"241","line":11,"column":8,"nodeType":"226","messageId":"227","endLine":11,"endColumn":20},{"ruleId":"224","severity":1,"message":"242","line":73,"column":10,"nodeType":"226","messageId":"227","endLine":73,"endColumn":14},{"ruleId":"224","severity":1,"message":"243","line":82,"column":10,"nodeType":"226","messageId":"227","endLine":82,"endColumn":18},{"ruleId":"237","severity":1,"message":"244","line":96,"column":6,"nodeType":"239","endLine":96,"endColumn":8,"suggestions":"245"},{"ruleId":"224","severity":1,"message":"246","line":5,"column":10,"nodeType":"226","messageId":"227","endLine":5,"endColumn":14},{"ruleId":"224","severity":1,"message":"247","line":18,"column":9,"nodeType":"226","messageId":"227","endLine":18,"endColumn":20},{"ruleId":"224","severity":1,"message":"248","line":22,"column":9,"nodeType":"226","messageId":"227","endLine":22,"endColumn":26},{"ruleId":"224","severity":1,"message":"249","line":5,"column":10,"nodeType":"226","messageId":"227","endLine":5,"endColumn":23},{"ruleId":"224","severity":1,"message":"250","line":13,"column":9,"nodeType":"226","messageId":"227","endLine":13,"endColumn":12},{"ruleId":"224","severity":1,"message":"251","line":17,"column":10,"nodeType":"226","messageId":"227","endLine":17,"endColumn":14},{"ruleId":"224","severity":1,"message":"252","line":18,"column":10,"nodeType":"226","messageId":"227","endLine":18,"endColumn":17},{"ruleId":"237","severity":1,"message":"244","line":34,"column":6,"nodeType":"239","endLine":34,"endColumn":8,"suggestions":"253"},{"ruleId":"224","severity":1,"message":"254","line":52,"column":9,"nodeType":"226","messageId":"227","endLine":52,"endColumn":21},{"ruleId":"224","severity":1,"message":"255","line":2,"column":17,"nodeType":"226","messageId":"227","endLine":2,"endColumn":23},{"ruleId":"224","severity":1,"message":"256","line":2,"column":28,"nodeType":"226","messageId":"227","endLine":2,"endColumn":39},{"ruleId":"257","severity":1,"message":"258","line":7,"column":5,"nodeType":"259","messageId":"260","endLine":9,"endColumn":6},{"ruleId":"224","severity":1,"message":"261","line":2,"column":3,"nodeType":"226","messageId":"227","endLine":2,"endColumn":17},{"ruleId":"224","severity":1,"message":"262","line":4,"column":3,"nodeType":"226","messageId":"227","endLine":4,"endColumn":17},{"ruleId":"232","severity":1,"message":"233","line":3,"column":1,"nodeType":"234","endLine":36,"endColumn":2},{"ruleId":"232","severity":1,"message":"233","line":3,"column":1,"nodeType":"234","endLine":36,"endColumn":2},{"ruleId":"237","severity":1,"message":"238","line":22,"column":8,"nodeType":"239","endLine":22,"endColumn":10,"suggestions":"263"},{"ruleId":"224","severity":1,"message":"242","line":16,"column":12,"nodeType":"226","messageId":"227","endLine":16,"endColumn":16},{"ruleId":"237","severity":1,"message":"244","line":26,"column":8,"nodeType":"239","endLine":26,"endColumn":10,"suggestions":"264"},{"ruleId":"237","severity":1,"message":"244","line":24,"column":6,"nodeType":"239","endLine":24,"endColumn":8,"suggestions":"265"},{"ruleId":"224","severity":1,"message":"266","line":2,"column":3,"nodeType":"226","messageId":"227","endLine":2,"endColumn":22},{"ruleId":"224","severity":1,"message":"267","line":4,"column":3,"nodeType":"226","messageId":"227","endLine":4,"endColumn":22},{"ruleId":"224","severity":1,"message":"268","line":1,"column":38,"nodeType":"226","messageId":"227","endLine":1,"endColumn":47},{"ruleId":"224","severity":1,"message":"246","line":3,"column":10,"nodeType":"226","messageId":"227","endLine":3,"endColumn":14},{"ruleId":"224","severity":1,"message":"269","line":4,"column":8,"nodeType":"226","messageId":"227","endLine":4,"endColumn":13},{"ruleId":"237","severity":1,"message":"270","line":19,"column":13,"nodeType":"271","endLine":24,"endColumn":4},{"ruleId":"237","severity":1,"message":"272","line":24,"column":6,"nodeType":"239","endLine":24,"endColumn":8,"suggestions":"273"},{"ruleId":"274","severity":1,"message":"275","line":50,"column":15,"nodeType":"276","messageId":"277","endLine":50,"endColumn":19,"fix":"278"},{"ruleId":"274","severity":1,"message":"275","line":60,"column":15,"nodeType":"276","messageId":"277","endLine":60,"endColumn":19,"fix":"279"},{"ruleId":"224","severity":1,"message":"246","line":4,"column":10,"nodeType":"226","messageId":"227","endLine":4,"endColumn":14},{"ruleId":"224","severity":1,"message":"235","line":14,"column":10,"nodeType":"226","messageId":"227","endLine":14,"endColumn":17},{"ruleId":"237","severity":1,"message":"238","line":24,"column":6,"nodeType":"239","endLine":24,"endColumn":8,"suggestions":"280"},{"ruleId":"224","severity":1,"message":"281","line":13,"column":10,"nodeType":"226","messageId":"227","endLine":13,"endColumn":15},{"ruleId":"224","severity":1,"message":"282","line":13,"column":17,"nodeType":"226","messageId":"227","endLine":13,"endColumn":23},{"ruleId":"237","severity":1,"message":"270","line":16,"column":13,"nodeType":"271","endLine":19,"endColumn":4},{"ruleId":"237","severity":1,"message":"283","line":19,"column":6,"nodeType":"239","endLine":19,"endColumn":22,"suggestions":"284"},"no-native-reassign",["285"],"no-negated-in-lhs",["286"],"no-unused-vars","'useState' is defined but never used.","Identifier","unusedVar","'ThemeProvider' is defined but never used.","'cookies' is assigned a value but never used.",["285"],["286"],"import/no-anonymous-default-export","Unexpected default export of anonymous function","ExportDefaultDeclaration","'loading' is assigned a value but never used.","'setLoading' is assigned a value but never used.","react-hooks/exhaustive-deps","React Hook useEffect has a missing dependency: 'dispatch'. Either include it or remove the dependency array.","ArrayExpression",["287"],"'postingStore' is defined but never used.","'open' is assigned a value but never used.","'Team_idx' is assigned a value but never used.","React Hook useEffect has missing dependencies: 'dispatch' and 'idx'. Either include them or remove the dependency array.",["288"],"'Link' is defined but never used.","'onIdHandler' is assigned a value but never used.","'onPasswordHandler' is assigned a value but never used.","'getTeamDetail' is defined but never used.","'idx' is assigned a value but never used.","'Name' is assigned a value but never used.","'Members' is assigned a value but never used.",["289"],"'onChooseTeam' is assigned a value but never used.","'Button' is defined but never used.","'ButtonGroup' is defined but never used.","no-useless-constructor","Useless constructor.","MethodDefinition","noUselessConstructor","'UPLOAD_SUCCESS' is defined but never used.","'MODIFY_SUCCESS' is defined but never used.",["290"],["291"],["292"],"'TEAM_UPLOAD_SUCCESS' is defined but never used.","'TEAM_MODIFY_SUCCESS' is defined but never used.","'Component' is defined but never used.","'store' is defined but never used.","Effect callbacks are synchronous to prevent race conditions. Put the async function inside:\n\nuseEffect(() => {\n async function fetchData() {\n // You can await here\n const response = await MyAPI.getData(someId);\n // ...\n }\n fetchData();\n}, [someId]); // Or [] if effect doesn't need props or state\n\nLearn more about data fetching with Hooks: https://reactjs.org/link/hooks-data-fetching","ArrowFunctionExpression","React Hook useEffect has a missing dependency: 'content_idx'. Either include it or remove the dependency array.",["293"],"no-extra-bind","The function binding is unnecessary.","CallExpression","unexpected",{"range":"294","text":"295"},{"range":"296","text":"295"},["297"],"'dummy' is assigned a value but never used.","'reload' is assigned a value but never used.","React Hook useEffect has a missing dependency: 'idx'. Either include it or remove the dependency array.",["298"],"no-global-assign","no-unsafe-negation",{"desc":"299","fix":"300"},{"desc":"301","fix":"302"},{"desc":"301","fix":"303"},{"desc":"299","fix":"304"},{"desc":"301","fix":"305"},{"desc":"301","fix":"306"},{"desc":"307","fix":"308"},[1510,1521],"",[1805,1816],{"desc":"299","fix":"309"},{"desc":"310","fix":"311"},"Update the dependencies array to be: [dispatch]",{"range":"312","text":"313"},"Update the dependencies array to be: [dispatch, idx]",{"range":"314","text":"315"},{"range":"316","text":"315"},{"range":"317","text":"313"},{"range":"318","text":"315"},{"range":"319","text":"315"},"Update the dependencies array to be: [content_idx]",{"range":"320","text":"321"},{"range":"322","text":"313"},"Update the dependencies array to be: [currentContent, idx]",{"range":"323","text":"324"},[760,762],"[dispatch]",[2901,2903],"[dispatch, idx]",[1095,1097],[663,665],[872,874],[817,819],[850,852],"[content_idx]",[744,746],[668,684],"[currentContent, idx]"]