Skip to content

Commit 50ba012

Browse files
committed
fix: 방문자 관리 페이지 디바운스된 값 사용하지 않는 것 수정
1 parent ca588fc commit 50ba012

File tree

1 file changed

+21
-14
lines changed
  • apps/admin/src/pages/ShowEnterancePage

1 file changed

+21
-14
lines changed

apps/admin/src/pages/ShowEnterancePage/index.tsx

Lines changed: 21 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
import { useEffect, useState, useMemo, useCallback, memo } from 'react';
12
import {
23
useAdminSalesTicketList,
34
useAdminTicketList,
@@ -6,7 +7,6 @@ import {
67
useShowEnteranceSummary,
78
} from '@boolti/api';
89
import { ClearIcon, SearchIcon } from '@boolti/icon';
9-
import { useEffect, useState } from 'react';
1010
import { useParams } from 'react-router-dom';
1111

1212
import EnteranceTable from '~/components/EnteranceTable';
@@ -45,14 +45,18 @@ const ShowEnterancePage = () => {
4545
const { data: salesTicketList = [] } = useAdminSalesTicketList(showId);
4646

4747
const [selectedTicketId, setSelectedTicketId] = useState<string[]>([]);
48-
const options = salesTicketList.map((ticket) => ({
49-
value: ticket.id.toString(),
50-
label: ticket.ticketName,
51-
}));
48+
const options = useMemo(
49+
() =>
50+
salesTicketList.map((ticket) => ({
51+
value: ticket.id.toString(),
52+
label: ticket.ticketName,
53+
})),
54+
[salesTicketList],
55+
);
5256
const { data: ticketList, isLoading: isTicketListLoading } = useAdminTicketList(
5357
showId,
5458
currentPage,
55-
searchText,
59+
debouncedSearchText,
5660
selectedTicketId,
5761
useTicketUsedFilter,
5862
);
@@ -62,14 +66,19 @@ const ShowEnterancePage = () => {
6266
const isMobile = deviceWidth < parseInt(theme.breakpoint.mobile, 10);
6367

6468
const totalPages = ticketList?.totalPages ?? 0;
65-
const tickets = (ticketList?.content ?? []).filter(
66-
({ usedAt }) => useTicketUsedFilter === undefined || !!usedAt === useTicketUsedFilter,
69+
70+
const tickets = useMemo(
71+
() =>
72+
(ticketList?.content ?? []).filter(
73+
({ usedAt }) => useTicketUsedFilter === undefined || !!usedAt === useTicketUsedFilter,
74+
),
75+
[ticketList, useTicketUsedFilter],
6776
);
6877

69-
const onClickReset = () => {
78+
const onClickReset = useCallback(() => {
7079
setSelectedTicketId([]);
7180
setSearchText('');
72-
};
81+
}, []);
7382

7483
useEffect(() => {
7584
const timerId = setTimeout(() => {
@@ -174,9 +183,7 @@ const ShowEnterancePage = () => {
174183
<Styled.InputContainer>
175184
<Styled.Input
176185
value={searchText}
177-
onChange={(event) => {
178-
setSearchText(event.target.value);
179-
}}
186+
onChange={(event) => setSearchText(event.target.value)}
180187
placeholder={isMobile ? '방문자명, 연락처' : '방문자명, 연락처 검색'}
181188
/>
182189
<Styled.ButtonContainer>
@@ -231,4 +238,4 @@ const ShowEnterancePage = () => {
231238
);
232239
};
233240

234-
export default ShowEnterancePage;
241+
export default memo(ShowEnterancePage);

0 commit comments

Comments
 (0)