0.1.15 • Published 8 months ago
react-native-switch-month-week v0.1.15
React Native Switch Month Week
A declarative cross-platform React Native calendar component for iOS and Android.
Features ✨
- Pure JS. No Native code required
- Customization of theme
- Detailed documentation and examples
- Support multiple languages
- Swipe to switch month and week
- Support Agenda List
Getting Started 🔧
Here's how to get started with react-native-switch-month-week in your React Native project:
Install the package:
Using npm
:
$ npm install --save react-native-switch-month-week
Using Yarn
:
$ yarn add react-native-switch-month-week
React Native Switch Month Week is implemented in JavaScript, so no native module linking is required.
Example 🚀
Please yarn android before pushing changes.
import { MonthWeekCalendar, MonthWeekCalendarProvider } from 'react-native-switch-month-week';
const [theme, setTheme] = useState<any>({
todayTextColor: '#3CA0AE',
selectedTodayButtonBackgroundColor: '#3CA0AE',
dotBackgroundColor: '#3CA0AE',
agendaItemTextColor: '#3CA0AE',
})
const [date, setDate] = useState('2023-04-13')
const [currentMonth, setCurrentMonth] = useState<string>(moment().startOf('month').format('YYYY-MM-DD'))
const [markedDates, setMarkedDates] = useState({
'2023-05-13': { marked: true, markedColor: '#000', data: { title: 'Code optimization', description: '5:00- 5:00 pm 11F high-speed conference room' } }
})
return (
<View style={{ flex: 1 }}>
<View style={{ backgroundColor: 'white' }}>
<Text style={{ padding: 12, fontSize: 18, fontWeight: 'bold', color: 'red' }}>{currentMonth.slice(0, -3)}</Text>
</View>
<MonthWeekCalendarProvider
defaultDate='2021-04-13'
onMonthChange={(date, type) => {
setCurrentMonth(date)
}}>
<MonthWeekCalendar
locale={'tw'}
theme={theme}
markedDates={markedDates}
/>
</MonthWeekCalendarProvider>
</View>
)
API
MonthWeekCalendarProvider
Prop | Description | Default |
---|---|---|
defaultDate | Initial date in 'yyyy-MM-dd' format. | Default = now |
onDateChanged | Callback for date change event | |
onMonthChange | Callback for month change event |
MonthWeekCalendar
Prop | Description | Default |
---|---|---|
locale | i18n | en |
calendarWidth | Width of calendar | windowWidth |
markedDates | Calendar mark | drill down |
theme | Specify theme properties to override specific styles for calendar parts | drill down |
customReservation | User-defined reserved areas | () => JSX.Element |
onAgendaItemPress | Agenda click event | () => void |
Locale
type Locale = 'cn' | 'hk' | 'en' | 'tw';
markedDates
// key = 'yyyy-MM-dd'
export interface MarkedDates {
[key: string]: {
marked: boolean;
markedColor: string;
data?: MarkedData
}
}
export interface MarkedData {
title: string;
description: string;
}
Theme
export interface ITheme {
containerBackgroundColor: string;
calendarBackgroundColor: string;
reservationBackgroundColor: string;
todayTextColor: string;
selectedTodayButtonBackgroundColor: string;
selectedButtonBackgroundColor: string;
dotBackgroundColor: string;
disabledButtonTextColor: string;
dotSize: number;
knobShadowColor: string;
buttonTextColor: string;
dayNameTextColor: string;
agendaItemBackgroundColor: string;
agendaItemTextColor: string;
}
License
React Native Calendars is MIT licensed
0.1.15
8 months ago
0.1.12
8 months ago
0.1.11
8 months ago
0.1.10
9 months ago
0.1.9
9 months ago
0.1.8
9 months ago
0.1.7
9 months ago
0.1.6
10 months ago
0.1.5
10 months ago
0.1.3
10 months ago
0.1.2
10 months ago
0.1.1
10 months ago
0.1.0
10 months ago
0.0.15
10 months ago
0.0.13
10 months ago
0.0.12
10 months ago
0.0.11
10 months ago
0.0.10
11 months ago
0.0.9
11 months ago
0.0.8
11 months ago
0.0.7
11 months ago
0.0.6
11 months ago
0.0.5
11 months ago
0.0.4
11 months ago
0.0.3
12 months ago
0.0.1
12 months ago