DisabledRange.tsx 1.4 KB

123456789101112131415161718192021222324252627282930313233343536
  1. import React from 'react';
  2. import { DatePicker } from '../../../index';
  3. import { DisabledDateType } from '../../index';
  4. import * as dateFns from 'date-fns';
  5. App.storyName = '根据 focus 状态禁用日期';
  6. /**
  7. * test with cy
  8. */
  9. function App() {
  10. const today = new Date('2021-10-20');
  11. const disabledDate: DisabledDateType = (date, options) => {
  12. const { rangeInputFocus } = options;
  13. const baseDate = dateFns.set(today, { hours: 0, minutes: 0, seconds: 0, milliseconds: 0 });
  14. if (rangeInputFocus === 'rangeStart') {
  15. const disabledStart = dateFns.subDays(baseDate, 2);
  16. const disabledEnd = dateFns.addDays(baseDate, 2);
  17. return disabledStart <= date && date <= disabledEnd;
  18. } else if (rangeInputFocus === 'rangeEnd') {
  19. const disabledStart = dateFns.subDays(baseDate, 3);
  20. const disabledEnd = dateFns.addDays(baseDate, 3);
  21. return disabledStart <= date && date <= disabledEnd;
  22. } else {
  23. return false;
  24. }
  25. };
  26. return (
  27. <div>
  28. <h4>{`开始禁用 ${dateFns.format(today, 'yyyy-MM-dd')} 的前 2 日和后 2 日,结束日期禁用当前日期的前 3 天和后 3 天`}</h4>
  29. <DatePicker motion={false} type='dateRange' disabledDate={disabledDate} defaultPickerValue={today} />
  30. </div>
  31. );
  32. }
  33. export default App;