Skip to content

Commit 25019e7

Browse files
committed
fix: 일정 클릭시 해당일에 일정리스트 보이기
1 parent 004f848 commit 25019e7

File tree

1 file changed

+40
-28
lines changed

1 file changed

+40
-28
lines changed

src/components/common/Calendar.tsx

Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@ export default function Calendar() {
3737
const [selectedDate, setSelectedDate] = useState<string | null>(null);
3838
const { events, addEvents } = useEventState();
3939

40-
4140
/*
4241
const handleDateClick = (clickInfo: EventClickArg) => {
4342
if (clickInfo.event.start) {
@@ -53,13 +52,16 @@ export default function Calendar() {
5352
*/
5453

5554
const handleDateSelection = (dateClickInfo: { dateStr: string }) => {
56-
console.log(dateClickInfo)
55+
console.log(dateClickInfo);
5756
const clickedDateStr = dateClickInfo.dateStr;
5857
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+
);
6365
};
6466

6567
const handlePrev = () => {
@@ -86,14 +88,23 @@ export default function Calendar() {
8688
setCalendarHeight(window.innerWidth < 768 ? 500 : 'auto');
8789
}, []);
8890

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) => ({
91102
title: event.title,
92-
start: event.start_date,
93-
end: event.end_date,
103+
start: event.start_date,
104+
end: event.end_date,
94105
backgroundColor: event.backgroundColor || '#3788d8',
95106
borderColor: event.borderColor || '#296c98',
96-
textColor: event.textColor || '#ffffff'
107+
textColor: event.textColor || '#ffffff',
97108
}));
98109
}
99110

@@ -117,9 +128,8 @@ export default function Calendar() {
117128
};
118129
*/
119130

120-
121131
useEffect(() => {
122-
/*
132+
/*
123133
const calendarApi = calendarRef?.current?.getApi();
124134
if (calendarApi) {
125135
calendarApi.on('datesSet', updateTitle);
@@ -146,20 +156,21 @@ export default function Calendar() {
146156

147157
useEffect(() => {
148158
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+
),
154165
);
155-
if (uniqueEvents.length > 0) {
166+
if (uniqueEvents.length > 0) {
156167
const eventsToAdd = convertEvents(uniqueEvents);
157-
eventsToAdd.forEach(eventToAdd => addEvents(eventToAdd));
158-
setIsLoaded(true);
168+
eventsToAdd.forEach((eventToAdd) => addEvents(eventToAdd));
169+
setIsLoaded(true);
159170
}
160171
});
161172
}
162-
}, [events, addEvents]);
173+
}, [events, addEvents]);
163174

164175
return (
165176
<div>
@@ -199,12 +210,11 @@ export default function Calendar() {
199210
}}
200211
/>
201212
</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>
203214
</div>
204215
);
205216
}
206217

207-
208218
function renderEventContent(eventInfo: EventInfo) {
209219
return (
210220
<>
@@ -221,9 +231,12 @@ function EventCards({ events, date }: EventCardsProps) {
221231
const [menuOpen, setMenuOpen] = useState(-1);
222232

223233
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+
);
227240
}
228241

229242
return (
@@ -260,4 +273,3 @@ function EventCards({ events, date }: EventCardsProps) {
260273
</div>
261274
);
262275
}
263-

0 commit comments

Comments
 (0)