Skip to content

Commit 08528d3

Browse files
committed
refact: 사용자 응답 없을 시 처리
1 parent 679b4db commit 08528d3

File tree

2 files changed

+20
-6
lines changed

2 files changed

+20
-6
lines changed

src/features/dashboard/ui/ResponsesList.tsx

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,9 @@ const ResponsesList = ({ listType, ticketOptionResponses, ticketId }: ResponsesL
6363
if (isLoading) return <p>로딩 중...</p>;
6464
if (error || !data?.result) return <p>데이터를 불러오지 못했습니다.</p>;
6565
const allOrders = data.result.flatMap(user => user.orders);
66+
if (allOrders.length === 0) {
67+
return <p className="text-center text-gray-500">응답이 없습니다.</p>;
68+
}
6669
return (
6770
<IndividualResponseViewer orders={allOrders} currentIndex={currentIndex} setCurrentIndex={setCurrentIndex} />
6871
);

src/pages/dashboard/ui/ResponseManagementPage.tsx

Lines changed: 17 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,18 +9,29 @@ import { usePurchaserAnswers } from '../../../features/ticket/hooks/useTicketOpt
99
const ResponseManagementPage = () => {
1010
const [listType, setListType] = useState<'summary' | 'individual'>('summary');
1111
const { isModalOpen, closeModal, selectedTicketId } = useResponseStore();
12-
const { data } = usePurchaserAnswers(selectedTicketId);
12+
const { data, isLoading, isError } = usePurchaserAnswers(selectedTicketId);
13+
const orderCount = data?.result?.orderCount ?? 0;
1314
return (
1415
<DashboardLayout centerContent="WOOACON 2024" pinkBg={true}>
1516
{isModalOpen && (
1617
<ResponesModal onClose={closeModal}></ResponesModal>
1718
)}
1819
<div className="flex flex-col px-2 md:px-4">
19-
<h1 className="text-left font-semibold md:text-2xl text-xl py-4 md:py-6 pl-4">응답 {data?.result.orderCount}</h1>
20-
<div className="flex justify-center">
21-
<ResponsesFilterBar listType={listType} setListType={setListType} />
22-
</div>
23-
<ResponsesList listType={listType} ticketOptionResponses={data?.result.ticketOptions ?? []} ticketId={selectedTicketId || 0} />
20+
<h1 className="text-left font-semibold md:text-2xl text-xl py-4 md:py-6 pl-4">
21+
{isLoading ? '응답 불러오는 중...' : isError ? '응답 0개' : `응답 ${orderCount}개`}
22+
</h1>
23+
{isError ? (
24+
<div className="text-center text-red-500 mt-8">
25+
응답이 존재하지 않습니다
26+
</div>
27+
) : (
28+
<>
29+
<div className="flex justify-center">
30+
<ResponsesFilterBar listType={listType} setListType={setListType} />
31+
</div>
32+
<ResponsesList listType={listType} ticketOptionResponses={data?.result.ticketOptions ?? []} ticketId={selectedTicketId || 0} />
33+
</>
34+
)}
2435
</div>
2536
</DashboardLayout>
2637
);

0 commit comments

Comments
 (0)