fix(calendar): stop disabled date triggering @user-selected-date-changed
This commit is contained in:
parent
235bfb62d4
commit
57823d1a9e
2 changed files with 19 additions and 4 deletions
|
|
@ -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);
|
||||
}
|
||||
});
|
||||
|
|
|
|||
|
|
@ -204,6 +204,22 @@ describe('<lion-calendar>', () => {
|
|||
).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`
|
||||
<lion-calendar
|
||||
.selectedDate="${new Date('2000/12/12')}"
|
||||
@user-selected-date-changed="${dateChangedSpy}"
|
||||
.disableDates=${disable15th}
|
||||
></lion-calendar>
|
||||
`);
|
||||
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`
|
||||
<lion-calendar .centralDate="${new Date('2019/06/01')}"></lion-calendar>
|
||||
|
|
|
|||
Loading…
Reference in a new issue