File tree Expand file tree Collapse file tree 2 files changed +35
-3
lines changed Expand file tree Collapse file tree 2 files changed +35
-3
lines changed Original file line number Diff line number Diff line change @@ -90,14 +90,16 @@ const OverlayTrigger = React.createClass({
90
90
} ,
91
91
92
92
render ( ) {
93
+ let child = React . Children . only ( this . props . children ) ;
93
94
if ( this . props . trigger === 'manual' ) {
94
- return React . Children . only ( this . props . children ) ;
95
+ return child ;
95
96
}
96
97
97
98
let props = { } ;
98
99
100
+ props . onClick = createChainedFunction ( child . props . onClick , this . props . onClick ) ;
99
101
if ( isOneOf ( 'click' , this . props . trigger ) ) {
100
- props . onClick = createChainedFunction ( this . toggle , this . props . onClick ) ;
102
+ props . onClick = createChainedFunction ( this . toggle , props . onClick ) ;
101
103
}
102
104
103
105
if ( isOneOf ( 'hover' , this . props . trigger ) ) {
@@ -111,7 +113,7 @@ const OverlayTrigger = React.createClass({
111
113
}
112
114
113
115
return cloneElement (
114
- React . Children . only ( this . props . children ) ,
116
+ child ,
115
117
props
116
118
) ;
117
119
} ,
Original file line number Diff line number Diff line change
1
+ import React from 'react' ;
2
+ import ReactTestUtils from 'react/lib/ReactTestUtils' ;
3
+ import OverlayTrigger from '../src/OverlayTrigger' ;
4
+
5
+ describe ( 'OverlayTrigger' , function ( ) {
6
+ it ( 'Should create OverlayTrigger element' , function ( ) {
7
+ let instance = ReactTestUtils . renderIntoDocument (
8
+ < OverlayTrigger overlay = { < div > test</ div > } >
9
+ < button > button</ button >
10
+ </ OverlayTrigger >
11
+ ) ;
12
+ let overlayTrigger = instance . getDOMNode ( ) ;
13
+ assert . equal ( overlayTrigger . nodeName , 'BUTTON' ) ;
14
+ } ) ;
15
+
16
+ it ( 'Should pass OverlayTrigger onClick prop to child' , function ( ) {
17
+ let called = false ;
18
+ let callback = function ( ) {
19
+ called = true ;
20
+ } ;
21
+ let instance = ReactTestUtils . renderIntoDocument (
22
+ < OverlayTrigger overlay = { < div > test</ div > } onClick = { callback } >
23
+ < button > button</ button >
24
+ </ OverlayTrigger >
25
+ ) ;
26
+ let overlayTrigger = instance . getDOMNode ( ) ;
27
+ ReactTestUtils . Simulate . click ( overlayTrigger ) ;
28
+ assert . equal ( called , true ) ;
29
+ } ) ;
30
+ } ) ;
You can’t perform that action at this time.
0 commit comments