diff --git a/integration/specs/Picklist/picklist-3.spec.js b/integration/specs/Picklist/picklist-3.spec.js index 39e9715d6..87d6af1d4 100644 --- a/integration/specs/Picklist/picklist-3.spec.js +++ b/integration/specs/Picklist/picklist-3.spec.js @@ -56,7 +56,7 @@ describe('Picklist with multiple options', () => { await firstOption.waitUntilIsVisible(); await expect(await firstOption.isVisible()).toBe(true); }); - it.skip('should not close when click on search input', async () => { + it('should not close when click on search input', async () => { const picklist = new PagePicklist(PICKLIST); await picklist.clickInput(); await picklist.waitUntilOpen(); diff --git a/src/components/Calendar/__test__/day.spec.js b/src/components/Calendar/__test__/day.spec.js index 283efe170..fb004b3be 100644 --- a/src/components/Calendar/__test__/day.spec.js +++ b/src/components/Calendar/__test__/day.spec.js @@ -31,7 +31,6 @@ describe('Day', () => { disabledDays={['04/24/2019']} />, ); - console.log(component.html()); component.find('span').simulate('keydown', { key: 'Enter' }); expect(onChangeMockFn).not.toBeCalled(); }); diff --git a/src/components/Picklist/index.js b/src/components/Picklist/index.js index 9520aad90..6b41b3b57 100644 --- a/src/components/Picklist/index.js +++ b/src/components/Picklist/index.js @@ -20,7 +20,7 @@ import InternalDropdown from '../InternalDropdown'; import InternalOverlay from '../InternalOverlay'; import WindowResize from '../../libs/WindowResize'; -function positionResolver(opts) { +function positionResolver(opts, enableSearch) { const { trigger, viewport, content } = opts; const newOpts = { trigger, @@ -30,6 +30,13 @@ function positionResolver(opts) { width: trigger.width, }, }; + if (enableSearch && viewport.width <= 600) { + return { + top: 0, + left: 0, + width: viewport.width, + }; + } return { ...InternalOverlay.defaultPositionResolver(newOpts), width: trigger.width, @@ -55,7 +62,6 @@ class Picklist extends Component { this.handleBlur = this.handleBlur.bind(this); this.handleKeyPressed = this.handleKeyPressed.bind(this); this.handleChange = this.handleChange.bind(this); - this.handleContainerClick = this.handleContainerClick.bind(this); this.closeAndFocusInput = this.closeAndFocusInput.bind(this); this.handleWindowScroll = this.handleWindowScroll.bind(this); this.handleWindowResize = this.handleWindowResize.bind(this); @@ -78,12 +84,14 @@ class Picklist extends Component { if (!wasOpen && isOpen) { // eslint-disable-next-line id-length this.outsideClick.startListening(this.containerRef.current, (_, event) => { - if (this.eventTarget !== event.target) { + if (!this.dropdownRef.current.contains(event.target)) { this.closeMenu(); this.handleBlur(); } }); - this.windowScrolling.startListening(this.handleWindowScroll); + if (window.screen.width > 600) { + this.windowScrolling.startListening(this.handleWindowScroll); + } this.windowResize.startListening(this.handleWindowResize); } } @@ -182,10 +190,6 @@ class Picklist extends Component { }, 0); } - handleContainerClick(event) { - this.eventTarget = event.target; - } - /** * Sets focus on the element. * @public @@ -250,7 +254,6 @@ class Picklist extends Component { onKeyDown={this.handleKeyPressed} ref={this.containerRef} readOnly={readOnly} - onClick={this.handleContainerClick} > - - {icon} - ); }