123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- import { addMonths, Locale as dateFnsLocale } from 'date-fns';
- import isValidDate from './isValidDate';
- import { compatibleParse } from './parser';
- import isTimestamp from './isTimestamp';
- /**
- * get left panel picker date and right panel picker date
- */
- export default function getDefaultPickerDate(options: GetDefaultPickerValueDateOptions) {
- const { defaultPickerValue, format, dateFnsLocale } = options;
- let nowDate = Array.isArray(defaultPickerValue) ? defaultPickerValue[0] : defaultPickerValue;
- let nextDate = Array.isArray(defaultPickerValue) ? defaultPickerValue[1] : undefined;
- switch (true) {
- case isValidDate(nowDate):
- break;
- case isTimestamp(nowDate):
- nowDate = new Date(nowDate);
- break;
- case typeof nowDate === 'string':
- nowDate = compatibleParse(nowDate as string, format, undefined, dateFnsLocale);
- break;
- default:
- nowDate = new Date();
- break;
- }
- switch (true) {
- case isValidDate(nextDate):
- break;
- case isTimestamp(nextDate):
- nextDate = new Date(nextDate);
- break;
- case typeof nextDate === 'string':
- nextDate = compatibleParse(nextDate as string, format, undefined, dateFnsLocale);
- break;
- default:
- nextDate = addMonths(nowDate as Date, 1);
- break;
- }
- return {
- nowDate: nowDate as Date,
- nextDate: nextDate as Date,
- };
- }
- type BaseValueType = string | number | Date;
- interface GetDefaultPickerValueDateOptions {
- defaultPickerValue?: BaseValueType | BaseValueType[];
- format: string;
- dateFnsLocale: dateFnsLocale
- }
|