-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathResponseManagementPage.tsx
More file actions
39 lines (38 loc) · 1.81 KB
/
Copy pathResponseManagementPage.tsx
File metadata and controls
39 lines (38 loc) · 1.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
import { useState } from 'react';
import DashboardLayout from '../../../shared/ui/backgrounds/DashboardLayout';
import ResponsesFilterBar from '../../../widgets/dashboard/ui/ResponsesFilterBar';
import ResponsesList from '../../../features/dashboard/ui/ResponsesList';
import { useResponseStore } from '../../../features/dashboard/model/store/ResponseStore';
import ResponesModal from '../../../widgets/dashboard/ui/response/ResponseModal';
import { usePurchaserAnswers } from '../../../features/ticket/hooks/useTicketOptionHook';
const ResponseManagementPage = () => {
const [listType, setListType] = useState<'summary' | 'individual'>('summary');
const { isModalOpen, closeModal, selectedTicketId } = useResponseStore();
const { data, isLoading, isError } = usePurchaserAnswers(selectedTicketId);
const orderCount = data?.result?.orderCount ?? 0;
return (
<DashboardLayout centerContent="DASHBOARD" pinkBg={true}>
{isModalOpen && (
<ResponesModal onClose={closeModal}></ResponesModal>
)}
<div className="flex flex-col px-2 md:px-4">
<h1 className="text-left font-semibold md:text-2xl text-xl py-4 md:py-6 pl-4">
{isLoading ? '응답 불러오는 중...' : isError ? '응답 0개' : `응답 ${orderCount}개`}
</h1>
{isError ? (
<div className="text-center text-red-500 mt-8">
응답이 존재하지 않습니다
</div>
) : (
<>
<div className="flex justify-center">
<ResponsesFilterBar listType={listType} setListType={setListType} />
</div>
<ResponsesList listType={listType} ticketOptionResponses={data?.result.ticketOptions ?? []} ticketId={selectedTicketId || 0} />
</>
)}
</div>
</DashboardLayout>
);
};
export default ResponseManagementPage;