@@ -44,9 +44,7 @@ module.exports = _react2['default'].createClass({
44
44
modal : false ,
45
45
className : '' ,
46
46
listClassName : '' ,
47
- onClick : function onClick ( ) {
48
- console . log ( 'onClick should be defined' ) ;
49
- } ,
47
+ onClick : function onClick ( ) { } ,
50
48
onSelect : function onSelect ( value ) {
51
49
console . log ( 'onItemSelect should be defined' ) ;
52
50
} ,
@@ -107,14 +105,21 @@ module.exports = _react2['default'].createClass({
107
105
} ,
108
106
109
107
handleClick : function handleClick ( event ) {
110
- event . preventDefault ( ) ;
111
- event . stopPropagation ( ) ;
112
- this . setState ( { isOpen : true } ) ;
113
- if ( this . props . onClick ) {
114
- this . props . onClick ( ) ;
108
+ _utils . EventUtil . trap ( event ) ;
109
+ if ( ! this . state . isOpen ) {
110
+ this . setState ( { isOpen : true } ) ;
111
+ if ( this . props . onClick ) {
112
+ this . props . onClick ( ) ;
113
+ }
114
+ } else {
115
+ this . handleClose ( ) ;
115
116
}
116
117
} ,
117
118
119
+ handleMouseDown : function handleMouseDown ( event ) {
120
+ _utils . EventUtil . trapImmediate ( event ) ;
121
+ } ,
122
+
118
123
handleBlur : function handleBlur ( e ) {
119
124
this . setState ( { isFocused : false } ) ;
120
125
} ,
@@ -135,6 +140,7 @@ module.exports = _react2['default'].createClass({
135
140
if ( event . keyCode ) {
136
141
if ( event . keyCode === _utils . KEYS . ENTER || event . keyCode === _utils . KEYS . SPACE || event . keyCode === _utils . KEYS . DOWN || event . keyCode === _utils . KEYS . UP ) {
137
142
_utils . EventUtil . trapEvent ( event ) ;
143
+
138
144
this . setState ( {
139
145
isOpen : true ,
140
146
highlightedIndex : 0
@@ -210,7 +216,7 @@ module.exports = _react2['default'].createClass({
210
216
var className = this . state . currentSelectedItem ? 'slds-input--bare slds-hide' : 'slds-input--bare' ;
211
217
return _react2 [ 'default' ] . createElement (
212
218
'div' ,
213
- { className : "slds-form-element ignore-react-onclickoutside slds-theme--" + this . props . theme } ,
219
+ { className : "slds-form-element slds-theme--" + this . props . theme } ,
214
220
_react2 [ 'default' ] . createElement (
215
221
'div' ,
216
222
{ className : "slds-picklist slds-theme--" + this . props . theme } ,
@@ -227,6 +233,7 @@ module.exports = _react2['default'].createClass({
227
233
onBlur : this . handleBlur ,
228
234
onFocus : this . handleFocus ,
229
235
onClick : this . handleClick ,
236
+ onMouseDown : this . handleMouseDown ,
230
237
tabIndex : this . state . isOpen ? - 1 : 0 ,
231
238
onKeyDown : this . handleKeyDown } ,
232
239
_react2 [ 'default' ] . createElement (
@@ -243,6 +250,7 @@ module.exports = _react2['default'].createClass({
243
250
} ,
244
251
245
252
componentDidUpdate : function componentDidUpdate ( prevProps , prevState ) {
253
+
246
254
if ( this . state . lastBlurredTimeStamp !== prevState . lastBlurredTimeStamp ) {
247
255
if ( this . state . lastBlurredIndex === this . state . highlightedIndex ) {
248
256
this . handleClose ( ) ;
0 commit comments