File tree Expand file tree Collapse file tree 3 files changed +39
-17
lines changed
spec/pivotal-ui-react/expander
src/pivotal-ui-react/expander Expand file tree Collapse file tree 3 files changed +39
-17
lines changed Original file line number Diff line number Diff line change @@ -80,6 +80,19 @@ describe('ExpanderContent', function() {
80
80
expect ( '.collapse' ) . not . toHaveClass ( 'in' ) ;
81
81
} ) ;
82
82
} ) ;
83
+ describe ( 'when toggling expanded prop' , function ( ) {
84
+ beforeEach ( function ( ) {
85
+ renderComponent . call ( this , { expanded : true } ) ;
86
+ jasmine . clock ( ) . tick ( 1000 ) ;
87
+ } ) ;
88
+
89
+ it ( 'toggles open/closed' , function ( ) {
90
+ expect ( '.collapse' ) . toHaveClass ( 'in' ) ;
91
+ renderComponent . call ( this , { expanded : false } ) ;
92
+ jasmine . clock ( ) . tick ( 1000 ) ;
93
+ expect ( '.collapse' ) . not . toHaveClass ( 'in' ) ;
94
+ } )
95
+ } )
83
96
} ) ;
84
97
85
98
describe ( 'ExpanderTrigger' , function ( ) {
Original file line number Diff line number Diff line change @@ -33,6 +33,12 @@ var ExpanderContent = React.createClass({
33
33
return { expanded : this . props . expanded } ;
34
34
} ,
35
35
36
+ componentWillReceiveProps ( nextProps ) {
37
+ if ( nextProps . expanded !== this . props . expanded ) {
38
+ this . setState ( { expanded : nextProps . expanded } ) ;
39
+ }
40
+ } ,
41
+
36
42
toggle ( ) {
37
43
this . setState ( { expanded : ! this . state . expanded } ) ;
38
44
} ,
Original file line number Diff line number Diff line change @@ -18,7 +18,6 @@ Require the subcomponents:
18
18
19
19
```
20
20
var ExpanderContent = require('pui-react-expander').ExpanderContent;
21
- var ExpanderTrigger = require('pui-react-expander').ExpanderTrigger;
22
21
```
23
22
24
23
@@ -34,22 +33,26 @@ See the example below for how to use these components in your own application.
34
33
35
34
```jsx_example
36
35
var MoreInfo = React.createClass({
37
- componentDidMount: function () {
38
- this.refs.infoTrigger.setTarget(this.refs.infoContent);
39
- },
40
- render: function() {
41
- return (
42
- <main>
43
- <ExpanderContent ref="infoContent">
44
- <p className='h1 bg-neutral-2 type-neutral-9'>Content in expander</p>
45
- </ExpanderContent>
46
- <br/>
47
- <ExpanderTrigger ref="infoTrigger">
48
- <button className='btn btn-highlight'>Toggle Content</button>
49
- </ExpanderTrigger>
50
- </main>
51
- )
52
- }
36
+ getInitialState() {
37
+ return {expanded: false};
38
+ },
39
+
40
+ toggleContent() {
41
+ this.setState({expanded: !this.state.expanded});
42
+ },
43
+
44
+ render: function() {
45
+ return (
46
+ <main>
47
+ <ExpanderContent expanded={this.state.expanded}>
48
+ <p className='h1 bg-neutral-2 type-neutral-9'>Content in expander</p>
49
+ </ExpanderContent>
50
+ <button className='btn btn-highlight' onClick={this.toggleContent}>
51
+ Toggle Content
52
+ </button>
53
+ </main>
54
+ );
55
+ }
53
56
});
54
57
```
55
58
You can’t perform that action at this time.
0 commit comments