import React, { useState } from "react"; import { formatDate } from "@fullcalendar/core"; import FullCalendar from "@fullcalendar/react"; import dayGridPlugin from "@fullcalendar/daygrid"; import timeGridPlugin from "@fullcalendar/timegrid"; import interactionPlugin from "@fullcalendar/interaction"; import { getEvents, createEventId } from "./TaskDataHandler"; export default class Calendar extends React.Component { state = { weekendsVisible: true, currentEvents: [], }; render() { return (
{this.renderSidebar()}
); } renderSidebar() { return (

Instructions

All Events ({this.state.currentEvents.length})

); } handleWeekendsToggle = () => { this.setState({ weekendsVisible: !this.state.weekendsVisible, }); }; handleDateSelect = selectInfo => { let title = prompt("Please enter a new title for your event"); let calendarApi = selectInfo.view.calendar; calendarApi.unselect(); // clear date selection if (title) { calendarApi.addEvent({ id: createEventId(), title, start: selectInfo.startStr, end: selectInfo.endStr, allDay: selectInfo.allDay, }); } }; handleEventClick = clickInfo => { if (confirm(`Are you sure you want to delete the event '${clickInfo.event.title}'`)) { clickInfo.event.remove(); } }; handleEvents = events => { this.setState({ currentEvents: events, }); }; } function renderEventContent(eventInfo) { return ( <> {eventInfo.timeText} {eventInfo.event.title} ); } function renderSidebarEvent(event) { return (
  • {formatDate(event.start, { year: "numeric", month: "short", day: "numeric" })} {event.title}
  • ); }