@quanxi/ui
Version:
全悉组件库
65 lines (64 loc) • 2.04 kB
TypeScript
import type { CSSProperties } from "react";
import { Dayjs } from "dayjs";
import { PresetValueKey } from "./constant";
import { RangePickerProps as RcRangePickerProps } from "rc-picker";
import { PanelMode } from "rc-picker/es/interface";
import * as React from "react";
interface DateProps {
picker?: "date" | "datetime";
style?: CSSProperties;
disabled?: boolean;
className?: string;
}
export interface DatePickerProps extends DateProps {
value?: number;
defaultValue?: number;
placeholder?: string;
onChange?: (value: number | null, dateString: string | null) => void;
allowClear?: boolean;
disabledDate?: (val: any) => boolean;
renderExtraFooter?: (mode: PanelMode) => React.ReactNode;
showHighLight?: boolean;
}
export type TimeOptionsType = {
label: React.ReactNode;
value: string;
key: string;
};
export type DateOptionsType = {
label: React.ReactNode;
value: string;
key: PresetValueKey;
generate?: () => {
start: number | undefined;
end: number | undefined;
};
};
export type TimeType = {
type: string;
value: string | undefined | null;
timestamp: {
start: Dayjs | number | undefined;
end: Dayjs | number | undefined;
} | null;
};
export type DateFormatType = "hour";
export type QXDateRangePickerProps = DateProps & {
value?: TimeType;
defaultValue?: TimeType;
placeholder?: [string, string];
disabledDate?: (date: Dayjs) => boolean;
onChange?: (time: TimeType) => void;
quickSelectDateOptions?: DateOptionsType[];
quickSelectTimeOptions?: TimeOptionsType[];
showQuickSelect?: boolean;
allowClear?: boolean;
style?: CSSProperties;
showHighLight?: boolean;
extraFooterTime?: React.ReactNode;
open?: boolean;
onOpenChange?: (open: boolean) => void;
dateFormat?: DateFormatType;
};
export type DateRangePickerProps = Omit<RcRangePickerProps<Dayjs>, keyof QXDateRangePickerProps | "generateConfig" | "locale"> & QXDateRangePickerProps;
export {};