UNPKG

@mohamadkh75/react-native-jalali-datepicker

Version:

React Native Jalali DatePicker component for both Android and iOS

66 lines (59 loc) 1.7 kB
import React, { memo } from 'react'; import { FlatList } from 'react-native'; import { Day } from './Day'; import { fullDate, getDays, isBefore, isAfter } from '../utils'; const Calendar = memo( ({ year, month, selected, onDateChange, dateSeparator, minDate, maxDate, dayStyle, selectedDayStyle, selectedDayColor, dayTextStyle, selectedDayTextColor, dayTextColor, disabledTextColor }) => { const isSelected = day => selected == fullDate(year, month, day, dateSeparator); const isDisabled = day => { const today = fullDate(year, month, day, dateSeparator); return ( isBefore(today, minDate, dateSeparator) || isAfter(today, maxDate, dateSeparator) ); }; const onChange = day => () => onDateChange(fullDate(year, month, day, dateSeparator)); const renderDay = ({ item }) => ( <Day item={item} isSelected={isSelected(item)} onDateChange={onChange(item)} disabled={isDisabled(item)} dayStyle={dayStyle} selectedDayStyle={selectedDayStyle} selectedDayColor={selectedDayColor} dayTextStyle={dayTextStyle} selectedDayTextColor={selectedDayTextColor} dayTextColor={dayTextColor} disabledTextColor={disabledTextColor} /> ); return ( <FlatList style={{ flex: 1, transform: [{ rotateY: '180deg' }] }} data={getDays(year, month)} renderItem={renderDay} keyExtractor={item => `${year}/${month}/${item}`} numColumns={7} /> ); } ); export { Calendar };