Skip to content

Commit

Permalink
fix(datepicker): fixed enabled/diabled dates (#6355)
Browse files Browse the repository at this point in the history
Co-authored-by: Dmitriy Shekhovtsov <valorkin@gmail.com>
  • Loading branch information
SvetlanaMuravlova and valorkin authored Jan 11, 2022
1 parent fbe749c commit f247b18
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 9 deletions.
2 changes: 1 addition & 1 deletion src/datepicker/engine/flag-months-calendar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export function flagMonthsCalendar(
const isDisabled =
options.isDisabled ||
isDisabledDate(month.date, options.datesDisabled) ||
isEnabledDate(month.date, options.datesEnabled) ||
isEnabledDate(month.date, options.datesEnabled, 'month') ||
isMonthDisabled(month.date, options.minDate, options.maxDate);

if (!options.selectedDate && options.selectedRange) {
Expand Down
12 changes: 4 additions & 8 deletions src/datepicker/utils/bs-calendar-utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -53,28 +53,24 @@ export function isYearDisabled(date: Date, min?: Date, max?: Date): boolean {
return minBound || maxBound || false;
}

export function isDisabledDate(date?: Date, datesDisabled?: Date[], unit?: string): boolean {
export function isDisabledDate(date?: Date, datesDisabled?: Date[], unit?: 'year' | 'date' | 'month'): boolean {
if (!datesDisabled || !isArray(datesDisabled) || !datesDisabled.length) {
return false;
}

if (unit && unit === 'year') {
if (unit && unit === 'year' && !datesDisabled[0].getDate()) {
return datesDisabled.some((dateDisabled: Date) => isSame(date, dateDisabled, 'year'));
}

return datesDisabled.some((dateDisabled: Date) => isSame(date, dateDisabled, 'date'));
}

export function isEnabledDate(date?: Date, datesEnabled?: Date[], unit?: string): boolean {
export function isEnabledDate(date?: Date, datesEnabled?: Date[], unit?: 'year' | 'date' | 'month'): boolean {
if (!datesEnabled || !isArray(datesEnabled) || !datesEnabled.length) {
return false;
}

if (unit && unit === 'year') {
return !datesEnabled.some((dateDisabled: Date) => isSame(date, dateDisabled, 'year'));
}

return !datesEnabled.some((enabledDate: Date) => isSame(date, enabledDate, 'date'));
return !datesEnabled.some((enabledDate: Date) => isSame(date, enabledDate, unit || 'date'));
}

export function getYearsCalendarInitialDate(state: BsDatepickerState, calendarIndex = 0): Date | undefined {
Expand Down

0 comments on commit f247b18

Please sign in to comment.