UNPKG

@lad-tech/mobydick-calendar

Version:

React Native components library focused on usability, accessibility and developer experience

96 lines (83 loc) 2.13 kB
import {MarkingProps} from 'react-native-calendars/src/calendar/day/marking'; import {CalendarProps} from 'react-native-calendars'; import {ReactElement} from 'react'; import {IHorizontalButtonsView, TypographyProp} from '@lad-tech/mobydick-core'; import {MarkedDates} from 'react-native-calendars/src/types'; export interface IMarkedTypes { [key: string]: MarkingProps; } export interface IMarkedDates { dates: IMarkedTypes; fromDate: Date | null; toDate: Date | null; lengthMarkedDates?: number; } export type colorElem = { color: string; textColor: string; }; export type IColors = { colorPrime: colorElem; colorSoft: colorElem; colorToday: colorElem; }; export interface IDateRange { dateStart: string; dateEnd: string; lengthDateRange: number; } export enum IButtonView { small = 'small', large = 'large', } interface IInitialDate { fromDate: string; toDate?: string; } export interface ICalendar extends CalendarProps { onDateRangeChange?: (dateRange: IDateRange) => void; bottomView?: ReactElement; defaultLocale?: string; isClear?: boolean; isShowToday?: boolean; localeConfig?: ILocaleConfig | undefined; isPeriod?: boolean; initialRange?: IInitialDate; dottedDates?: Date[]; maxLengthDateRange?: number; disabledDates?: MarkedDates; } export interface IModalCalendar extends ICalendar, Partial<IHorizontalButtonsView> { onDateRangeChange?: (dateRange?: IDateRange) => void; titlePrefix?: string; titleSuffix?: string; titleFont?: TypographyProp; descriptionText?: string; descriptionFont?: TypographyProp; buttonView?: IButtonView; isCounter?: boolean; onAcceptDateRangeChange?: (dateRange: IDateRange) => void; } export interface ILocaleConfig { monthNames: string[]; monthNamesShort: string[]; dayNames: string[]; dayNamesShort: string[]; today?: string; } export enum ISelectionState { days = 'days', months = 'months', years = 'years', } export enum IDirection { right = 'right', left = 'left', none = 'none', } export interface ITitle { currMonth?: string | undefined; currYear?: string | undefined; }