A simple and customizable React Native component for displaying and interacting with Gregorian calendar dates.
- 💡 100% Typescript
- ⚡️ Build with
@shopify/flashlist
for faster list rendering - 🕑 Works in all timezones
- 🎨 Fully customizable with example use cases
- 🈲 Supports localization
- 🚀 DX, UX and Performance in one lightweight bundle
- 🗓️ Multiview calendars (
Week
✅,Month
✅, Yearly(coming soon)⚙️) - 👨🏽💻 Works in every RN project including react native web
Vio.com | Airbnb |
---|---|
Priceline | Booking.com |
---|---|
Localized | Performance |
---|---|
Multiview (Week & Year) | Schedule |
---|---|
To install the package, use npm or yarn:
npm install @fowusu/calendar-kit
or
yarn add @fowusu/calendar-kit
⚠️ If you plan usingCalendarList
then you need to install@shopify/flash-list
yarn add @shopify/flash-list
# pod installation for iOS before building app
cd ios; pod install
Here’s a basic example of how to use the @fowusu/calendar-kit
package:
import React, { useCallback, useState } from "react";
import { Calendar, toLocaleDateString } from "@fowusu/calendar-kit";
const today = new Date();
const todayDateString = toLocaleDateString(today);
const CalendarComponent = () => {
const [selectedDay, setSelectedDay] = useState<string>();
const onDayPress = useCallback((dateString) => {
setSelectedDay(dateString);
}, []);
return (
<Calendar
date={todayDateString}
markedDates={[selectedDay]}
onDayPress={onDayPress}
/>
);
};
import React, { useCallback, useState } from "react";
import {CalendarList, toLocaleDateString} from "@fowusu/calendar-kit";
const today = new Date();
const todayDateString = toLocaleDateString(today);
const CalendarListComponent = () => {
const [selectedDay, setSelectedDay] = useState<string>();
const onDayPress = useCallback((dateString) => {
setSelectedDay(dateString);
}, []);
return (
<CalendarList
currentDate={todayDateString}
estimatedCalendarSize={{
fiveWeekCalendarSize: 400
}}
markedDates={[selectedDay]}
futureMonthsCount={12}
pastMonthsCount={0}
onDayPress={onDayPress}
/>
);
};
See our API Reference docs
Contributions are welcome! Please see the CONTRIBUTING.md for guidelines.