4주차 개인 프로젝트 '나만의 캘린더' 만들기
"Scheduler"
📌필수 구현 기능
✅ 게시글 목록 페이지
✅ 게시글 작성 페이지
📌 기능 구현
순한맛 과제와 매운맛 과제가 있었는데 고민 없이 매운맛을 고르고 시작을 하게 되었다.
fullcalendar 라이브러리를 사용하여 뼈대를 구성하였다.

import React from "react";
import FullCalendar from "@fullcalendar/react"; // must go before plugins
import dayGridPlugin from "@fullcalendar/daygrid";
import interactionPlugin from '@fullcalendar/interaction'; // a plugin!
import Grid from "../elements/Grid";
import SchDetail from "./SchDetail";
const Calendar = (props) => {
const handleDateClick = (arg) => { // bind with an arrow function
console.log(arg)
}
// 클릭 시 이벤트 정보 받아옴
const handleEventClick = (clickInfo) => {
console.log(clickInfo.event.id) // id 값 나옴
}
return (
<Grid width="70%" padding="30px">
<FullCalendar
plugins={[dayGridPlugin,interactionPlugin]}
initialView="dayGridMonth"
selectable = {true}
dateClick={handleDateClick}
eventClick={handleEventClick}
select={handleDateSelect}
weekends={true}
events={sch_list}
height="90vh"
/>
</Grid>
);
};
export default Calendar;
완성되어있는 라이브러리를 가져다 쓰는거라 쉽게 끝날 줄 알았는데 사용법을 모르는 상태에서 적용 하려니 계속 적용이 안되서 공식문서를 한참을 들여다 보았다.
이정도면 공식문서에 되게 잘 나와있는건가? 싶다가도 예제 부분은 조금 부족한게 아닌가 하는 생각이 들었다. 물론 내 기준...
그렇게 사용법을 알아가다 보니 시간이 늦기도 해서 각 페이지의 기능을 위한 View를 만드는 것을 오늘의 목표로 정했다.
일정 추가 페이지

일정 상세 팝업

그냥 생각나는 대로 팝업창을 구현 했는데 팝업 시 주변을 어둡게 하는 방법을 찾아보다가 react-modal 이라는 패키지가 있다는 것을 알게 되어서 기능 구현을 마치고 적용 시켜 보러고 한다.