/* @flow */ import { isDef, isUndef } from 'shared/util' import { concat, stringifyClass, genClassForVnode } from 'web/util/index' function updateClass (oldVnode: any, vnode: any) { const el = vnode.elm const data: VNodeData = vnode.data const oldData: VNodeData = oldVnode.data if ( isUndef(data.staticClass) && isUndef(data.class) && ( isUndef(oldData) || ( isUndef(oldData.staticClass) && isUndef(oldData.class) ) ) ) { return } let cls = genClassForVnode(vnode) // handle transition classes const transitionClass = el._transitionClasses if (isDef(transitionClass)) { cls = concat(cls, stringifyClass(transitionClass)) } // set the class if (cls !== el._prevClass) { el.setAttribute('class', cls) el._prevClass = cls } } export default { create: updateClass, update: updateClass }