Skip to content

Commit a21576c

Browse files
committed
fix: 병합 충돌 해결
2 parents 3ca91e5 + 1f97f2a commit a21576c

9 files changed

Lines changed: 197 additions & 260 deletions

File tree

package.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,8 @@
1212
"start:json-server": "json-server --watch db.json --port 5000"
1313
},
1414
"dependencies": {
15-
"@tanstack/react-query": "^5.69.3",
15+
"@tanstack/react-query": "^5.70.0",
16+
"@tanstack/react-query-devtools": "^5.70.0",
1617
"@types/styled-components": "^5.1.34",
1718
"axios": "^1.7.2",
1819
"dayjs": "^1.11.12",

src/App.tsx

Lines changed: 16 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import React, { useEffect, useState } from 'react';
22
import { BrowserRouter, Route, Routes, Navigate } from 'react-router-dom';
3-
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
43

54
import Home from '@pages/Home';
65
import Login from '@pages/Login';
@@ -33,8 +32,6 @@ import { getUserInfoApi } from '@apis/user';
3332
import { getCurrentUserId } from '@utils/getCurrentUserId';
3433
import Loading from '@components/Loading';
3534

36-
const queryClient = new QueryClient();
37-
3835
const ProtectedRoute = ({ children }: { children: JSX.Element }) => {
3936
const [isAuthenticated, setIsAuthenticated] = useState<boolean | null>(null);
4037

@@ -101,24 +98,22 @@ const publicRoutes = [
10198

10299
const App: React.FC = () => {
103100
return (
104-
<QueryClientProvider client={queryClient}>
105-
<BrowserRouter>
106-
<Routes>
107-
{/* 인증이 필요한 페이지 */}
108-
{protectedRoutes.map(({ path, element }) => (
109-
<Route key={path} path={path} element={<ProtectedRoute>{element}</ProtectedRoute>} />
110-
))}
111-
112-
{/* 인증이 필요 없는 페이지 */}
113-
{publicRoutes.map(({ path, element }) => (
114-
<Route key={path} path={path} element={element} />
115-
))}
116-
117-
{/* 없는 페이지에 대한 처리 */}
118-
<Route path="*" element={<NotFound />} />
119-
</Routes>
120-
</BrowserRouter>
121-
</QueryClientProvider>
101+
<BrowserRouter>
102+
<Routes>
103+
{/* 인증이 필요한 페이지 */}
104+
{protectedRoutes.map(({ path, element }) => (
105+
<Route key={path} path={path} element={<ProtectedRoute>{element}</ProtectedRoute>} />
106+
))}
107+
108+
{/* 인증이 필요 없는 페이지 */}
109+
{publicRoutes.map(({ path, element }) => (
110+
<Route key={path} path={path} element={element} />
111+
))}
112+
113+
{/* 없는 페이지에 대한 처리 */}
114+
<Route path="*" element={<NotFound />} />
115+
</Routes>
116+
</BrowserRouter>
122117
);
123118
};
124119

src/apis/post/index.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { useQuery } from '@tanstack/react-query';
2+
13
import { newRequest } from '@apis/core';
24

35
import type { EmptySuccessResponse } from '@apis/core/dto';
@@ -43,3 +45,11 @@ export const deletePostApi = (postId: number) => newRequest.delete<EmptySuccessR
4345
// 대표 게시글 지정
4446
export const modifyPostRepresentativeStatusApi = (postId: number) =>
4547
newRequest.patch<EmptySuccessResponse>(`/post/${postId}/is-representative`);
48+
49+
export const usePostDetail = (postId: number) => {
50+
return useQuery({
51+
queryKey: ['postDetail', postId],
52+
queryFn: () => getPostDetailApi(postId),
53+
enabled: !!postId, // postId가 존재할 때만 요청 수행
54+
});
55+
};

src/main.tsx

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import { QueryClient, QueryClientProvider } from '@tanstack/react-query';
2+
import { ReactQueryDevtools } from '@tanstack/react-query-devtools';
13
import { createRoot } from 'react-dom/client';
24
import { RecoilRoot } from 'recoil';
35
import { ThemeProvider } from 'styled-components';
@@ -10,13 +12,18 @@ import { SocketProvider } from '@context/SocketProvider';
1012

1113
import App from './App';
1214

15+
const queryClient = new QueryClient();
16+
1317
createRoot(document.getElementById('root')!).render(
1418
<ThemeProvider theme={theme}>
15-
<GlobalStyle />
16-
<RecoilRoot>
17-
<SocketProvider>
18-
<App />
19-
</SocketProvider>
20-
</RecoilRoot>
19+
<QueryClientProvider client={queryClient}>
20+
<GlobalStyle />
21+
<RecoilRoot>
22+
<SocketProvider>
23+
<App />
24+
<ReactQueryDevtools initialIsOpen={false} />
25+
</SocketProvider>
26+
</RecoilRoot>
27+
</QueryClientProvider>
2128
</ThemeProvider>,
2229
);

0 commit comments

Comments
 (0)