Skip to content

Commit 3455f25

Browse files
committed
feat(datepicker): Watch for changes to disabled-dates
1 parent cbdde98 commit 3455f25

File tree

2 files changed

+27
-10
lines changed

2 files changed

+27
-10
lines changed

src/components/Datepicker.vue

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -359,6 +359,26 @@ export default {
359359
},
360360
},
361361
watch: {
362+
disabledDates: {
363+
// eslint-disable-next-line complexity
364+
handler() {
365+
const selectedDate = this.selectedDate || this.parseValue(this.value)
366+
if (!selectedDate) {
367+
return
368+
}
369+
370+
const isDateDisabled = this.isDateDisabled(selectedDate)
371+
372+
if (isDateDisabled) {
373+
if (this.selectedDate) {
374+
this.selectDate(null)
375+
}
376+
} else if (this.dateChanged(selectedDate)) {
377+
this.selectDate(selectedDate)
378+
}
379+
},
380+
deep: true,
381+
},
362382
initialView() {
363383
if (this.isOpen) {
364384
this.setInitialView()

test/unit/specs/Datepicker/Datepicker.spec.js

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -255,20 +255,17 @@ describe('Datepicker shallowMounted', () => {
255255
expect(wrapper.emitted('changed-decade')).toBeTruthy()
256256
})
257257

258-
it('clears date on default date disabled', async () => {
258+
it('clears the date when it is disabled', async () => {
259259
const someDate = new Date('2021-01-15')
260-
const wrapperTemp = shallowMount(Datepicker, {
261-
propsData: {
262-
value: someDate,
263-
disabledDates: {
264-
to: addDays(someDate, 1),
265-
},
260+
261+
await wrapper.setProps({
262+
value: someDate,
263+
disabledDates: {
264+
to: addDays(someDate, 1),
266265
},
267266
})
268267

269-
expect(wrapperTemp.vm.selectedDate).toEqual(null)
270-
271-
wrapperTemp.destroy()
268+
expect(wrapper.vm.selectedDate).toBeNull()
272269
})
273270

274271
it('sets the transition correctly', async () => {

0 commit comments

Comments
 (0)