Customize
You can customize the FastCalendar component in several ways to fit your application's needs.
IN PROGRESS
This prop is still under development. Please wait for a pull request to be merged before using it.
Custom Components
You can override the default components used in the calendar by providing a components prop. This allows you to customize the appearance and behavior of various parts of the calendar.
import { FastCalendar, CalendarComponents } from "fast-react-calendar";
import { MyCustomHeader } from "./MyCustomHeader";
const customComponents: CalendarComponents = {
Header: MyCustomHeader,
// You can override other components as needed
};
const MyCalendar = () => {
return (
<FastCalendar
components={customComponents}
// other props...
/>
);
};Custom Styles
You can customize the styles of the calendar using the sx prop, which accepts a style object compatible with MUI's styling system. This allows you to apply custom styles to the calendar and its components.
const MyCalendar = () => {
return (
<FastCalendar
sx={{
// Custom styles here
backgroundColor: "lightblue",
"& .fast-calendar-header": {
color: "darkblue",
},
}}
// other props...
/>
);
};Custom Events
You can customize how events are displayed in the calendar by providing a custom EventComponent. This component will receive the event data and can render it as needed.
import { FastCalendar, CalendarEvent, CalendarEventComponent } from "fast-react-calendar";
const MyCustomEvent: CalendarEventComponent = ({ event }) => {
return (
<div style={{ backgroundColor: event.color }}>
<strong>{event.title}</strong>
<p>{event.description}</p>
</div>
);
};
const MyCalendar = () => {
return (
<FastCalendar
components={{
Event: MyCustomEvent
}}
// other props...
/>
);
};Custom Add Event Dialog
You can customize the "Add Event" dialog by providing a custom AddEventDialog component. This allows you to change the form fields, layout, and styling of the dialog.
import { FastCalendar, AddEventDialogComponent } from "fast-react-calendar";
const MyCustomAddEventDialog: AddEventDialogComponent = ({ onClose, onAdd })
=> {
return (
<div>
<h2>Add Custom Event</h2>
{/* Custom form fields here */}
<button onClick={onAdd}>Add Event</button>
<button onClick={onClose}>Cancel</button>
</div>
);
};
const MyCalendar = () => {
return (
<FastCalendar
components={{
AddEventDialog: MyCustomAddEventDialog,
}}
// other props...
/>
);
};