From 57823d1a9ecdbf982b7da9a08c5d71ccc9b5f3fc Mon Sep 17 00:00:00 2001 From: Thijs Louisse Date: Thu, 1 Aug 2019 09:41:14 +0200 Subject: [PATCH] fix(calendar): stop disabled date triggering @user-selected-date-changed --- packages/calendar/src/LionCalendar.js | 7 +++---- packages/calendar/test/lion-calendar.test.js | 16 ++++++++++++++++ 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/packages/calendar/src/LionCalendar.js b/packages/calendar/src/LionCalendar.js index e8bd3ff6e..737ddf1c5 100644 --- a/packages/calendar/src/LionCalendar.js +++ b/packages/calendar/src/LionCalendar.js @@ -454,11 +454,10 @@ export class LionCalendar extends LocalizeMixin(LitElement) { } __addEventDelegationForClickDate() { - const isDayCellOrButton = el => - el.classList.contains('calendar__day-cell') || el.classList.contains('calendar__day-button'); + const isDayButton = el => el.classList.contains('calendar__day-button'); this.__clickDateDelegation = this.__contentWrapperElement.addEventListener('click', ev => { - const el = ev.composedPath()[0]; - if (isDayCellOrButton(el)) { + const el = ev.target; + if (isDayButton(el)) { this.__dateSelectedByUser(el.date); } }); diff --git a/packages/calendar/test/lion-calendar.test.js b/packages/calendar/test/lion-calendar.test.js index c2d720bd5..56ea85fe0 100644 --- a/packages/calendar/test/lion-calendar.test.js +++ b/packages/calendar/test/lion-calendar.test.js @@ -204,6 +204,22 @@ describe('', () => { ).to.equal(true); }); + it('doesn\'t send event "user-selected-date-changed" when user selects a disabled date', async () => { + const dateChangedSpy = sinon.spy(); + const disable15th = d => d.getDate() === 15; + const el = await fixture(html` + + `); + const elObj = new CalendarObject(el); + elObj.getDayEl(15).click(); + await el.updateComplete; + expect(dateChangedSpy.called).to.equal(false); + }); + it('exposes focusedDate getter', async () => { const el = await fixture(html`