Skip to content

Commit 45f484d

Browse files
authored
refactor(TIL): detail page 리팩토링 (#633)
* refactor: detail page내 <PostDetail /> <WeeklyTop5 /> 컴포넌트 suspense + errorboundary 추가 - 기존에는 상위에서 api를 호출해서 내려주는 방식으로 되있었는데, 이를 PostDetail 내부에서 하도록 처리 - loading, error props을 받아서 이를 분기로 렌더링해주고있었어서, 컴포넌트 return에 도달하는 인지 시간이 길었었음. 그래서, 이를 usesuspensequery로 바꿔주고 에러바운더리랑 서스펜스를 분리해줘서 관심사 분리를 해줌 * refactor: PostDetail 컴포넌트 내부 1차 리팩토링 할 것들 정리 - 디테일 페이지에 들어오면 왼쪽 오른쪽 섹션이 있고, 왼쪽 섹션에서는 본문 댓글입력, 댓글들 이렇게 파트들이 나눠져있음 => 이에 대한 UI가 코드에도 보이도록 리팩토링 게획 세우기 * wip * refactor: 디테일 페이지내 컴포넌트 각각 분리 * refactor: ContentBody 컴포넌트 리팩토링 - 영역별로 컴포넌트 나눠줘서 화면과 1대1 매칭 해주기 * feat: divider 복원 * refactor: lint:fix * fix: prettier
1 parent f07ff16 commit 45f484d

28 files changed

+838
-715
lines changed

.pnp.cjs

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

fundamentals/today-i-learned/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
"class-variance-authority": "^0.7.1",
2525
"clsx": "^2.1.1",
2626
"date-fns": "^4.1.0",
27+
"es-toolkit": "^1.41.0",
2728
"lucide-react": "^0.525.0",
2829
"overlay-kit": "^1.8.4",
2930
"react": "^18.2.0",

fundamentals/today-i-learned/src/api/hooks/useDiscussions.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ import { useAuth } from "@/contexts/AuthContext";
22
import { ENV_CONFIG } from "@/utils/env";
33
import {
44
useInfiniteQuery,
5+
useSuspenseQuery,
56
useMutation,
67
useQuery,
78
useQueryClient
@@ -123,12 +124,11 @@ export function useInfiniteDiscussions({
123124
export function useWeeklyTopDiscussions({
124125
owner = ENV_CONFIG.GITHUB_OWNER,
125126
repo = ENV_CONFIG.GITHUB_REPO,
126-
limit,
127-
enabled = true
127+
limit
128128
}: Omit<UseDiscussionsParams, "categoryName"> & { limit?: number } = {}) {
129129
const { user } = useAuth();
130130

131-
return useQuery({
131+
return useSuspenseQuery({
132132
queryKey: DISCUSSIONS_QUERY_KEYS.weekly(),
133133
queryFn: async () => {
134134
const discussions = await fetchWeeklyTopDiscussions({
@@ -138,7 +138,6 @@ export function useWeeklyTopDiscussions({
138138
});
139139
return limit ? discussions.slice(0, limit) : discussions;
140140
},
141-
enabled,
142141
staleTime: 1000 * 60 * 30, // 30분
143142
gcTime: 1000 * 60 * 60, // 1시간
144143
retry: 1
@@ -245,14 +244,13 @@ export function useMyContributions({
245244
export function useDiscussionDetail(id: string) {
246245
const { user } = useAuth();
247246

248-
return useQuery({
247+
return useSuspenseQuery({
249248
queryKey: DISCUSSIONS_QUERY_KEYS.detail(id),
250249
queryFn: () =>
251250
fetchDiscussionDetail({
252251
id,
253252
accessToken: user?.accessToken
254253
}),
255-
enabled: !!id,
256254
staleTime: 1000 * 60 * 5, // 5분
257255
gcTime: 1000 * 60 * 30, // 30분
258256
retry: 2

0 commit comments

Comments
 (0)