Skip to content

Commit a84b892

Browse files
authored
Merge pull request #223 from PNUMeat/fix/new-pagination-apply-all
[fix] 페이지네이션 미적용 부분 적용 및 렌더링 개선
2 parents c898400 + 768b8b4 commit a84b892

File tree

3 files changed

+41
-55
lines changed

3 files changed

+41
-55
lines changed

src/api/dashboard.ts

Lines changed: 5 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -28,31 +28,12 @@ export interface IArticle {
2828

2929
export interface IArticlesByDateResponse {
3030
content: IArticle[];
31-
empty: boolean;
32-
first: boolean;
33-
last: boolean;
34-
number: number;
35-
numberOfElements: number;
36-
pageable: {
37-
offset: number;
38-
pageNumber: number;
39-
pageSize: number;
40-
paged: boolean;
41-
unpaged: boolean;
42-
sort: {
43-
empty: boolean;
44-
sorted: boolean;
45-
unsorted: boolean;
46-
};
31+
page: {
32+
size: number;
33+
number: number;
34+
totalElements: number;
35+
totalPages: number;
4736
};
48-
size: number;
49-
sort: {
50-
empty: boolean;
51-
sorted: boolean;
52-
unsorted: boolean;
53-
};
54-
totalElements: number;
55-
totalPages: number;
5637
}
5738

5839
export interface ITopicResponse {

src/components/commons/Pagination.tsx

Lines changed: 25 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -47,29 +47,31 @@ export const Pagination = ({
4747
};
4848

4949
return (
50-
<Flex justify="center">
51-
<PaginationContainer hideShadow={hideShadow} marginTop={marginTop}>
52-
{isShowingArrows && (
53-
<LeftArrow src={ArrowButton} onClick={handlePrev} />
54-
)}
55-
<Spacer width={12} h={0} />
56-
<PageList>
57-
{visiblePageNumbers.map((page) => (
58-
<PageNumber
59-
key={page}
60-
isActive={page === currentPageProp + 1}
61-
onClick={() => handlePageChange(page - 1)}
62-
>
63-
{page}
64-
</PageNumber>
65-
))}
66-
</PageList>
67-
<Spacer width={12} h={0} />
68-
{isShowingArrows && (
69-
<RightArrow src={ArrowButton} onClick={handleNext} />
70-
)}
71-
</PaginationContainer>
72-
</Flex>
50+
totalPages > 0 && (
51+
<Flex justify="center">
52+
<PaginationContainer hideShadow={hideShadow} marginTop={marginTop}>
53+
{isShowingArrows && (
54+
<LeftArrow src={ArrowButton} onClick={handlePrev} />
55+
)}
56+
<Spacer width={12} h={0} />
57+
<PageList>
58+
{visiblePageNumbers.map((page) => (
59+
<PageNumber
60+
key={page}
61+
isActive={page === currentPageProp + 1}
62+
onClick={() => handlePageChange(page - 1)}
63+
>
64+
{page}
65+
</PageNumber>
66+
))}
67+
</PageList>
68+
<Spacer width={12} h={0} />
69+
{isShowingArrows && (
70+
<RightArrow src={ArrowButton} onClick={handleNext} />
71+
)}
72+
</PaginationContainer>
73+
</Flex>
74+
)
7375
);
7476
};
7577

src/pages/TeamDashboard/TeamDashboard.tsx

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ const TeamDashboardPage = () => {
6565
});
6666
// 가장 비용이 적은 캐싱
6767
if (isPaginationReady && articlesData) {
68-
totalPageCache = articlesData.totalPages;
68+
totalPageCache = articlesData.page.totalPages;
6969
}
7070

7171
const onClickCalendarDate = (newDate: string) => {
@@ -137,13 +137,16 @@ const TeamDashboardPage = () => {
137137
onShowTopicDetail={handleShowTopicDetail}
138138
onShowArticleDetail={handleShowArticleDetail}
139139
/>
140-
<Pagination
141-
totalPages={articlesData?.totalPages ?? totalPageCache}
142-
currentPageProp={page}
143-
onPageChange={handlePageChange}
144-
hideShadow={isMobile}
145-
marginTop="-70px"
146-
/>
140+
{articlesData && (
141+
<Pagination
142+
totalPages={articlesData?.page.totalPages ?? totalPageCache}
143+
currentPageProp={page}
144+
onPageChange={handlePageChange}
145+
hideShadow={isMobile}
146+
marginTop="-70px"
147+
/>
148+
)}
149+
147150
<Spacer h={isMobile ? 30 : 40} />
148151
{currentView === 'topic' && (
149152
<TopicDetail teamId={Number(teamId)} selectedDate={selectedDate} />

0 commit comments

Comments
 (0)