0.1.15 • Published 8 months ago

react-native-switch-month-week v0.1.15

Weekly downloads
-
License
-
Repository
-
Last release
8 months ago

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

PropDescriptionDefault
defaultDateInitial date in 'yyyy-MM-dd' format.Default = now
onDateChangedCallback for date change event
onMonthChangeCallback for month change event

MonthWeekCalendar

PropDescriptionDefault
localei18nen
calendarWidthWidth of calendarwindowWidth
markedDatesCalendar markdrill down
themeSpecify theme properties to override specific styles for calendar partsdrill down
customReservationUser-defined reserved areas() => JSX.Element
onAgendaItemPressAgenda 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