|
|
|
@ -1,24 +1,52 @@
|
|
|
|
|
import React from 'react';
|
|
|
|
|
import { DatePicker, Space, Typography } from 'antd';
|
|
|
|
|
import type { DatePickerProps } from 'antd';
|
|
|
|
|
import type { Dayjs } from 'dayjs';
|
|
|
|
|
|
|
|
|
|
const { RangePicker } = DatePicker;
|
|
|
|
|
|
|
|
|
|
const getYearMonth = (date: Dayjs) => date.year() * 12 + date.month();
|
|
|
|
|
|
|
|
|
|
// Disabled 7 days from the selected date
|
|
|
|
|
const disabled7DaysDate: DatePickerProps['disabledDate'] = (current, { from }) => {
|
|
|
|
|
const disabled7DaysDate: DatePickerProps['disabledDate'] = (current, { from, type }) => {
|
|
|
|
|
if (from) {
|
|
|
|
|
return Math.abs(current.diff(from, 'days')) >= 7;
|
|
|
|
|
const minDate = from.add(-6, 'days');
|
|
|
|
|
const maxDate = from.add(6, 'days');
|
|
|
|
|
|
|
|
|
|
switch (type) {
|
|
|
|
|
case 'year':
|
|
|
|
|
return current.year() < minDate.year() || current.year() > maxDate.year();
|
|
|
|
|
|
|
|
|
|
case 'month':
|
|
|
|
|
return (
|
|
|
|
|
getYearMonth(current) < getYearMonth(minDate) ||
|
|
|
|
|
getYearMonth(current) > getYearMonth(maxDate)
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
return Math.abs(current.diff(from, 'days')) >= 7;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// Disabled 6 months from the selected date
|
|
|
|
|
const disabled6MonthsDate: DatePickerProps['disabledDate'] = (current, { from }) => {
|
|
|
|
|
const disabled6MonthsDate: DatePickerProps['disabledDate'] = (current, { from, type }) => {
|
|
|
|
|
if (from) {
|
|
|
|
|
const curMonth = current.year() * 12 + current.month();
|
|
|
|
|
const fromMonth = from.year() * 12 + from.month();
|
|
|
|
|
return Math.abs(fromMonth - curMonth) >= 6;
|
|
|
|
|
const minDate = from.add(-5, 'months');
|
|
|
|
|
const maxDate = from.add(5, 'months');
|
|
|
|
|
|
|
|
|
|
switch (type) {
|
|
|
|
|
case 'year':
|
|
|
|
|
return current.year() < minDate.year() || current.year() > maxDate.year();
|
|
|
|
|
|
|
|
|
|
default:
|
|
|
|
|
return (
|
|
|
|
|
getYearMonth(current) < getYearMonth(minDate) ||
|
|
|
|
|
getYearMonth(current) > getYearMonth(maxDate)
|
|
|
|
|
);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false;
|
|
|
|
|