@@ -37,7 +37,6 @@ export default function Calendar() {
37
37
const [ selectedDate , setSelectedDate ] = useState < string | null > ( null ) ;
38
38
const { events, addEvents } = useEventState ( ) ;
39
39
40
-
41
40
/*
42
41
const handleDateClick = (clickInfo: EventClickArg) => {
43
42
if (clickInfo.event.start) {
@@ -53,13 +52,16 @@ export default function Calendar() {
53
52
*/
54
53
55
54
const handleDateSelection = ( dateClickInfo : { dateStr : string } ) => {
56
- console . log ( dateClickInfo )
55
+ console . log ( dateClickInfo ) ;
57
56
const clickedDateStr = dateClickInfo . dateStr ;
58
57
setSelectedDate ( clickedDateStr ) ;
59
- setSelectedEvents ( events . filter ( event =>
60
- clickedDateStr >= event . start . split ( 'T' ) [ 0 ] &&
61
- clickedDateStr <= ( event . end ? event . end . split ( 'T' ) [ 0 ] : event . start . split ( 'T' ) [ 0 ] )
62
- ) ) ;
58
+ setSelectedEvents (
59
+ events . filter (
60
+ ( event ) =>
61
+ clickedDateStr >= event . start . split ( 'T' ) [ 0 ] &&
62
+ clickedDateStr <= ( event . end ? event . end . split ( 'T' ) [ 0 ] : event . start . split ( 'T' ) [ 0 ] ) ,
63
+ ) ,
64
+ ) ;
63
65
} ;
64
66
65
67
const handlePrev = ( ) => {
@@ -86,14 +88,23 @@ export default function Calendar() {
86
88
setCalendarHeight ( window . innerWidth < 768 ? 500 : 'auto' ) ;
87
89
} , [ ] ) ;
88
90
89
- function convertEvents ( events : { title : string , start_date : string , end_date : string , backgroundColor ?: string , borderColor ?: string , textColor ?: string } [ ] ) : Events [ ] {
90
- return events . map ( event => ( {
91
+ function convertEvents (
92
+ events : {
93
+ title : string ;
94
+ start_date : string ;
95
+ end_date : string ;
96
+ backgroundColor ?: string ;
97
+ borderColor ?: string ;
98
+ textColor ?: string ;
99
+ } [ ] ,
100
+ ) : Events [ ] {
101
+ return events . map ( ( event ) => ( {
91
102
title : event . title ,
92
- start : event . start_date ,
93
- end : event . end_date ,
103
+ start : event . start_date ,
104
+ end : event . end_date ,
94
105
backgroundColor : event . backgroundColor || '#3788d8' ,
95
106
borderColor : event . borderColor || '#296c98' ,
96
- textColor : event . textColor || '#ffffff'
107
+ textColor : event . textColor || '#ffffff' ,
97
108
} ) ) ;
98
109
}
99
110
@@ -117,9 +128,8 @@ export default function Calendar() {
117
128
};
118
129
*/
119
130
120
-
121
131
useEffect ( ( ) => {
122
- /*
132
+ /*
123
133
const calendarApi = calendarRef?.current?.getApi();
124
134
if (calendarApi) {
125
135
calendarApi.on('datesSet', updateTitle);
@@ -146,20 +156,21 @@ export default function Calendar() {
146
156
147
157
useEffect ( ( ) => {
148
158
if ( ! isLoaded ) {
149
- getPersonalSchedule ( ) . then ( schedule => {
150
- const uniqueEvents = schedule . filter ( newEvent =>
151
- ! events . some ( existingEvent =>
152
- existingEvent . start === newEvent . start_date && existingEvent . title === newEvent . title
153
- )
159
+ getPersonalSchedule ( ) . then ( ( schedule ) => {
160
+ const uniqueEvents = schedule . filter (
161
+ ( newEvent ) =>
162
+ ! events . some (
163
+ ( existingEvent ) => existingEvent . start === newEvent . start_date && existingEvent . title === newEvent . title ,
164
+ ) ,
154
165
) ;
155
- if ( uniqueEvents . length > 0 ) {
166
+ if ( uniqueEvents . length > 0 ) {
156
167
const eventsToAdd = convertEvents ( uniqueEvents ) ;
157
- eventsToAdd . forEach ( eventToAdd => addEvents ( eventToAdd ) ) ;
158
- setIsLoaded ( true ) ;
168
+ eventsToAdd . forEach ( ( eventToAdd ) => addEvents ( eventToAdd ) ) ;
169
+ setIsLoaded ( true ) ;
159
170
}
160
171
} ) ;
161
172
}
162
- } , [ events , addEvents ] ) ;
173
+ } , [ events , addEvents ] ) ;
163
174
164
175
return (
165
176
< div >
@@ -199,12 +210,11 @@ export default function Calendar() {
199
210
} }
200
211
/>
201
212
</ div >
202
- < div className = "mt-10" > { selectedDate && < EventCards events = { selectedEvents } date = { selectedDate } /> } </ div >
213
+ < div className = "mt-10" > { selectedDate && < EventCards events = { selectedEvents } date = { selectedDate } /> } </ div >
203
214
</ div >
204
215
) ;
205
216
}
206
217
207
-
208
218
function renderEventContent ( eventInfo : EventInfo ) {
209
219
return (
210
220
< >
@@ -221,9 +231,12 @@ function EventCards({ events, date }: EventCardsProps) {
221
231
const [ menuOpen , setMenuOpen ] = useState ( - 1 ) ;
222
232
223
233
if ( ! events . length ) {
224
- return < div className = 'min-h-[150px] min-w-[240px] bg-white p-4 text-black' >
225
- 일정이 없습니다. < br /> 일정을 등록해주세요!
226
- </ div > ;
234
+ return (
235
+ < div className = "min-h-[150px] min-w-[240px] bg-white p-4 text-black" >
236
+ 일정이 없습니다. < br />
237
+ 일정을 등록해주세요!
238
+ </ div >
239
+ ) ;
227
240
}
228
241
229
242
return (
@@ -260,4 +273,3 @@ function EventCards({ events, date }: EventCardsProps) {
260
273
</ div >
261
274
) ;
262
275
}
263
-
0 commit comments