UNPKG

react-native-week-schedule-1

Version:
104 lines 2.69 kB
import type { ReactNode, RefObject } from 'react'; import type { SharedValue } from 'react-native-reanimated'; export * from './schedule/components/schedule/index'; export * from './schedule/utils'; export * from './schedule/hooks/useTableItem'; export interface IColors { background: string; card: string; title: string; text: string; text_inverted: string; border: string; notification: string; primary: string; primary_active: string; } export interface IData { id?: string; title?: string; /** * @description ISOString */ date: string; duration: number; color?: string; } export type OnDataPress<T> = (value: T) => void; export type ScrollOnDrag = (destination: number) => void; export type OnDragEnd<T> = (value: { time: number; day: number; date: string; item: T; }) => void; export type OnSlotPress = (value: { day: number; time: string; date?: string; }) => void; export interface IRenderTimeColumnProps { hours: string[]; } export type RenderTimeColumn = (props: IRenderTimeColumnProps) => ReactNode; export interface IRenderGridProps { dates?: string[]; hours: string[]; onSlotPress?: (value: { day: number; time: string; date?: string; }) => void; } export type RenderGrid = (props: IRenderGridProps) => ReactNode; export interface IRenderItemProps<T extends IData> { overlappingIds: Array<string | undefined>; item: T; currentItem?: T; dataKey: keyof T; titleKey: keyof T; scrollY: SharedValue<number>; contentHeight: number; onPress?: (value: T) => void; scrollOnDrag: (destination: number) => void; onDragEnd?: OnDragEnd<T>; } export type RenderItem = <T extends IData>(props: IRenderItemProps<T>) => ReactNode; export interface IRenderHeaderProps { dates?: string[]; weekDays: string[]; } export type RenderHeader = (props: IRenderHeaderProps) => ReactNode; export interface IScheduleProps<T extends IData> { isTodayColumnShown?: boolean; /** * @description ISOString */ date?: string; /** * @default id */ dataKey?: keyof T; /** * @default title */ titleKey?: keyof T; colors?: { [key in keyof IColors]?: string; }; tableOffset: RefObject<number>; /** * @description * @date - ISOString */ data: T[]; currentItem?: T; onSlotPress?: OnSlotPress; onDataPress?: OnDataPress<T>; onDragEnd?: OnDragEnd<T>; renderItem?: RenderItem; renderTimeColumn?: RenderTimeColumn; renderGrid?: RenderGrid; renderHeader?: RenderHeader; } //# sourceMappingURL=index.d.ts.map