-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEmailEditPage.tsx
More file actions
60 lines (56 loc) · 2.28 KB
/
Copy pathEmailEditPage.tsx
File metadata and controls
60 lines (56 loc) · 2.28 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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
import { useState } from 'react';
import { useParams } from 'react-router-dom';
import DashboardLayout from '../../../../shared/ui/backgrounds/DashboardLayout';
import EmailInput from '../../../../features/dashboard/ui/EmailInput';
import TimePicker from '../../../../features/event/ui/TimePicker';
import Button from '../../../../../design-system/ui/Button';
import SelectTicketModal from '../../../../widgets/dashboard/ui/email/SelectTicketModal';
import { useParticipants } from '../../../../features/dashboard/hook/useParticipants';
import { useEmailStore } from '../../../../features/dashboard/model/store/EmailStore';
import { useEditEmail } from '../../../../features/dashboard/hook/useEmailHook';
import { EmailRequest } from '../../../../features/dashboard/model/email';
const EmailEditPage = () => {
const [ticketModalOpen, setTicketModalOpen] = useState(false);
const { participants } = useParticipants();
const { id } = useParams();
const { mutate: editEmail } = useEditEmail();
const { reservationEmailId, title, content, recipients, reservationDate, setReservationDate, ticketId, targetType } =
useEmailStore();
const handleEdit = () => {
const eventId = id ? parseInt(id) : 0;
const emailData: EmailRequest = {
eventId,
title,
content,
recipients,
reservationDate,
targetType,
};
if (targetType === 'TICKET') {
emailData.ticketId = ticketId;
}
editEmail({ reservationEmailId: reservationEmailId, data: emailData });
};
return (
<DashboardLayout centerContent="DASHBOARD">
<div className="flex flex-col gap-5 mt-8 px-7">
<EmailInput
type="이메일 내용 수정"
openSelectTicket={() => setTicketModalOpen(true)}
allParticipantEmails={participants.map((p: { email: string }) => p.email)}
isEdited={true}
/>
{/*시간 선택 컴포넌트*/}
<TimePicker
value={reservationDate}
onChange={isoString => {
setReservationDate(isoString);
}}
/>
<Button label="보내기" onClick={handleEdit} className="w-full h-12 rounded-full" />
</div>
{ticketModalOpen && <SelectTicketModal onClose={() => setTicketModalOpen(false)} />}
</DashboardLayout>
);
};
export default EmailEditPage;