mobile-react-infinite-calendar
Version:
A mobile-optimized infinite scroll calendar component for React
37 lines (36 loc) • 1.29 kB
TypeScript
/**
* 동적 이벤트 로딩 훅
* 인피니티 스크롤 시 자동으로 이벤트를 미리 로드하여 지연 없는 UX 제공
*/
import type { CalendarEvent } from '../types';
interface UseDynamicEventsProps {
dynamicEvents?: (startDate: string | Date, endDate: string | Date) => Promise<any[]>;
infiniteMonths: Date[];
enableDynamicLoading: boolean;
dynamicEventMapping?: {
id?: string;
title?: string;
date?: string;
startTime?: string;
endTime?: string;
color?: string;
description?: string;
};
dynamicEventTransform?: (apiData: any) => CalendarEvent;
onDynamicEventLoad?: (startDate: Date, endDate: Date, events: CalendarEvent[]) => void;
}
export declare function useDynamicEvents({ dynamicEvents, infiniteMonths: initialInfiniteMonths, enableDynamicLoading, dynamicEventMapping, dynamicEventTransform, onDynamicEventLoad }: UseDynamicEventsProps): {
dynamicEvents: CalendarEvent<any>[];
loadingMonths: string[];
loadedMonths: string[];
errorMonths: {
[k: string]: string;
};
isLoading: boolean;
updateInfiniteMonths: (newInfiniteMonths: Date[]) => void;
cacheInfo: {
cacheSize: number;
cachedMonths: string[];
};
};
export {};