From 449ff01b58104021dbaf4d07bb8dc71334a311e3 Mon Sep 17 00:00:00 2001 From: Daen12 <111489407+Daen12@users.noreply.github.com> Date: Sat, 1 Jul 2023 20:53:33 +0900 Subject: [PATCH 1/2] docs : board files re-structured --- src/App.jsx | 11 ++-- src/BoardPage.jsx | 71 -------------------- src/Data.jsx | 23 ------- src/pages/Create copy.jsx | 84 ----------------------- src/pages/Detail.jsx | 95 --------------------------- src/pages/Home.jsx | 56 ---------------- src/pages/{ => board}/BoardComp.jsx | 2 +- src/pages/{ => board}/BoardDetail.jsx | 6 +- src/pages/{ => board}/BoardEdit.jsx | 6 +- src/pages/{ => board}/BoardPage.jsx | 6 +- src/pages/{ => board}/Create.jsx | 8 +-- src/store/BoardSlice.jsx | 21 ------ src/store/store.jsx | 4 +- 13 files changed, 21 insertions(+), 372 deletions(-) delete mode 100644 src/BoardPage.jsx delete mode 100644 src/Data.jsx delete mode 100644 src/pages/Create copy.jsx delete mode 100644 src/pages/Detail.jsx delete mode 100644 src/pages/Home.jsx rename src/pages/{ => board}/BoardComp.jsx (97%) rename src/pages/{ => board}/BoardDetail.jsx (98%) rename src/pages/{ => board}/BoardEdit.jsx (96%) rename src/pages/{ => board}/BoardPage.jsx (95%) rename src/pages/{ => board}/Create.jsx (95%) delete mode 100644 src/store/BoardSlice.jsx diff --git a/src/App.jsx b/src/App.jsx index 5f6e56c..aed6c9a 100644 --- a/src/App.jsx +++ b/src/App.jsx @@ -5,22 +5,21 @@ import { Route, Routes, Link, useNavigate, Outlet, Router } from 'react-router-d // import Login from "./pages/login/Login"; import Main from "./pages/login/Main"; // import Home from "./pages/Home"; -import Create from "./pages/Create"; -import Detail from "./pages/Detail"; +import Create from "./pages/board/Create"; import KakaoCallback from './pages/login/KakaoCallback' import HomePage from './pages/HomePage'; import HealthList from "./pages/health/HealthList"; import HealthQuestion from "./pages/health/HealthQuestion"; import ChatPage from "./pages/ChatPage"; -import BoardPage from "./pages/BoardPage"; +import BoardPage from "./pages/board/BoardPage"; import ProfilePage from './pages/ProfilePage' import JobPage from './pages/JobPage' import CulturePage from './pages/CulturePage' -import BoardDetail from './pages/BoardDetail' +import BoardDetail from './pages/board/BoardDetail' import ChatList from './pages/ChatListPage' import WorkQuestion from './pages/work/WorkQuestion' import WorkList from './pages/work/WorkList' -import BoardEdit from "./pages/BoardEdit"; +import BoardEdit from "./pages/board/BoardEdit"; import CultureQuestion from './pages/culture/CultureQuestion'; import CultureList from './pages/culture/CultureList'; @@ -37,7 +36,7 @@ function App() { {/* }> */} }> }> - } /> + } /> }> }> }/> diff --git a/src/BoardPage.jsx b/src/BoardPage.jsx deleted file mode 100644 index 4b7d451..0000000 --- a/src/BoardPage.jsx +++ /dev/null @@ -1,71 +0,0 @@ -import React, { useState, useEffect } from 'react' -import { Route, Routes, Link, useNavigate, Outlet } from 'react-router-dom'; -import axios from 'axios' - -function BoardPage() { - //useState - let [boards, setBoards] = useState([{title : "제목", date : "2023-06-15", viewCnt : 33}]); - let [category, setCategory] = useState("category"); - let [loading, setLoading] = useState(false); - let navigate = useNavigate(); - - //axios - //useEffect - // useEffect(()=>{ - // axios.get("") - // .then((res) => { - // setBoards(res.data); - // console.log("axios requested!"); - // console.log(res.data); - // }) - // .catch((err) => { - // console.log("failed!"); - // }) - // .finally(() => setLoading(false)); - // }, []) - - - return ( -
- - - - - - - - - - - - - - - {boards.map((board, i)=>{ - return( - - - - - - - - ) - }) - } - -
#구분제목Date조회수
{i}{category} - - {board.date}{board.viewCnt}
-
- - - - - ) -} - -export default BoardPage \ No newline at end of file diff --git a/src/Data.jsx b/src/Data.jsx deleted file mode 100644 index d5de84a..0000000 --- a/src/Data.jsx +++ /dev/null @@ -1,23 +0,0 @@ -export const boardList = [ - { - id : 1, - category : "분류1", - title : "제목1", - createdDate : "2023-06-11", - viewCnt : 33, - }, - { - id : 2, - category : "분류2", - title : "제목2", - createdDate : "2023-06-11", - viewCnt : 34, - }, - { - id : 3, - category : "분류3", - title : "제목3", - createdDate : "2023-06-11", - viewCnt : 35, - }, -] \ No newline at end of file diff --git a/src/pages/Create copy.jsx b/src/pages/Create copy.jsx deleted file mode 100644 index 4774cb9..0000000 --- a/src/pages/Create copy.jsx +++ /dev/null @@ -1,84 +0,0 @@ -import React, { useState } from 'react' -import { useDispatch, useSelector } from 'react-redux' -import "../css/Create.module.css" -import axios from 'axios'; -import { Link, useNavigate } from 'react-router-dom' -import { addBoard } from '../store/BoardSlice.jsx' - -function Create() { - //변수 바구니 - const [title, setTitle] = useState("") - const [category, setCategory] = useState("") - const [content, setContent] = useState("") - //dispatch - const dispatch = useDispatch(); - //navigate - let navigate = useNavigate(); - //현재 유저 - let user = useSelector((state) => state.user); - - function createBoard(){ - //카테고리 따로 클릭하지 않았을 시 디폴트 세팅 - //axios에서 잘 들어가는지 테스트 필요. - if(category === ""){ - setCategory("HEALTH"); - } - const url = "http://localhost:8080/api/"; - const data = { - title : title, - content : content, - img : "SampleImgSource", - category : category, - } - console.log(data); - const config = {"Content-Type": 'application/json'}; - axios.post(url+"post/regist/"+user.id, data, config) - .then(() => { - navigate('/') - }) - console.log(data) - } - - //////// html /////// - return ( -
-
-

The SecondLife

-
-
- - - - - - - - - - - - -
{setTitle(e.target.value); console.log(title)}} - />
- 카테고리 선택 - - -
- -
- ) -} - -export default Create \ No newline at end of file diff --git a/src/pages/Detail.jsx b/src/pages/Detail.jsx deleted file mode 100644 index c5f5bf0..0000000 --- a/src/pages/Detail.jsx +++ /dev/null @@ -1,95 +0,0 @@ -import React from 'react' -import axios from 'axios' -import { useEffect, useState } from 'react' -import { useParams } from 'react-router-dom'; -import { useSelector } from 'react-redux'; -import { useNavigate } from 'react-router-dom'; -import "../css/Detail.module.css"; - -function Detail() { - let {id} = useParams(); - let user = useSelector((state) => state.user); - let [board, setBoard] = useState({}); - function setDummyBoard(){ - setBoard({ - title : "제목1", - category : "건강", - content : "내용1", - createdDate : "2023-06-17", - commentList: [ - { - "id": 1, - "content": "좋습니다", - "createdDate": "2023-06-08T00:37:11", - "modifiedDate": "2023-06-09T00:37:11", - "userId": 2, - "userNickName": "daen", - "userProfileImg": "https://fitsta-bucket.s3.ap-northeast-2.amazonaws.com/de45b98d-980f-4cd4-b9ae-405e2b76b3a9-nara_1.jpeg", - "userGrade": "씨앗" - }, - { - "id": 2, - "content": "최고입니다", - "createdDate": "2023-06-08T00:39:11", - "modifiedDate": "2023-06-09T00:39:11", - "userId": 3, - "userNickName": "tksgk", - "userProfileImg": "https://fitsta-bucket.s3.ap-northeast-2.amazonaws.com/57b3f1c6-057b-4170-83aa-5997a0b51ae9-jyj.png", - "userGrade": "씨앗" - }, - ] - }); - } - - function modifyBoard(){ - - } - useEffect(() => { - setDummyBoard(); - - // const url = "http://localhost:8080/api/"; - // axios.get(url+"post/"+id) - // .then((result) => { - // setBoard(result.data); - // }) - // .catch((err) => { - // console.log(err) - // }) - },[]) - - return ( -
- - - - - - - - - - - - - - - - - - - {board && - - } - -
{user.name} 🌱
{board.category} | {board.title} | {board.createdDate}
{board.content} -
-
-
{board.commentList[0].userNickName} 🌱 | {board.commentList[0].content} | {board.commentList[0].createdDate}
- -
- ) -} - -export default Detail \ No newline at end of file diff --git a/src/pages/Home.jsx b/src/pages/Home.jsx deleted file mode 100644 index dcb5a6c..0000000 --- a/src/pages/Home.jsx +++ /dev/null @@ -1,56 +0,0 @@ -import React, { useEffect, useState } from 'react' -import axios from 'axios'; -import { useSelector } from 'react-redux' -import { Link, useNavigate } from 'react-router-dom'; -import "../css/Home.module.css" - -function Home() { - const navigate = useNavigate(); - const boards = useSelector((state) => state.board); - console.log(boards); - // let [boards, setBoards] = useState([]); - - // useEffect(() => { - // const url = "http://localhost:8080/api/"; - // axios.get(`${url}/post/list`) - // .then((res) => { - // setBoards(res.data); - // console.log("axios requested!"); - // console.log(res.data); - // }) - // .catch((err) => { - // console.log("failed!"); - // }) - // }, []) - - return ( -
-

CRUD practice 게시판

- - - - - - - - - - - - {boards.map((board, i) => ( - - - - - - - - ))} - -
#카테고리제목날짜조회수
{i+1}{board.category} { navigate('/boardDetail') }}>{board.title}{board.createdDate}{0}
- 등록하기 -
- ) -} - -export default Home \ No newline at end of file diff --git a/src/pages/BoardComp.jsx b/src/pages/board/BoardComp.jsx similarity index 97% rename from src/pages/BoardComp.jsx rename to src/pages/board/BoardComp.jsx index 89a6e4f..ec22baa 100644 --- a/src/pages/BoardComp.jsx +++ b/src/pages/board/BoardComp.jsx @@ -1,5 +1,5 @@ import { useEffect, useState } from 'react'; -import style from '../css/BoardComp.module.css'; +import style from '../../css/BoardComp.module.css'; import { useNavigate } from 'react-router-dom'; diff --git a/src/pages/BoardDetail.jsx b/src/pages/board/BoardDetail.jsx similarity index 98% rename from src/pages/BoardDetail.jsx rename to src/pages/board/BoardDetail.jsx index 36bc694..8bb536d 100644 --- a/src/pages/BoardDetail.jsx +++ b/src/pages/board/BoardDetail.jsx @@ -1,9 +1,9 @@ import axios from 'axios'; import { useEffect, useState } from 'react'; import { useParams, useNavigate } from 'react-router-dom'; -import HeaderComp from './HeaderComp'; -import Footer from './FooterComp'; -import style from "../css/BoardDetail.module.css" +import HeaderComp from '../HeaderComp'; +import Footer from '../FooterComp'; +import style from "../../css/BoardDetail.module.css" import {BsSend, BsTrash3} from 'react-icons/bs'; import {VscBookmark} from "react-icons/vsc"; import { IoIosArrowBack } from "react-icons/io"; diff --git a/src/pages/BoardEdit.jsx b/src/pages/board/BoardEdit.jsx similarity index 96% rename from src/pages/BoardEdit.jsx rename to src/pages/board/BoardEdit.jsx index 54e2279..1c72bf3 100644 --- a/src/pages/BoardEdit.jsx +++ b/src/pages/board/BoardEdit.jsx @@ -1,10 +1,10 @@ import React, { useEffect, useState } from 'react' import { useNavigate, useParams } from 'react-router-dom'; -import HeaderComp from './HeaderComp'; +import HeaderComp from '../HeaderComp'; import { IoIosArrowBack } from 'react-icons/io'; -import Footer from './FooterComp'; +import Footer from '../FooterComp'; import { BsCameraFill } from 'react-icons/bs'; -import style from "../css/BoardDetail.module.css" +import style from "../../css/BoardDetail.module.css" import axios from 'axios'; function BoardEdit() { let { id } = useParams(); diff --git a/src/pages/BoardPage.jsx b/src/pages/board/BoardPage.jsx similarity index 95% rename from src/pages/BoardPage.jsx rename to src/pages/board/BoardPage.jsx index 7100927..64a34db 100644 --- a/src/pages/BoardPage.jsx +++ b/src/pages/board/BoardPage.jsx @@ -1,9 +1,9 @@ -import HeaderComp from './HeaderComp'; -import Footer from './FooterComp'; +import HeaderComp from '../HeaderComp'; +import Footer from '../FooterComp'; import { useEffect, useState, useRef } from 'react'; import BoardComp from './BoardComp'; import axios from 'axios'; -import style from '../css/BoardComp.module.css'; +import style from '../../css/BoardComp.module.css'; import { BiMessageSquareAdd } from "react-icons/bi"; import { useNavigate } from 'react-router-dom'; diff --git a/src/pages/Create.jsx b/src/pages/board/Create.jsx similarity index 95% rename from src/pages/Create.jsx rename to src/pages/board/Create.jsx index 80ca5cd..4aa8a93 100644 --- a/src/pages/Create.jsx +++ b/src/pages/board/Create.jsx @@ -1,9 +1,9 @@ import axios from 'axios'; import { useEffect, useState } from 'react'; import { useParams, useNavigate } from 'react-router-dom'; -import HeaderComp from './HeaderComp'; -import Footer from './FooterComp'; -import style from "../css/BoardDetail.module.css" +import HeaderComp from '../HeaderComp'; +import Footer from '../FooterComp'; +import style from "../../css/BoardDetail.module.css" import { IoIosArrowBack } from "react-icons/io"; import { BsCameraFill, BsFillTrash3Fill } from "react-icons/bs"; import { useDispatch } from 'react-redux'; @@ -33,7 +33,7 @@ function Create() { },[]) function createBoard(){ - const url = "http://localhost:8080/api/"; + const url = "/api/"; const data = { title : title, content : content, diff --git a/src/store/BoardSlice.jsx b/src/store/BoardSlice.jsx deleted file mode 100644 index f558af4..0000000 --- a/src/store/BoardSlice.jsx +++ /dev/null @@ -1,21 +0,0 @@ -import {configureStore, createSlice} from '@reduxjs/toolkit' -import {boardList} from "../Data"; - -const board = createSlice({ - name : "boards", - initialState : boardList, - reducers : { - addBoard : (state) =>{ - - } - } -}) - - -// export default configureStore({ -// reducer : { -// boards : boardSlice.reducer, -// } -// }) -export let {addBoard} = board.actions; -export default board; diff --git a/src/store/store.jsx b/src/store/store.jsx index d78d99b..8ef5ec5 100644 --- a/src/store/store.jsx +++ b/src/store/store.jsx @@ -4,7 +4,7 @@ import { configureStore, createSlice } from "@reduxjs/toolkit"; import user from "./UserSlice"; -import board from "./BoardSlice"; +// import board from "./BoardSlice"; import hospital from "./HospitalSlice"; import work from "./WorkSlice"; import chat from "./chatSlice"; @@ -17,7 +17,7 @@ import culture from "./CultureSlice"; export default configureStore({ reducer: { user: user.reducer, - board : board.reducer, + // board : board.reducer, hospital : hospital.reducer, work : work.reducer, chat : chat.reducer, From 47c4455ba6082c118f1df4b1981d4b5e21424cac Mon Sep 17 00:00:00 2001 From: Daen12 <111489407+Daen12@users.noreply.github.com> Date: Sat, 1 Jul 2023 21:04:42 +0900 Subject: [PATCH 2/2] update : board edit to resolve conflict --- src/pages/board/BoardEdit.jsx | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/pages/board/BoardEdit.jsx b/src/pages/board/BoardEdit.jsx index 1c72bf3..f4af6d4 100644 --- a/src/pages/board/BoardEdit.jsx +++ b/src/pages/board/BoardEdit.jsx @@ -7,6 +7,7 @@ import { BsCameraFill } from 'react-icons/bs'; import style from "../../css/BoardDetail.module.css" import axios from 'axios'; function BoardEdit() { + let { id } = useParams(); let navigate = useNavigate(); const [post, setPost] = useState({}) @@ -17,6 +18,7 @@ const [file, setFile] = useState(1); useEffect(()=>{ const url = "/api/post/" + id; + console.log(); axios.get(url) .then((result) => { setTitle(result.data.title);