Skip to content

Commit fe272cf

Browse files
authored
Merge pull request #2776 from innovaccer/develop
Develop
2 parents 50e9d33 + c37d198 commit fe272cf

File tree

2 files changed

+55
-11
lines changed

2 files changed

+55
-11
lines changed

core/components/organisms/datePicker/DatePicker.tsx

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -250,17 +250,21 @@ export class DatePicker extends React.Component<DatePickerProps, DatePickerState
250250
};
251251

252252
const isTodayDisabled = () => {
253-
if (
254-
(dateDisabledBefore && isSameDay(todayDate, dateDisabledBefore)) ||
255-
(dateDisabledAfter && isSameDay(todayDate, dateDisabledAfter))
256-
) {
257-
return false;
258-
}
259-
260-
const isTodayDateDisabled =
261-
(dateDisabledBefore && todayDate < dateDisabledBefore) || (dateDisabledAfter && todayDate > dateDisabledAfter);
253+
const isSameAsDisabledBefore = dateDisabledBefore && isSameDay(todayDate, dateDisabledBefore);
254+
const isSameAsDisabledAfter = dateDisabledAfter && isSameDay(todayDate, dateDisabledAfter);
262255

263-
return isTodayDateDisabled;
256+
return (
257+
(!isSameAsDisabledBefore &&
258+
compareDate(
259+
dateDisabledBefore,
260+
'more',
261+
todayDate.getFullYear(),
262+
todayDate.getMonth(),
263+
todayDate.getDate()
264+
)) ||
265+
(!isSameAsDisabledAfter &&
266+
compareDate(dateDisabledAfter, 'less', todayDate.getFullYear(), todayDate.getMonth(), todayDate.getDate()))
267+
);
264268
};
265269

266270
const todayChipClass = classNames({

core/components/organisms/datePicker/__tests__/DatePicker.test.tsx

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,50 @@ describe('DatePicker component today date chip', () => {
8989
});
9090

9191
it('disable today chip in case of disabledAfter prop', () => {
92-
const todayDate = new Date();
92+
const todayDate = new Date(Date.now());
9393
const { getByTestId } = render(<DatePicker disabledAfter={todayDate} view="date" />);
9494
expect(getByTestId('DesignSystem-Chip--GenericChip')).not.toHaveClass('Chip-action--disabled');
9595
});
96+
97+
it('keeps today chip enabled when disabledBefore is today', () => {
98+
const todayDate = new Date(Date.now());
99+
const { getByTestId } = render(<DatePicker disabledBefore={todayDate} view="date" />);
100+
expect(getByTestId('DesignSystem-Chip--GenericChip')).not.toHaveClass('Chip-action--disabled');
101+
});
102+
103+
it('keeps today chip enabled when disabledAfter is today', () => {
104+
const todayDate = new Date(Date.now());
105+
const { getByTestId } = render(<DatePicker disabledAfter={todayDate} view="date" />);
106+
expect(getByTestId('DesignSystem-Chip--GenericChip')).not.toHaveClass('Chip-action--disabled');
107+
});
108+
109+
it('disables today chip when disabledBefore is tomorrow', () => {
110+
const todayDate = new Date(Date.now());
111+
const disabledBefore = new Date(todayDate);
112+
disabledBefore.setDate(disabledBefore.getDate() + 1);
113+
const { getByTestId } = render(<DatePicker disabledBefore={disabledBefore} view="date" />);
114+
expect(getByTestId('DesignSystem-Chip--GenericChip')).toHaveClass('Chip-action--disabled');
115+
});
116+
117+
it('disables today chip when disabledAfter is yesterday', () => {
118+
const todayDate = new Date(Date.now());
119+
const disabledAfter = new Date(todayDate);
120+
disabledAfter.setDate(disabledAfter.getDate() - 1);
121+
const { getByTestId } = render(<DatePicker disabledAfter={disabledAfter} view="date" />);
122+
expect(getByTestId('DesignSystem-Chip--GenericChip')).toHaveClass('Chip-action--disabled');
123+
});
124+
125+
it('disables today chip for inverted disabled range', () => {
126+
const todayDate = new Date(Date.now());
127+
const disabledBefore = new Date(todayDate);
128+
disabledBefore.setDate(disabledBefore.getDate() + 1);
129+
const disabledAfter = new Date(todayDate);
130+
disabledAfter.setDate(disabledAfter.getDate() - 1);
131+
const { getByTestId } = render(
132+
<DatePicker disabledBefore={disabledBefore} disabledAfter={disabledAfter} view="date" />
133+
);
134+
expect(getByTestId('DesignSystem-Chip--GenericChip')).toHaveClass('Chip-action--disabled');
135+
});
96136
});
97137

98138
describe('renders DatePicker component Event Handlers ', () => {

0 commit comments

Comments
 (0)