Skip to content

Commit 93cec5d

Browse files
committed
bug(cssTransition): pass 'appearing' param from Transition to CSSTransition
1 parent 8968fd6 commit 93cec5d

File tree

2 files changed

+70
-6
lines changed

2 files changed

+70
-6
lines changed

src/CSSTransition.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -160,10 +160,10 @@ class CSSTransition extends React.Component {
160160
const { className } = this.getClassNames(appearing ? 'appear' : 'enter')
161161

162162
this.removeClasses(node, 'exit');
163-
addClass(node, className)
163+
addClass(node, className);
164164

165165
if (this.props.onEnter) {
166-
this.props.onEnter(node)
166+
this.props.onEnter(node, appearing);
167167
}
168168
}
169169

@@ -172,18 +172,18 @@ class CSSTransition extends React.Component {
172172
appearing ? 'appear' : 'enter'
173173
);
174174

175-
this.reflowAndAddClass(node, activeClassName)
175+
this.reflowAndAddClass(node, activeClassName);
176176

177177
if (this.props.onEntering) {
178-
this.props.onEntering(node)
178+
this.props.onEntering(node, appearing);
179179
}
180180
}
181181

182182
onEntered = (node, appearing) => {
183183
this.removeClasses(node, appearing ? 'appear' : 'enter');
184184

185185
if (this.props.onEntered) {
186-
this.props.onEntered(node)
186+
this.props.onEntered(node, appearing);
187187
}
188188
}
189189

test/CSSTransition-test.js

Lines changed: 65 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ describe('CSSTransition', () => {
9090
<div/>
9191
</CSSTransition>
9292
)
93-
.render();
93+
.render();
9494

9595
instance.props({
9696
in: true,
@@ -112,6 +112,70 @@ describe('CSSTransition', () => {
112112
}
113113
});
114114
});
115+
116+
describe('isAppearing', () => {
117+
118+
it('should be false', done => {
119+
120+
instance = tsp(
121+
<CSSTransition
122+
timeout={10}
123+
classNames="test"
124+
>
125+
<div/>
126+
</CSSTransition>
127+
)
128+
.render();
129+
130+
131+
instance.props({
132+
in: true,
133+
onEnter(node, isAppearing){
134+
expect(isAppearing).toEqual(false);
135+
},
136+
137+
onEntering(node, isAppearing){
138+
expect(isAppearing).toEqual(false);
139+
},
140+
141+
onEntered(node, isAppearing){
142+
expect(isAppearing).toEqual(false);
143+
done();
144+
}
145+
});
146+
});
147+
148+
it('should be true', done => {
149+
150+
instance = tsp(
151+
<CSSTransition
152+
timeout={10}
153+
appear={true}
154+
in={true}
155+
classNames="test"
156+
>
157+
<div/>
158+
</CSSTransition>
159+
)
160+
.render();
161+
162+
instance.props({
163+
onEnter(node, isAppearing){
164+
expect(isAppearing).toEqual(true);
165+
},
166+
167+
onEntering(node, isAppearing){
168+
expect(isAppearing).toEqual(true);
169+
},
170+
171+
onEntered(node, isAppearing){
172+
expect(isAppearing).toEqual(true);
173+
done();
174+
}
175+
});
176+
});
177+
178+
});
115179
});
116180

117181
describe('exiting', ()=> {

0 commit comments

Comments
 (0)