UNPKG

@tchesa/react-native-modern-datepicker

Version:

A customizable calendar, time & month picker for React Native (including Persian Jalaali calendar & locale)

133 lines 5.22 kB
import React, { Dispatch } from 'react'; import { StyleProp, ViewStyle } from 'react-native'; import PropTypes from 'prop-types'; import { Utils } from './Utils'; import { Configs, Mode } from './types'; type ActionType = 'set' | 'toggleMonth' | 'toggleTime'; type Action = { type: ActionType; selectedDate?: string; activeDate?: string; }; type CalendarContextType = { mode: Mode; reverse: boolean; options: Options; utils: Utils; state: [CalendarState, Dispatch<Action>]; onSelectedChange?: (selectedDate: string) => void; onDateChange?: (formattedDate: string) => void; disableDateChange: boolean; isGregorian: boolean; minimumDate: string; maximumDate: string; selectorStartingYear: number; selectorEndingYear: number; onMonthYearChange?: (formattedDate: string) => void; minuteInterval: MinuteInterval; onTimeChange?: (time: string) => void; }; declare const CalendarContext: React.Context<CalendarContextType>; declare const useCalendar: () => CalendarContextType; export type Options = { backgroundColor: string; textHeaderColor: string; textDefaultColor: string; selectedTextColor: string; mainColor: string; textSecondaryColor: string; borderColor: string; defaultFont: string; headerFont: string; textFontSize: number; textHeaderFontSize: number; headerAnimationDistance: number; daysAnimationDistance: number; }; type Props = { onSelectedChange?: (selectedDate: string) => void; onMonthYearChange?: (formattedDate: string) => void; onTimeChange?: (time: string) => void; onDateChange?: (formattedDate: string) => void; current?: string; selected?: string; minimumDate?: string; maximumDate?: string; selectorStartingYear?: number; selectorEndingYear?: number; disableDateChange?: boolean; isGregorian?: boolean; configs?: Configs; reverse?: true | false | 'unset'; options?: Options; mode?: Mode; minuteInterval?: MinuteInterval; style?: StyleProp<ViewStyle>; }; type CalendarState = { activeDate: string; selectedDate: string; monthOpen: boolean; timeOpen: boolean; }; declare const DatePicker: { ({ onSelectedChange, onMonthYearChange, onTimeChange, onDateChange, current, selected, minimumDate, maximumDate, selectorStartingYear, selectorEndingYear, disableDateChange, isGregorian, configs, reverse, options, mode, minuteInterval, style, }: Props): import("react/jsx-runtime").JSX.Element; defaultProps: { onSelectedChange: () => null; onMonthYearChange: () => null; onTimeChange: () => null; onDateChange: () => null; current: string; selected: string; minimumDate: string; maximumDate: string; selectorStartingYear: number; selectorEndingYear: number; disableDateChange: boolean; isGregorian: boolean; configs: {}; reverse: string; options: {}; mode: string; minuteInterval: number; style: {}; }; propTypes: { onSelectedChange: PropTypes.Requireable<(...args: any[]) => any>; onMonthYearChange: PropTypes.Requireable<(...args: any[]) => any>; onTimeChange: PropTypes.Requireable<(...args: any[]) => any>; onDateChange: PropTypes.Requireable<(...args: any[]) => any>; current: PropTypes.Requireable<string>; selected: PropTypes.Requireable<string>; minimumDate: PropTypes.Requireable<string>; maximumDate: PropTypes.Requireable<string>; selectorStartingYear: PropTypes.Requireable<number>; selectorEndingYear: PropTypes.Requireable<number>; disableDateChange: PropTypes.Requireable<boolean>; isGregorian: PropTypes.Requireable<boolean>; configs: PropTypes.Requireable<object>; reverse: PropTypes.Requireable<string | boolean>; options: PropTypes.Requireable<PropTypes.InferProps<{ backgroundColor: PropTypes.Requireable<string>; textHeaderColor: PropTypes.Requireable<string>; textDefaultColor: PropTypes.Requireable<string>; selectedTextColor: PropTypes.Requireable<string>; mainColor: PropTypes.Requireable<string>; textSecondaryColor: PropTypes.Requireable<string>; borderColor: PropTypes.Requireable<string>; defaultFont: PropTypes.Requireable<string>; headerFont: PropTypes.Requireable<string>; textFontSize: PropTypes.Requireable<number>; textHeaderFontSize: PropTypes.Requireable<number>; headerAnimationDistance: PropTypes.Requireable<number>; daysAnimationDistance: PropTypes.Requireable<number>; }>>; mode: PropTypes.Requireable<Mode>; minuteInterval: PropTypes.Requireable<2 | 5 | 1 | 3 | 4 | 6 | 10 | 12 | 15 | 20 | 30 | 60>; style: PropTypes.Requireable<object>; }; }; declare const minuteIntervalArray: readonly [1, 2, 3, 4, 5, 6, 10, 12, 15, 20, 30, 60]; type MinuteInterval = typeof minuteIntervalArray[number]; export { DatePicker, CalendarContext, useCalendar }; //# sourceMappingURL=DatePicker.d.ts.map