@@ -164,9 +164,10 @@ class CSSTransition extends React.Component {
164164
165165 addClass ( node , type , phase ) {
166166 let className = this . getClassNames ( type ) [ `${ phase } ClassName` ] ;
167+ const { doneClassName } = this . getClassNames ( 'enter' ) ;
167168
168- if ( type === 'appear' && phase === 'done' ) {
169- className += ` ${ this . getClassNames ( 'enter' ) . doneClassName } ` ;
169+ if ( type === 'appear' && phase === 'done' && doneClassName ) {
170+ className += ` ${ doneClassName } ` ;
170171 }
171172
172173 // This is for to force a repaint,
@@ -176,8 +177,10 @@ class CSSTransition extends React.Component {
176177 node && node . scrollTop ;
177178 }
178179
179- this . appliedClasses [ type ] [ phase ] = className
180- addClass ( node , className )
180+ if ( className ) {
181+ this . appliedClasses [ type ] [ phase ] = className
182+ addClass ( node , className )
183+ }
181184 }
182185
183186 removeClasses ( node , type ) {
@@ -198,6 +201,10 @@ class CSSTransition extends React.Component {
198201 if ( doneClassName ) {
199202 removeClass ( node , doneClassName ) ;
200203 }
204+ // Remove class atribute if it is empty
205+ if ( node && ! node . className . trim ( ) ) {
206+ node . removeAttribute ( 'class' ) ;
207+ }
201208 }
202209
203210 render ( ) {
0 commit comments