Skip to content

Commit

Permalink
fix: min/maxDate should also blocked by typing (#802)
Browse files Browse the repository at this point in the history
* test: test driven

* fix: not exceed boundary
  • Loading branch information
zombieJ authored Apr 23, 2024
1 parent 90f8619 commit c4ffe36
Show file tree
Hide file tree
Showing 4 changed files with 51 additions and 35 deletions.
18 changes: 14 additions & 4 deletions docs/examples/debug.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -45,10 +45,20 @@ const dateFnsSharedLocale = {
export default () => {
return (
<div>
{/* <RangePicker {...sharedLocale} style={{ width: 400 }} showTime />
<RangePicker {...sharedLocale} style={{ width: 400 }} showTime showMinute={false} /> */}
<SinglePicker {...dateFnsSharedLocale} style={{ width: 400 }} multiple placeholder="good" />
<SinglePicker {...dateFnsSharedLocale} style={{ width: 400 }} placeholder="good" />
<input defaultValue="2000-01-01" />
<RangePicker
{...sharedLocale}
style={{ width: 400 }}
onChange={(val) => console.error('>>>>>>>', val)}
/>
{/* <RangePicker {...sharedLocale} style={{ width: 400 }} showTime showMinute={false} /> */}
{/* <SinglePicker {...dateFnsSharedLocale} style={{ width: 400 }} multiple placeholder="good" /> */}
<SinglePicker
{...sharedLocale}
style={{ width: 400 }}
minDate={dayjs()}
onChange={(val) => console.error('>>>>>>>', val)}
/>
</div>
);
};
30 changes: 0 additions & 30 deletions src/PickerInput/hooks/useDisabledBoundary.ts
Original file line number Diff line number Diff line change
Expand Up @@ -43,35 +43,5 @@ export default function useDisabledBoundary<DateType extends object = any>(
return false;
});

// const isInValidBoundary: IsInvalidBoundary<DateType> = (date, type, from) => {
// const toBoundaryDate = (boundary?: LimitDate<DateType>) =>
// typeof boundary === 'function'
// ? boundary({
// from,
// })
// : boundary;

// const mergedMinDate = toBoundaryDate(minDate);
// const mergedMaxDate = toBoundaryDate(maxDate);

// if (
// mergedMinDate &&
// generateConfig.isAfter(mergedMinDate, date) &&
// !isSame(generateConfig, locale, mergedMinDate, date, type)
// ) {
// return true;
// }

// if (
// mergedMaxDate &&
// generateConfig.isAfter(date, mergedMaxDate) &&
// !isSame(generateConfig, locale, mergedMaxDate, date, type)
// ) {
// return true;
// }

// return false;
// };

return mergedDisabledDate;
}
7 changes: 6 additions & 1 deletion src/PickerInput/hooks/useFilledProps.ts
Original file line number Diff line number Diff line change
Expand Up @@ -198,7 +198,12 @@ export default function useFilledProps<
);

// ====================== Invalidate ======================
const isInvalidateDate = useInvalidate(generateConfig, picker, disabledDate, mergedShowTime);
const isInvalidateDate = useInvalidate(
generateConfig,
picker,
disabledBoundaryDate,
mergedShowTime,
);

// ======================== Merged ========================
const mergedProps = React.useMemo(
Expand Down
31 changes: 31 additions & 0 deletions tests/new-range.spec.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import type { RangePickerProps } from '../src';
import zh_CN from '../src/locale/zh_CN';
import {
closePicker,
DayPicker,
DayRangePicker,
findCell,
getDay,
Expand Down Expand Up @@ -1212,6 +1213,36 @@ describe('NewPicker.Range', () => {
openPicker(container);
expect(document.querySelector('.rc-picker-header-view').textContent).toBe('1990年8月');
});

it('typing should not exceed boundary', () => {
const onChange = jest.fn();
const { container } = render(
<DayPicker minDate={getDay('2024-01-01')} onChange={onChange} />,
);
const inputEle = container.querySelector('input');

// Out of range
fireEvent.change(inputEle, {
target: {
value: '2000-01-01',
},
});
fireEvent.keyDown(inputEle, {
key: 'Enter',
});
expect(onChange).not.toHaveBeenCalled();

// In range
fireEvent.change(inputEle, {
target: {
value: '2024-03-03',
},
});
fireEvent.keyDown(inputEle, {
key: 'Enter',
});
expect(onChange).toHaveBeenCalled();
});
});

it('double click now button', () => {
Expand Down

0 comments on commit c4ffe36

Please sign in to comment.