react-native-week-schedule-1
Version:
104 lines • 2.69 kB
TypeScript
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