Skip to content

Commit 15f9b54

Browse files
author
bu2000
committed
게시글 까지 백앤드 연결 완료
1 parent 86bc98a commit 15f9b54

14 files changed

Lines changed: 1122 additions & 267 deletions

File tree

.screen-graph.json

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,7 @@
3030
"label": "RecipePage",
3131
"routes": [
3232
"/recipepage/:id"
33-
],
34-
"dataModelId": "199:457"
33+
]
3534
},
3635
{
3736
"id": "src/screens/CommunityContent/CommunityContent.jsx",
@@ -801,31 +800,31 @@
801800
}
802801
},
803802
{
804-
"id": "src\\screens\\AddIngredientPage\\AddIngredientPage.jsx:172:8-to-src\\screens\\Desktop\\Desktop.jsx",
803+
"id": "src\\screens\\AddIngredientPage\\AddIngredientPage.jsx:170:8-to-src\\screens\\Desktop\\Desktop.jsx",
805804
"source": "src\\screens\\AddIngredientPage\\AddIngredientPage.jsx",
806805
"target": "src\\screens\\Desktop\\Desktop.jsx",
807806
"data": {
808807
"viaRoute": "/desktop",
809808
"trigger": {
810809
"element": "navigate(\"/desktop\")",
811-
"line": 172,
812-
"endLine": 172,
810+
"line": 170,
811+
"endLine": 170,
813812
"column": 8,
814813
"endColumn": 28,
815814
"sourceFile": "src\\screens\\AddIngredientPage\\AddIngredientPage.jsx"
816815
}
817816
}
818817
},
819818
{
820-
"id": "src\\screens\\AddIngredientPage\\AddIngredientPage.jsx:273:12-to-src\\screens\\Desktop\\Desktop.jsx",
819+
"id": "src\\screens\\AddIngredientPage\\AddIngredientPage.jsx:271:12-to-src\\screens\\Desktop\\Desktop.jsx",
821820
"source": "src\\screens\\AddIngredientPage\\AddIngredientPage.jsx",
822821
"target": "src\\screens\\Desktop\\Desktop.jsx",
823822
"data": {
824823
"viaRoute": "/desktop",
825824
"trigger": {
826825
"element": "<Link to=\"/desktop\" className=\"add-ingredient-cancel-btn\">\r\n 취소\r\n </Link>",
827-
"line": 273,
828-
"endLine": 275,
826+
"line": 271,
827+
"endLine": 273,
829828
"column": 12,
830829
"endColumn": 19,
831830
"sourceFile": "src\\screens\\AddIngredientPage\\AddIngredientPage.jsx"

src/App.jsx

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,14 @@
11
import React from "react";
22
import { RouterProvider, createBrowserRouter } from "react-router-dom";
33
import { AuthProvider } from "./contexts/AuthContext";
4-
import { ScrollToTop } from "./components/ScrollToTop"; // Import ScrollToTop
5-
import { CommunityContent } from "./screens/CommunityContent";
4+
import { ScrollToTop } from "./components/ScrollToTop";
5+
6+
// ▼▼▼ [수정 1] 껍데기(CommunityContent) 지우고, 알맹이(Communitycontentpage)를 import 하세요!
7+
// 경로가 './screens/Communitycontentpage/Communitycontentpage' 인지
8+
// './screens/sections/Communitycontentpage' 인지 본인 폴더 구조에 맞춰 정확히 적어주세요.
9+
import { Communitycontentpage } from "./screens/CommunityContent/sections/Communitycontentpage";
10+
// ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
11+
612
import { CommunityPage } from "./screens/CommunityPage";
713
import { Desktop } from "./screens/Desktop";
814
import { MyPage } from "./screens/MyPage";
@@ -33,8 +39,10 @@ const router = createBrowserRouter([
3339
element: <RecipePage />,
3440
},
3541
{
42+
// ▼▼▼ [수정 2] 여기서 CommunityContent 대신 Communitycontentpage를 바로 연결!
3643
path: "/communitycontentpage/:id",
37-
element: <CommunityContent />,
44+
element: <Communitycontentpage />,
45+
// ▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲▲
3846
},
3947
{
4048
path: "/addingredient",
@@ -47,14 +55,14 @@ const router = createBrowserRouter([
4755
{
4856
path: "/menurecommendation",
4957
element: <MenuRecommendationPage />,
50-
}
58+
},
5159
]);
5260

5361
export const App = () => {
5462
return (
5563
<AuthProvider>
5664
<RouterProvider router={router}>
57-
<ScrollToTop /> {/* Render ScrollToTop inside RouterProvider */}
65+
<ScrollToTop />
5866
</RouterProvider>
5967
</AuthProvider>
6068
);

src/api/Community/community.js

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
import axios from "axios";
2+
const BACKEND_DOMAIN = "http://localhost:8080/board";
3+
4+
export const getPostList = async (page, size, filter) => {
5+
const token = localStorage.getItem("accessToken");
6+
try {
7+
const response = await axios.get(`${BACKEND_DOMAIN}/posts`, {
8+
headers: {
9+
Authorization: `Bearer ${token}`,
10+
},
11+
params: {
12+
page: page,
13+
size,
14+
filter: filter || null,
15+
},
16+
});
17+
return response.data;
18+
} catch (error) {
19+
if (error.response) {
20+
console.log(error.response.status);
21+
console.log(error.response.data);
22+
}
23+
throw error;
24+
}
25+
};
26+
27+
export const createPost = async (post) => {
28+
const token = localStorage.getItem("accessToken");
29+
try {
30+
const response = await axios.post(`${BACKEND_DOMAIN}/post`, post, {
31+
headers: {
32+
Authorization: `Bearer ${token}`,
33+
},
34+
});
35+
return response.data;
36+
} catch (error) {
37+
if (error.response) {
38+
console.log(error.response.status);
39+
console.log(error.response.data);
40+
}
41+
throw error;
42+
}
43+
};
44+
45+
export const getPostDetail = async (postId, page, size) => {
46+
const token = localStorage.getItem("accessToken");
47+
try {
48+
const response = await axios.get(`${BACKEND_DOMAIN}/post/${postId}`, {
49+
headers: {
50+
Authorization: `Bearer ${token}`,
51+
},
52+
params: {
53+
page,
54+
size,
55+
},
56+
});
57+
return response.data;
58+
} catch (error) {
59+
if (error.response) {
60+
console.log(error.response.status);
61+
console.log(error.response.data);
62+
}
63+
throw error;
64+
}
65+
};
66+
67+
export const createComment = async (postId, comment) => {
68+
const token = localStorage.getItem("accessToken");
69+
try {
70+
const response = await axios.post(
71+
`${BACKEND_DOMAIN}/post/${postId}/comment`,
72+
comment,
73+
{
74+
headers: {
75+
Authorization: `Bearer ${token}`,
76+
},
77+
}
78+
);
79+
return response.data;
80+
} catch (error) {
81+
if (error.response) {
82+
console.log(error.response.status);
83+
console.log(error.response.data);
84+
}
85+
throw error;
86+
}
87+
};
88+
89+
export const getReplies = async (commentId, page) => {
90+
const token = localStorage.getItem("accessToken");
91+
try {
92+
const response = await axios.get(
93+
`${BACKEND_DOMAIN}/comments/${commentId}/replies`,
94+
{
95+
headers: {
96+
Authorization: `Bearer ${token}`,
97+
},
98+
params: {
99+
page,
100+
},
101+
}
102+
);
103+
return response.data;
104+
} catch (error) {
105+
if (error.response) {
106+
console.log(error.response.status);
107+
console.log(error.response.data);
108+
}
109+
throw error;
110+
}
111+
};
112+
113+
export const updatePost = async (postId, updatedPost) => {
114+
const token = localStorage.getItem("accessToken");
115+
try {
116+
const response = await axios.put(
117+
`${BACKEND_DOMAIN}/post/${postId}`,
118+
updatedPost,
119+
{
120+
headers: {
121+
Authorization: `Bearer ${token}`,
122+
},
123+
}
124+
);
125+
return response.data;
126+
} catch (error) {
127+
if (error.response) {
128+
console.log(error.response.status);
129+
console.log(error.response.data);
130+
}
131+
throw error;
132+
}
133+
};
134+
135+
export const deletePost = async (postId) => {
136+
const token = localStorage.getItem("accessToken");
137+
try {
138+
const response = await axios.delete(`${BACKEND_DOMAIN}/post/${postId}`, {
139+
headers: {
140+
Authorization: `Bearer ${token}`,
141+
},
142+
});
143+
} catch (error) {
144+
if (error.response) {
145+
console.log(error.response.status);
146+
console.log(error.response.data);
147+
}
148+
throw error;
149+
}
150+
};

src/api/Community/recipeReview.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import axios from "axios";
2+
const BACKEND_DOMAIN = "http://localhost:8080/recipe/review";
3+
4+
export const makeReview = async (review) => {
5+
const token = localStorage.getItem("accessToken");
6+
try {
7+
const response = await axios.post(`${BACKEND_DOMAIN}`, review, {
8+
headers: {
9+
Authorization: `Bearer ${token}`,
10+
},
11+
});
12+
return response.data;
13+
} catch (error) {
14+
if (error.response) {
15+
console.log(error.response.status);
16+
console.log(error.response.data);
17+
}
18+
throw error;
19+
}
20+
};

src/components/CommunitypageWrapper/CommunitypageWrapper.jsx

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,14 +7,14 @@ import React from "react";
77
import { Link } from "react-router-dom";
88
import "./style.css";
99

10-
export const CommunitypageWrapper = ({
11-
className,
10+
export const CommunitypageWrapper = ({
11+
className,
1212
postId,
13-
title = "돼지고기 100g 나눔합니다.",
14-
author = "test3User",
15-
date = "2025-11-03",
16-
category = "나눔",
17-
content = ""
13+
title,
14+
author,
15+
date,
16+
category,
17+
content,
1818
}) => {
1919
return (
2020
<Link
@@ -31,7 +31,6 @@ export const CommunitypageWrapper = ({
3131

3232
<div className="communitypage-10">{title}</div>
3333
</div>
34-
3534
<div className="communitypage-11">
3635
<div className="communitypage-12">작성자 :</div>
3736

0 commit comments

Comments
 (0)