Skip to content

Commit 13435f8

Browse files
authored
Merge pull request #504 from mmarkelov/Fix_adding_undefined_to_class
Fix adding undefined to class
2 parents bf4cd7c + dad4a88 commit 13435f8

File tree

2 files changed

+30
-5
lines changed

2 files changed

+30
-5
lines changed

src/CSSTransition.js

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,10 @@ class CSSTransition extends React.Component {
173173

174174
addClass(node, type, phase) {
175175
let className = this.getClassNames(type)[`${phase}ClassName`];
176+
const { doneClassName } = this.getClassNames('enter');
176177

177-
if (type === 'appear' && phase === 'done') {
178-
className += ` ${this.getClassNames('enter').doneClassName}`;
178+
if (type === 'appear' && phase === 'done' && doneClassName) {
179+
className += ` ${doneClassName}`;
179180
}
180181

181182
// This is for to force a repaint,
@@ -185,8 +186,10 @@ class CSSTransition extends React.Component {
185186
node && node.scrollTop;
186187
}
187188

188-
this.appliedClasses[type][phase] = className
189-
addClass(node, className)
189+
if (className) {
190+
this.appliedClasses[type][phase] = className
191+
addClass(node, className)
192+
}
190193
}
191194

192195
removeClasses(node, type) {

test/CSSTransition-test.js

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -165,7 +165,29 @@ describe('CSSTransition', () => {
165165
<div />
166166
</CSSTransition>
167167
)
168-
})
168+
});
169+
170+
it('should not add undefined when appearDone is not defined', done => {
171+
mount(
172+
<CSSTransition
173+
timeout={10}
174+
classNames={{ appear: 'appear-test' }}
175+
in={true}
176+
appear={true}
177+
onEnter={(node, isAppearing) => {
178+
expect(isAppearing).toEqual(true);
179+
expect(node.className).toEqual('appear-test');
180+
}}
181+
onEntered={(node, isAppearing) => {
182+
expect(isAppearing).toEqual(true);
183+
expect(node.className).toEqual('');
184+
done();
185+
}}
186+
>
187+
<div/>
188+
</CSSTransition>
189+
);
190+
});
169191

170192
it('should not be appearing in normal enter mode', done => {
171193
let count = 0;

0 commit comments

Comments
 (0)