UNPKG

mobile-react-infinite-calendar

Version:

A mobile-optimized infinite scroll calendar component for React

51 lines (50 loc) 1.75 kB
import type { Holiday, LocaleCode, CalendarEvent } from '../types'; export interface MonthData { month: Date; weeks: (Date | null)[][]; eventsByDate: Record<string, CalendarEvent[]>; holidaysByDate: Record<string, Holiday[]>; } interface UseCalendarComposerProps { events: CalendarEvent[]; holidays?: Holiday[]; locale?: LocaleCode | string; holidayServiceKey?: string; } export declare function useCalendarComposer({ events, holidays, locale, holidayServiceKey }: UseCalendarComposerProps): { displayMonth: Date; activeMonth: Date; infiniteMonths: Date[]; monthsData: { month: Date; weeks: (Date | null)[][]; eventsByDate: Record<string, CalendarEvent<any>[]>; holidaysByDate: Record<string, Holiday[]>; }[]; availableHeight: number | null; isCurrentMonthVisible: boolean; isInitialScrollSet: boolean; showDateSelector: boolean; selectedYear: number; selectedMonth: number; showYearDropdown: boolean; showMonthDropdown: boolean; setActiveMonth: (date: Date) => void; setDisplayMonth: (date: Date) => void; setInfiniteMonths: (months: Date[]) => void; setAvailableHeight: (height: number | null) => void; setIsCurrentMonthVisible: (visible: boolean) => void; setIsInitialScrollSet: (value: boolean) => void; openDateSelector: () => void; closeDateSelector: () => void; setShowYearDropdown: () => void; setShowMonthDropdown: () => void; setSelectedYear: (year: number) => void; setSelectedMonth: (month: number) => void; confirmDateSelection: () => void; addPrevMonth: () => void; addNextMonth: () => void; holidayLoading: boolean; autoHolidays: Holiday[]; }; export {};