wix-style-react
Version:
53 lines (43 loc) • 1.3 kB
TypeScript
import * as React from 'react';
export type TimeTableInsertPosition = 'start' | 'end' | 'any';
export interface TimeTableItemProps {
disabled: boolean;
draggable: boolean;
}
export interface TimeTableContentRenderFunctionData {
Item: React.FC<TimeTableItemProps>;
disabled: boolean;
draggable: boolean;
}
export type TimeTableContentRenderFunction = (
data: TimeTableContentRenderFunctionData,
) => React.ReactNode;
export interface TimeTableItem {
content: React.ReactNode | TimeTableContentRenderFunction;
disabled?: boolean;
draggable?: boolean;
}
export interface TimeTableColumn {
title: string;
subtitle: string;
disabled?: boolean;
droppable?: boolean;
active?: boolean;
items: TimeTableItem[];
}
export interface TimeTableChangeDetails {
addedToColumnIndex: number;
removedFromColumnIndex: number;
addedItemIndex: number;
removedItemIndex: number;
}
export interface TimeTableProps {
dataHook?: string;
insertPosition?: TimeTableInsertPosition;
addItemButtonLabel?: React.ReactNode;
columns?: TimeTableColumn[];
height?: string | number;
onAdd?(columnIndex: number): void;
onChange?(columns: TimeTableColumn[], details: TimeTableChangeDetails): void;
}
export default class TimeTable extends React.PureComponent<TimeTableProps> {}