@gem-mine/rmc-calendar
Version:
React Mobile Calendar Component(web and react-native)
43 lines (42 loc) • 1.6 kB
TypeScript
import * as React from 'react';
import { Models } from './DataTypes';
import PropsType from './CalendarPanelProps';
export interface StateType {
months: Models.MonthData[];
slideIndex: number;
}
export default abstract class CalendarPanel extends React.Component<PropsType, StateType> {
static defaultProps: PropsType;
visibleMonth: Models.MonthData[];
touchParams: {
startY: number;
startTime: number;
endTime: number;
lastY: number;
lastTime: number;
};
abstract genMonthComponent: (data: Models.MonthData) => React.ReactNode;
constructor(props: PropsType);
shouldComponentUpdate(nextProps: PropsType, nextState: StateType, nextContext: any): boolean;
componentWillReceiveProps(nextProps: PropsType): void;
componentWillMount(): void;
genMonth(): void;
getMonthDate(date?: Date, addMonth?: number): {
firstDate: Date;
lastDate: Date;
};
canLoadPrev(): boolean;
canLoadNext(): boolean;
getDateWithoutTime: (date?: Date | undefined) => number;
genWeekData: (firstDate: Date) => Models.CellData[][];
genMonthData(date?: Date, addMonth?: number, isSwiper?: boolean): Models.MonthData;
inDate(date: number, tick: number): boolean;
selectDateRange: (startDate: Date, endDate?: Date | undefined, clear?: boolean) => void;
computeVisible: (clientHeight: number, scrollTop: number) => boolean;
createOnScroll: () => (data: {
full: number;
client: number;
top: number;
}) => void;
onCellClick: (day: Models.CellData) => void;
}