-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathEmailStore.tsx
More file actions
46 lines (44 loc) · 1.45 KB
/
EmailStore.tsx
File metadata and controls
46 lines (44 loc) · 1.45 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
import { create } from 'zustand';
interface EmailState {
reservationEmailId: number;
title: string;
content: string;
recipients: string[];
reservationDate: string; // 2025-05-01T14:00:00
targetType: 'ALL' | 'TICKET';
ticketId: number;
setReservationEmailId: (reservationEmailId: number) => void;
setTitle: (title: string) => void;
setContent: (content: string) => void;
setRecipients: (recipients: string[]) => void;
setReservationDate: (date: string) => void;
setTargetType: (type: 'ALL' | 'TICKET') => void;
setTicketId: (ticketId: number) => void;
reset: () => void;
}
export const useEmailStore = create<EmailState>((set) => ({
reservationEmailId: 0,
title: '',
content: '',
recipients: [],
reservationDate: '',
targetType: 'ALL',
ticketId: 0,
setReservationEmailId: (reservationEmailId) => set({reservationEmailId}),
setTitle: (title) => set({ title }),
setContent: (content) => set({ content }),
setRecipients: (recipients) => set({ recipients }),
setReservationDate: (date) => set({ reservationDate: date }),
setTargetType: (targetType) => set({ targetType }),
setTicketId: (ticketId) => set({ ticketId }),
reset: () =>
set({
reservationEmailId: 0,
title: '',
content: '',
recipients: [],
reservationDate: '',
targetType: 'ALL',
ticketId: 0,
}),
}));