Skip to content

Commit

Permalink
[PLAY-918] DatePicker Disabled Dates Conflict (#2648)
Browse files Browse the repository at this point in the history
Allows you to pass multiple disabled date types to datepicker
  • Loading branch information
nidaqg authored Jul 18, 2023
1 parent 553a3e2 commit fe7ecc0
Showing 1 changed file with 37 additions and 31 deletions.
68 changes: 37 additions & 31 deletions playbook/app/pb_kits/playbook/pb_date_picker/date_picker_helper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -71,13 +71,42 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
}
}
const disabledParser = () => {
if (disableDate && disableDate.length > 0) {
return disableDate
} else if (disableRange && disableRange.length > 0) {
return disableRange
} else {
return []
}
const disabledArray=[]

disableDate && disableDate.length > 0 && disabledArray.push(...disableDate)
disableRange && disableRange.length > 0 && disabledArray.push(...disableRange)
disableWeekdays && disableWeekdays.length > 0 && disabledArray.push(...disabledWeekDays())

return disabledArray
}

const disabledWeekDays = () => {
return (
[
(date:any) => {
const weekdayObj: {
[day: string]: number
} = {
Sunday: 0,
Monday: 1,
Tuesday: 2,
Wednesday: 3,
Thursday: 4,
Friday: 5,
Saturday: 6,
}
return (
date.getDay() === weekdayObj[disableWeekdays[0]] ||
date.getDay() === weekdayObj[disableWeekdays[1]] ||
date.getDay() === weekdayObj[disableWeekdays[2]] ||
date.getDay() === weekdayObj[disableWeekdays[3]] ||
date.getDay() === weekdayObj[disableWeekdays[4]] ||
date.getDay() === weekdayObj[disableWeekdays[5]] ||
date.getDay() === weekdayObj[disableWeekdays[6]]
)
},
]
)
}
const calendarResizer = () => {
const cal = document.querySelector(`#cal-${pickerId}.open`) as HTMLElement
Expand Down Expand Up @@ -127,30 +156,7 @@ const datePickerHelper = (config: DatePickerConfig, scrollContainer: string | HT
disableMobile: true,
dateFormat: getDateFormat(),
defaultDate: defaultDateGetter(),
disable: disableWeekdays && disableWeekdays.length > 0 ? [
(date) => {
const weekdayObj: {
[day: string]: number
} = {
Sunday: 0,
Monday: 1,
Tuesday: 2,
Wednesday: 3,
Thursday: 4,
Friday: 5,
Saturday: 6,
}
return (
date.getDay() === weekdayObj[disableWeekdays[0]] ||
date.getDay() === weekdayObj[disableWeekdays[1]] ||
date.getDay() === weekdayObj[disableWeekdays[2]] ||
date.getDay() === weekdayObj[disableWeekdays[3]] ||
date.getDay() === weekdayObj[disableWeekdays[4]] ||
date.getDay() === weekdayObj[disableWeekdays[5]] ||
date.getDay() === weekdayObj[disableWeekdays[6]]
)
},
] : disabledParser(),
disable: disabledParser(),
enableTime,
locale: {
rangeSeparator: ' to '
Expand Down

0 comments on commit fe7ecc0

Please # to comment.