)
expect(el.style.display).toBe('flex')
})
+
+ it('should clear previous css string value', () => {
+ const el = document.createElement('div')
+ patchProp(el, 'style', {}, 'color:red')
+ expect(el.style.cssText.replace(/\s/g, '')).toBe('color:red;')
+
+ patchProp(el, 'style', 'color:red', { fontSize: '12px' })
+ expect(el.style.cssText.replace(/\s/g, '')).toBe('font-size:12px;')
+ })
})
const currentDisplay = style.display
let hasControlledDisplay = false
if (next && !isCssString) {
- if (prev && !isString(prev)) {
- for (const key in prev) {
- if (next[key] == null) {
- setStyle(style, key, '')
+ if (prev) {
+ if (!isString(prev)) {
+ for (const key in prev) {
+ if (next[key] == null) {
+ setStyle(style, key, '')
+ }
+ }
+ } else {
+ for (const prevStyle of prev.split(';')) {
+ const key = prevStyle.slice(0, prevStyle.indexOf(':')).trim()
+ if (next[key] == null) {
+ setStyle(style, key, '')
+ }
}
}
}