Skip to content

Commit 4d552ad

Browse files
committed
feat: 캘린더 일정 리스트 UI 추가 및 일정 메뉴버튼 추가
1 parent 085e252 commit 4d552ad

File tree

1 file changed

+49
-48
lines changed

1 file changed

+49
-48
lines changed

src/components/common/Calendar.tsx

Lines changed: 49 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -104,45 +104,43 @@ export function Calendar() {
104104
}, [updateSize]);
105105

106106
return (
107-
<div >
107+
<div>
108108
<div className="rounded bg-white p-6 px-4 sm:px-0">
109-
<FullCalendar
110-
ref={calendarRef}
111-
plugins={[dayGridPlugin, interactionPlugin]}
112-
initialView="dayGridMonth"
113-
events={events}
114-
eventClick={handleDateClick}
115-
dayMaxEvents={2} //Max개수까지보이고 나머지는 more
116-
//navLinks={true} // 날짜/주 이름을 클릭하여 뷰를 변경할 수 있습니다.
117-
editable={true} // 이벤트를 수정할 수 있습니다.
118-
eventContent={renderEventContent}
119-
contentHeight={calendarHeight}
120-
titleFormat={{
121-
year: 'numeric',
122-
month: '2-digit',
123-
}}
124-
eventTimeFormat={{
125-
hour: '2-digit',
126-
minute: '2-digit',
127-
meridiem: false,
128-
}}
129-
dayHeaderFormat={{
130-
weekday: 'short',
131-
}}
132-
headerToolbar={{
133-
left: 'prevButton',
134-
center: 'title',
135-
right: 'nextButton',
136-
}}
137-
customButtons={{
138-
prevButton: { click: handlePrev },
139-
nextButton: { click: handleNext },
140-
}}
141-
/>
142-
</div>
143-
<div className='mt-10'>
144-
{selectedDate && <EventCards events={selectedEvents} date={selectedDate} />}
109+
<FullCalendar
110+
ref={calendarRef}
111+
plugins={[dayGridPlugin, interactionPlugin]}
112+
initialView="dayGridMonth"
113+
events={events}
114+
eventClick={handleDateClick}
115+
dayMaxEvents={2} //Max개수까지보이고 나머지는 more
116+
//navLinks={true} // 날짜/주 이름을 클릭하여 뷰를 변경할 수 있습니다.
117+
editable={true} // 이벤트를 수정할 수 있습니다.
118+
eventContent={renderEventContent}
119+
contentHeight={calendarHeight}
120+
titleFormat={{
121+
year: 'numeric',
122+
month: '2-digit',
123+
}}
124+
eventTimeFormat={{
125+
hour: '2-digit',
126+
minute: '2-digit',
127+
meridiem: false,
128+
}}
129+
dayHeaderFormat={{
130+
weekday: 'short',
131+
}}
132+
headerToolbar={{
133+
left: 'prevButton',
134+
center: 'title',
135+
right: 'nextButton',
136+
}}
137+
customButtons={{
138+
prevButton: { click: handlePrev },
139+
nextButton: { click: handleNext },
140+
}}
141+
/>
145142
</div>
143+
<div className="mt-10">{selectedDate && <EventCards events={selectedEvents} date={selectedDate} />}</div>
146144
</div>
147145
);
148146
}
@@ -171,7 +169,7 @@ function EventCards({ events, date }: EventCardsProps) {
171169
if (!date) {
172170
return <div>No date provided</div>; // date가 null인 경우 처리
173171
}
174-
172+
175173
const formattedDate = new Date(date)
176174
.toLocaleDateString('ko-KR', {
177175
year: 'numeric',
@@ -184,22 +182,25 @@ function EventCards({ events, date }: EventCardsProps) {
184182
return (
185183
<div>
186184
<h2 className="ml-2">{formattedDate}</h2>
187-
<div className="flex overflow-x-auto gap-5">
185+
<div className="flex gap-5 overflow-x-auto">
188186
{events.map((event, index) => (
189-
<div key={index} className="min-w-[240px] min-h-[150px] bg-white p-4 text-black relative">
187+
<div key={index} className="relative min-h-[150px] min-w-[240px] bg-white p-4 text-black">
190188
<h3>{event.title}</h3>
191-
<p className="text-xs mt-1">{new Date(event.start).toLocaleTimeString()}</p>
189+
<p className="mt-1 text-xs">{new Date(event.start).toLocaleTimeString()}</p>
192190
{/* 메뉴 버튼 */}
193-
<div className="flex flex-col items-center justify-center cursor-pointer absolute top-2 right-2" onClick={() => setMenuOpen(menuOpen === index ? -1 : index)}>
194-
<div className="w-1 h-1 bg-[#429400] rounded-full mb-1"></div>
195-
<div className="w-1 h-1 bg-[#429400] rounded-full mb-1"></div>
196-
<div className="w-1 h-1 bg-[#429400] rounded-full"></div>
191+
<div
192+
className="absolute right-2 top-2 flex cursor-pointer flex-col items-center justify-center"
193+
onClick={() => setMenuOpen(menuOpen === index ? -1 : index)}
194+
>
195+
<div className="mb-1 h-1 w-1 rounded-full bg-[#429400]"></div>
196+
<div className="mb-1 h-1 w-1 rounded-full bg-[#429400]"></div>
197+
<div className="h-1 w-1 rounded-full bg-[#429400]"></div>
197198
</div>
198199
{menuOpen === index && (
199-
<div className="absolute right-0 top-10 bg-white shadow-md rounded-lg z-10">
200+
<div className="absolute right-0 top-10 z-10 rounded-lg bg-white shadow-md">
200201
<ul>
201-
<li className="p-2 hover:bg-gray-100 cursor-pointer">편집</li>
202-
<li className="p-2 hover:bg-gray-100 cursor-pointer">삭제</li>
202+
<li className="cursor-pointer p-2 hover:bg-gray-100">편집</li>
203+
<li className="cursor-pointer p-2 hover:bg-gray-100">삭제</li>
203204
</ul>
204205
</div>
205206
)}

0 commit comments

Comments
 (0)